OrangePi 3 LTS с Armbian - Настройка точки доступа(access point), 1-wire и SSH-туннеля
Наконец-то допилили Armbian и с версии 23.8.3 bookworm, на моей апельсинке стал нормально работать WIFI, работоспособность Bluetooth пока не проверял. Но осталось несколько других проблем, а именно из коробки с помощью armbian-config не поднималась точка доступа и 1-wire интерфейс. 1-wire мне нужен для подключения датчиков температуры ds18b20.
Начнём с настройки точки доступа.
Для начала необходимо отключить wpa_supplicant:sudo systemctl stop wpa_supplicant.service sudo systemctl disable wpa_supplicant.service sudo systemctl mask wpa_supplicant.service
Теперь запускаем hostapd (Host access point daemon):
sudo systemctl unmask hostapd.service sudo systemctl enable hostapd.service sudo systemctl start hostapd
Перед запуском hostapd необходимо в /etc/hostapd положить файл настроек hostapd.conf, его я вытащил из другой апельсинки, а тут приведу пример этого файла.
ssid=OrangePiWAN wpa_passphrase=******************** interface=wlan0 bridge=br0 auth_algs=3 channel=7 driver=nl80211 hw_mode=g logger_stdout=-1 logger_stdout_level=2 max_num_sta=5 rsn_pairwise=CCMP wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP utf8_ssid=1
Запускаем hostapd:
sudo systemctl unmask hostapd.service sudo systemctl enable hostapd.service sudo systemctl start hostapd
Перезагружаем апельсинку, в настройках WIFI, например, телефона должна появиться новая сеть.
Приступаем к настройке 1-wire:
Открываем из под root файл /boot/armbianEnv.txt и прописываем туда:overlays=w1-gpio param_w1_pin=PD18 param_w1_pin_int_pullup=1
Сохраняем и теперь лезем в /etc/modules-load.d/modules.conf и прописываем:
w1-gpio w1-therm
По идее, тоже самое можно сделать следующими командами:
modprobe w1-gpio modprobe w1-therm
Для полного счастья можно установить WiringOP, потом допишу как.
В принице можно перезагрузиться и подключить датчик температуры. Чтобы убедиться, что 1-wire работает, переходим в /sys/devices/w1_bus_master1/, должны увидеть что-то типа: 28-XXXXXXXXXXXX. Если такой записи нет, то либо не заработал 1-wire, либо неправильно подключён сам датчик.
Карту контактов GPIO апельсинки сделаю позже.
Переходим к созданию туннеля.
Дома у меня выделенный IP, а на даче связь через GSM-свисток, т.е. через динамический IP, а хотелось бы иметь возможность подключаться к даче без всяких дополнительных костылей и тут напомощь приходит SSH.
В /root/./ssh создаём файл config:
Host homehost HostName 94.100.89.47 # - наш белый IP User Vasya # - здесь имя пользователя Port 22222 # - порт к которому подключаемся ServerAliveInterval 30 ServerAliveCountMax 5 TCPKeepAlive yes IdentitiesOnly yes
Теперь ползём в /etc/default и создаём файл secure-tunnel@homehost
TARGET=homehost LOCAL_ADDR=127.0.0.1 LOCAL_PORT=20022 REMOTE_ADDR=127.0.0.1 REMOTE_PORT=33333 DYNAMIC_PORT=30050
DYNAMIC_PORT указывать не обязательно. Это надо если затем настроить прохождение всего трафика через SOCKS. Не забываем на апельсинте в /etc/ssh/sshd.config пописать LOCAL_PORT вместо 22.
В /etc/systemd/system/ создаём файл [email protected] со следующим содержимым:
[Unit] Description=Setup a secure tunnel to %I After=network.target [Service] EnvironmentFile=/etc/default/secure-tunnel@%i ExecStart=/usr/bin/ssh -NT -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -R ${REMOTE_PORT}:${LOCAL_ADDR}:${LOCAL_PORT} -D ${DYNAMIC_PORT} ${TARGET} # Restart every >2 seconds to avoid StartLimitInterval failure RestartSec=30 Restart=always [Install] WantedBy=multi-user.target
Запускаем наш новоиспечённый сервис:
sudo systemctl start [email protected] sudo systemctl enable [email protected]
Дабы проверить, на домашнем ПК запускаем:
watch -n1 "sudo netstat -lnpt"
Секунд через 30 на домашнем ПК должны увидеть такое:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22222 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:33333 0.0.0.0:* LISTEN
Теперь на домашнем ПК набираем:
ssh -p 33333 [email protected]
И voilà, мы на нашем удалённом сервачке.
Обсудить этот пост