Чи існує сценарій для додавання правила переадресації портів у домашній маршрутизатор?


16

TL; DR : Я шукаю скрипт або завдання cron, які періодично запускатимуться на Linux-хості (fedora на малиновому пі), який перевірятиме, чи існує правило маршрутизації портів у маршрутизаторі, і додасть його, якщо його немає . Мета полягає у тому, щоб завжди мати доступ до хоста малинового pi linux через SSH, VNC та веб-інтерфейс передачі, з будь-якої машини в Інтернеті за межами моєї домашньої мережі. Налаштування наведено нижче:

Маршрутизатор :

Маршрутизатор Beetel 440Tx1 ADSL2 + модем + wifi.

Налаштування :

Маршрутизатор підключений до Інтернету (ISP Broadband) і має динамічний зовнішній IP. Він забезпечує приватну домашню мережу для моїх комп'ютерів із внутрішніми IP-адресами 192.168.xy, які також виконують роль DHCP.

Ведучий :

Хост малинового пі ARM з Fedora Linux, який працює весь час з серверами ssh, vnc, daemon передачі, запускався під час завантаження. Він також має no-ip.com без вибору DUC (клієнт динамічного оновлення), який регулярно перевіряє зовнішній IP і прив'язує його до хост-рядку. Тож я завжди можу знайти зовнішній IP маршрутизатора, вирішивши мій рядок dyndns, як myrouter.no-ip.org . Пі має статичний внутрішній IP, наприклад, 192.168.1.z.

Переадресація порту :

Доводиться входити в маршрутизатор за допомогою GUI / браузера з заводськими обліковими даними, лише якщо вони підключені до цієї мережі через кабель Ethernet або захищений паролем Wi-Fi

http://192.168.1.1/html/index1.html

Я налаштовую це правило, увійшовши, щоб переслати будь-який трафік через порти 22, 5900, 9091 на зовнішньому IP-адресі відповідним слухацьким програмам (sshd, vncserver, передача-демон) на pi на 192.168.1.z.

Проблема :

Цей маршрутизатор втрачає вищезазначене правило переадресації портів, коли він (маршрутизатор) перезапускається, або навіть якщо є сплеск електроенергії, і ДБЖ повинен миттєво вступати, і зазвичай отримує інший зовнішній IP від ​​мого провайдера динамічно.

Вимога :

Завдання скрипту або хроніки, яке може запускатися на моєму Fedora linux pi, яке може увійти до мого маршрутизатора та періодично опитуватись на існування цього правила переадресації портів та створювати його, якщо воно відсутнє. Допомога оцінена.


1
Чи підтримує маршрутизатор налаштування переадресації порту через UPnP? (Чи можуть програми, що працюють у Windows / mac / linux, автоматично встановлювати самі правила переадресації портів?)
Скотт Чемберлен

Я думаю, що так, тому що pcwintech.com/showimage?file=files/screenshots/beetel-440txi/… я насправді не знаю багато про UPnP, окрім сторінки вікіпедії. Гуглінг для цього типу маршрутизатора (про який йде мова) привів мене до цієї сторінки.
ПКМ

Відповіді:


19

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

це працює, однак яке саме місце додати, щоб команда виконувалась при запуску?
Ciasto piekarz

1
Ви можете використовувати @reboot <cmd>свій crontab
Мартін

1
miniupnpc має бути доступний з raspbian з apt
Скотт

and upnpc, якщо запустити з машини, що працює на сервісі, використовуватиме локальну адресу, тому ifconfig / grep непотрібний
Скотт

ifconfig ...частина не працював для мене , так що я використовував ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'відповідно з цією відповіддю .
Хелдер С Рібейро
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.