14

TL; DR: я ищу скрипт или задание cron, которое будет периодически запускаться на хосте linux (fedora on 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, который регулярно проверяет внешний 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 ответ1

15

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .