Превращаем свой Raspberry Pi в точку доступа за 1 мин


raspberry_pi_is_sharing_traffic_from_usb_modem_to_ethernet

C августа 2016 года стало возможным использовать docker на Raspberry Pi. Это дало возможность сократить время настройки и запуска приложений для Интернета Вещей до нескольких минут. 

В этом посте продемонстрирую преимущества docker и opensource кода на одной конкретной задаче.

Недавно у меня возникла задача организовать систему "умного дома" на объекте, где нет проводного интернета. Поискав на Github я наткнулся на отличный проект некоего Sergio. В нём Raspberry Pi превращается в точку доступа всего одной командой:

sudo docker run -d -t \

-e INTERFACE=wlan0 \

-e CHANNEL=6 \

-e SSID=runssid \

-e AP_ADDR=192.168.254.1 \

-e SUBNET=192.168.254.0 \

-e WPA_PASSPHRASE=passw0rd \

-e OUTGOINGS=eth1 \

-e ETHERNET_IP=192.168.255.3 \

--privileged \

--net host \

pavelsr/rpi-hostap2

Настройка "из коробки" устраивала всем, кроме того, что не было доступа в интернет через интерфейс eth0 (встроенный в Raspberry Ethernet порт). В моём случае нужно было подключить к точке доступа устройство, на котором нет WiFi модуля, но есть Ethernet.

Изучив, как устроен оригинальный код, я сделал fork, в котором Ethernet порту автоматически присваивается статический IP адрес и настраиваются правила iptables. В оригинальную команду запуска добавилась всего одна строчка, содержащая собственно нужный статический IP адрес, ETHERNET_IP (маска подсети 24 по умолчанию) :

sudo docker run -d -t \

-e INTERFACE=wlan0 \

-e CHANNEL=6 \

-e SSID=runssid \

-e AP_ADDR=192.168.254.1 \

-e SUBNET=192.168.254.0 \

-e WPA_PASSPHRASE=passw0rd \

-e OUTGOINGS=eth1 \

-e ETHERNET_IP=192.168.255.3 \

--privileged \

--net host \

pavelsr/rpi-hostap2

Всё заработало на ура. Получившийся docker image выложил на Docker Hub.

Помимо Raspberry Pi таким же образом можно превратить в точку доступа любой одноплатный компьютер, на который может быть установлен Docker: OrangePi, BananaPi, Onion, C.H.I.P. и др. Это особенно удобно когда доступ в интернет осуществляется через USB модем. Далеко не все роутеры, имеющие USB порт, умеют работать с USB модемами, да и если есть завалявшаяся малинка почему бы не сэкономить на железе ;)

P.S. Рекомендую покупать USB модем, для которого есть Hilink-прошивки. Что это такое и какие преимущества даёт читайте этом посте.


Comments 4


Привет!

23.09.2018 12:50
0