|
Простой WiFi-мост Raspberry Pi
Мост Wi-Fi Raspberry Pi - один из лучших способов предоставить доступ в Интернет для устройства, которое поддерживает только соединение Ethernet. В этом руководстве мы покажем вам, как настроить мост WiFi и как правильно настроить dnsmasq, чтобы любое устройство могло без проблем подключаться через ваш Pi. Вам нужно иметь в виду, что вы не увидите таких высоких скоростей, как при прямом подключении к маршрутизатору. Поскольку есть некоторые накладные расходы, связанные с подключением через Raspberry Pi. Не забудьте, что для выполнения этого руководства вам понадобится либо ключ Wi-Fi, либо Raspberry Pi 3 со встроенным модулем WiFi . Это руководство можно комбинировать с нашей базовой точкой доступа VPN, вы можете найти руководство о том, как настроить это, сразу после этого руководства. По сути, он покажет, как настроить клиент OpenVPN и перенаправить весь трафик через этого клиента.
Настройка моста WiFi
Чтобы настроить мост Raspberry Pi Wifi, мы будем использовать пакет dnsmasq , этот пакет выполняет большую часть основной работы для этого руководства.
Dnsmasq - это пакет, который действует как локальный DHCP-сервер и как локальный DNS-сервер. Мы используем этот пакет, чтобы мы могли назначать IP-адреса и обрабатывать DNS-запросы через сам Raspberry Pi и действовать как маршрутизатор. Один из бонусов использования dnsmasqявляется то , что она очень проста в настройке, будучи несколько легкий по сравнению с isc-dhcp-serverи bind9пакетов. Помните, что для этого руководства вам понадобится активный маршрутизатор Wi-Fi для подключения и устройство Ethernet, с которым вы собираетесь установить мост для подключения Wi-Fi.
1. Прежде чем мы начнем установку и настройку наших пакетов, мы сначала запустим обновление на Raspberry Pi, введя следующие две команды в терминал.
sudo apt-get update
sudo apt-get upgrade
2. После этого мы можем установить единственный пакет, который мы будем использовать, выполните следующую команду, чтобы установить dnsmasq.
sudo apt-get install dnsmasq
3. Прежде чем мы забегаем слишком далеко вперед, мы должны настроить соединение wlan0, которое мы планируем использовать. Если вы уже настроили беспроводное соединение, вы можете перейти к шагу 5. В противном случае откройте wpa_supplicantфайл, выполнив следующую команду:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
4. В этом файле добавьте следующее, убедившись, что вы заменили ssid именем сети, к которой хотите подключиться, и замените значение psk паролем для этой сети.
network={
ssid="networkname"
psk="networkpassword"
}
5.Теперь, когда беспроводная сеть настроена для правильного подключения, мы можем приступить к настройке нашего eth0интерфейса. Это в основном заставит его использовать статический IP-адрес, отсутствие его настройки может вызвать несколько проблем. Для этого нам нужно изменить dhcpcd.confфайл, выполнив следующую команду:
sudo nano /etc/dhcpcd.conf
Важное примечание: если вы используете Raspbian stretch, возможно, потребуется изменить wlan0 и eth0, если включены предсказуемые сетевые имена. Используйте ifconfigкоманду, чтобы увидеть новые имена, они, скорее всего, довольно длинные и будут содержать MAC-адрес. Убедитесь, что вы обновили их для всех команд в этом руководстве.
6.В этот файл нам нужно добавить следующие строки, убедитесь, что вы заменили eth0правильный интерфейс вашего Ethernet.
interface eth0
static ip_address=192.168.220.1/24
static routers=192.168.220.0
Теперь мы можем сохранить и выйти из файла, нажав CTRL+, Xзатем нажав, Yа затем ENTER.
7. После внесения изменений в конфигурацию dhcpcd мы должны перезапустить службу, выполнив следующую команду:
sudo service dhcpcd restart
8. Прежде чем мы начнем изменять конфигурацию dnsmasq, мы сначала сделаем резервную копию исходной конфигурации, выполнив следующую команду.
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
9. Теперь, когда исходная конфигурация зарезервирована и убрана, мы можем перейти к созданию нового файла конфигурации, введя в терминал команду ниже.
sudo nano /etc/dnsmasq.conf
10. Теперь, когда у нас есть новый файл, мы хотим добавить следующие строки. Эти строки в основном сообщают пакету dnsmasq, как обрабатывать трафик DNS и DHCP.
interface=eth0 # Use interface eth0
listen-address=192.168.220.1 # Specify the address to listen on
bind-dynamic # Bind to the interface
server=8.8.8.8 # Use Google DNS
domain-needed # Don't forward short names
bogus-priv # Drop the non-routed address spaces.
dhcp-range=192.168.220.50,192.168.220.150,12h # IP range and lease time
Теперь мы можем сохранить и выйти из файла, нажав CTRL+, Xзатем нажав, Yа затем ENTER.
11. Теперь нам нужно настроить брандмауэр Raspberry Pi так, чтобы он перенаправлял весь трафик с нашего соединения eth0 на наше соединение wlan0.
Прежде чем мы это сделаем, мы должны сначала включить ipv4p IP Forwarding через sysctl.confфайл конфигурации, поэтому давайте начнем его редактировать с помощью следующей команды:
sudo nano /etc/sysctl.conf
12. В этом файле вам нужно найти следующую строку и удалить # с ее начала.
Находить:
#net.ipv4.ip_forward=1
Заменить:
net.ipv4.ip_forward=1
Теперь мы можем сохранить и выйти из файла, нажав CTRL+, Xзатем нажав, Yа затем ENTER.
13. Теперь, поскольку мы не хотим ждать следующей перезагрузки перед загрузкой конфигурации, мы можем запустить следующую команду, чтобы немедленно включить ее.
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
14.Теперь, когда переадресация IPv4 включена, мы можем перенастроить наш брандмауэр так, чтобы трафик перенаправлялся с нашего eth0интерфейса на наше wlan0соединение. В основном это означает, что любой, кто подключается к локальной сети, сможет использовать наше интернет-соединение wlan0.
Выполните следующие команды, чтобы добавить наши новые правила в iptable:
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
Примечание: если вы получаете ошибки при вводе вышеуказанных строк, просто перезагрузите Pi, используя sudo reboot.
15. Конечно, iptables сбрасываются при каждой загрузке Raspberry Pi, поэтому нам нужно будет где-то сохранить наши новые правила, чтобы они загружались обратно при каждой загрузке. Чтобы сохранить наш новый набор правил, выполните следующую команду.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
16. Теперь, когда наши новые правила надежно сохранены где-то, нам нужно, чтобы этот файл загружался обратно при каждой перезагрузке. Самый простой способ справиться с этим - изменить rc.localфайл. Выполните следующую команду, чтобы начать редактирование файла.
sudo nano /etc/rc.local
17. Теперь мы в этом файле, нам нужно добавить строку ниже. Убедитесь, что эта линия появляется над « exit 0». Эта строка в основном считывает настройки из нашего iptables.ipv4.natфайла и загружает их в iptables.
Находим:
exit 0
Добавим:
iptables-restore < /etc/iptables.ipv4.nat
Теперь мы можем сохранить и выйти из файла, нажав CTRL+, Xзатем нажав, Yа затем ENTER.
18. Наконец, все, что нам нужно сделать, это запустить нашу службу dnsmasq. Для этого все, что вам нужно сделать, это выполнить следующую команду:
sudo service dnsmasq start
19. Теперь у вас, наконец, должен быть полностью рабочий мост Raspberry Pi WiFi Bridge, вы можете убедиться, что он работает, подключив любое устройство к его порту Ethernet, мост должен обеспечивать интернет-соединение с устройством, к которому вы его подключили. Чтобы убедиться, что все работает без сбоев, лучше попробовать перезагрузить компьютер прямо сейчас. Это гарантирует, что все будет успешно повторно включено при резервном запуске Raspberry Pi. Выполните следующую команду, чтобы перезагрузить Raspberry Pi:
sudo reboot
Настройка WiFi-моста Raspberry Pi с помощью VPN
Однако есть одно небольшое изменение, которое вам нужно будет сделать на шаге 13 , вместо того, чтобы использовать команды, представленные там, выполните следующие команды. По сути, основное изменение, которое вы здесь увидите, заключается в том, что вместо перенаправления трафика с wlan0 через туннель мы будем перенаправлять трафик из нашего соединения eth0 в туннель.
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
Остальную часть руководства по точке доступа VPN можно выполнить без каких-либо других изменений.