Есть ли скрипт для добавления правила переадресации портов в домашнем маршрутизаторе?
TL; DR: я ищу скрипт или задание cron, которое будет периодически запускаться на хосте linux (fedora на raspberry pi), которое проверит, существует ли правило переадресации портов в маршрутизаторе, и добавит его, если его нет, Цель состоит в том, чтобы всегда иметь доступ к хосту raspberry pi linux через SSH, VNC и веб-интерфейс передачи с любой машины в Интернете за пределами моей домашней сети. Настройка приведена ниже:
Маршрутизатор:
Beetel 440Tx1 ADSL2 роутер + модем +wifi.
Настройка:
Маршрутизатор подключен к Интернету (ISP Broadband) и имеет динамический внешний IP. Он предоставляет частную домашнюю сеть моим компьютерам с внутренними IP-адресами 192.168.xy, действующими как DHCP.
Хост:
ARM-хост raspberry pi с Fedora Linux, постоянно работающий с ssh, vnc, серверы-демоны передачи, запускались во время загрузки. Он также имеет бесплатный DUC (динамический клиент обновления) no-ip.com dyndns, который регулярно проверяет внешний IP и привязывает его к строке хоста. Поэтому я всегда могу найти внешний IP-адрес моего маршрутизатора, разрешив строку dyndns, например myrouter.no-ip.org. Пи имеет статический внутренний IP-адрес, такой как 192.168.1.z.
Переадресация портов:
Необходимо войти в маршрутизатор с помощью графического интерфейса пользователя / браузера с заводскими учетными данными, только если он подключен к этой сети через кабель Ethernet или защищенный паролем Wi-Fi
http://192.168.1.1/html/index1.html
Я установил правило, войдя в систему для пересылки любого трафика через порты 22, 5900, 9091 на внешний IP-адрес соответствующим программам-слушателям (sshd, vncserver, translation-daemon) на pi в 192.168.1.z.
Проблема:
Этот маршрутизатор теряет вышеупомянутое правило переадресации порта, когда он (маршрутизатор) перезапускается, или даже если есть скачок в электрической мощности, и ИБП должен на мгновение вмешаться, и обычно динамически получает другой внешний IP от моего провайдера.
Требование:
Сценарий или задание cron, которое может выполняться на моем fedora linux pi, которое может войти в мой маршрутизатор и периодически проверять наличие этого правила переадресации портов и создавать его, если оно отсутствует. Помощь приветствуется.
1 ответ
MiniUPnP - это клиент UPnP для командной строки, который позволяет включить переадресацию портов. Источник доступен, поэтому вы должны иметь возможность скомпилировать его для Pi.
Я думаю, что это тот синтаксис, который вам нужен, но у меня нет машины для его тестирования. Вы просто поместите следующее в скрипт, который настроит порты uPnP для вас
upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 22 22 TCP
upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 5900 5900 TCP
upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 9091 9091 TCP