Это руководство для продвинутых пользователей, которые хотят на основе платы Raspberry Pi построить WiFi-мост между точкой доступа и портом Ethernet. Каждый шаг инструкции необходимо выполнять внимательно. Создайте резервные копии своих рабочих материалов и файлов из платы Raspberry Pi, если необходимо, перед тем как приступить к выполнению руководства.
В первую очередь нужно загрузить последние обновления для Raspberry Pi. Используйте для этого следующие команды:
1 2 |
sudo apt-get update sudo apt-get upgrade |
Далее потребуются запустить на Raspberry Pi сервер со службами DNS и DHCP, который выделит IP-адреса клиентам, подключённым к Ethernet-порту платы. Для этого мы будем использовать программу dnsmasq.
Для установки dnsmasq на Raspberry Pi используйте следующую команду:
1 |
sudo apt-get install dnsmasq |
Обязательно подключитесь к работающему маршрутизатору WiFi с помощью иконки в верхнем правом углу рабочего стола или посредством редактирования файла wpa_supplicant.conf.
Для редактирования файла wpa_supplicant используйте следующую команду:
1 |
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf |
Занесите в файл информацию о вашем соединении WiFi, как показано ниже:
1 2 3 4 |
network={ ssid="networkname" psk="networkpassword" } |
Убедитесь, что у вас есть доступ в Интернет, перед тем как идти далее.
Теперь отредактируйте файл dhcpcd.conf с помощью следующей команды:
1 |
sudo nano /etc/dhcpcd.conf |
Добавьте следующую информацию в конец файла:
1 2 3 |
interface eth0 static ip_address=192.168.220.1/24 static routers=192.168.220.0 |
Для перезапуска программы dhcpcd используйте команду:
1 |
sudo service dhcpcd restart |
Сохраните резервную копию файла настроек программы dnsmasq с помощью команды:
1 |
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig |
Отредактируйте файл следующим способом:
1 |
sudo nano /etc/dnsmasq.conf |
Добавьте в файл следующую информацию:
1 2 3 4 5 6 7 |
interface=eth0 # Use interface eth0 listen-address=192.168.220.1 # Specify the address to listen on bind-interfaces # 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 |
Теперь необходимо изменить настройки межсетевого экрана платы RPI командой:
1 |
sudo nano /etc/sysctl.conf |
В этом файле раскомментируйте строки:
1 |
#net.ipv4.ip_forward=1 |
удалением знака “решетка”
1 |
net.ipv4.ip_forward=1 |
Теперь мы можем активировать изменения следующей командой:
1 |
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" |
Далее необходимо ввести новые правила для межсетевого экрана посредством программы iptables, используя следующие три строки:
1 2 3 |
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 |
Чтобы сохранить изменения в правилах межсетевого экрана, используйте команду:
1 |
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" |
Чтобы эти изменения применялись при каждой перезагрузке, нужно включить их в стартовом скрипте:
1 |
sudo nano /etc/rc.local |
Перед строкой «exit 0» добавьте строку:
1 |
iptables-restore < /etc/iptables.ipv4.nat |
Теперь вы можете перезапустить программу dnsmasq командой:
1 |
sudo service dnsmasq start |
Затем перезапустите плату RPI:
1 |
sudo reboot |
Надеемся, вы не превратили свою плату Raspberry Pi в кирпич 🙂 Задавайте свои вопросы в комментариях, постараемся ответить на каждый!
1 комментарий. Оставить новый
Добрый день, есть машина_1, подключена к малинке по eth0, малина подключена к интернету по wlan0, в недрах интернета есть vpn server в роутере_1, не OpenVPN, к нему через интернет подключается малинка, по pptp, и создает интерфейс ppp0, в роутере это соединение получает статичный ip. К роутеру_1 также подключена машина_2. Как сделать так, что бы машина_1 видела все машину_2 в локальной сети роутера, на котором запущен vpn server, так будто они подключены к одному роутеру.