web-dev-qa-db-ja.com

ホームルーターにポート転送ルールを追加するスクリプトはありますか?

TL; DR:ルーターにポート転送ルールがまだ存在するかどうかを確認するLinuxホスト(Raspberry Pi上のFedora)で定期的に実行されるスクリプトまたはcronジョブを探しています。そうでない場合は追加してください。目的は、ホームネットワーク外のインターネット上の任意のマシンから、SSH、VNC、および伝送Webインターフェイスを介してRaspberry Pi Linuxホストに常にアクセスできるようにすることです。セットアップは以下のとおりです。

ルーター

Beetel 440Tx1 ADSL2ルーター+モデム+ WiFi。

セットアップ

ルーターはインターネット(ISPブロードバンド)に接続され、動的な外部IPを持っています。 DHCPとしても機能する内部IP 192.168.x.yを使用して、コンピューターにプライベートホームネットワークを提供します。

ホスト

Raspberry Pi ARM Fedora Linuxを備えたホストで、起動時に常にssh、vnc、transmission-daemonサーバーが起動します。また、no-ip.com dyndnsフリーDUC(動的更新クライアント)は、外部IPを定期的にチェックし、ホスト文字列にバインドしますしたがって、myrouter.no-ip.org。piには192.168.1.zのような静的な内部IPがあります。

ポート転送

イーサネットケーブルまたはパスワードで保護されたwi-fiのいずれかを介してネットワークに接続されている場合にのみ、工場の認証情報でGUI /ブラウザを使用してルーターにログインする必要があります

http://192.168.1.1/html/index1.html

ログインしてルールを設定し、外部IPのポート22、5900、9091にあるトラフィックを192.168.1.zのpiのそれぞれのリスナープログラム(sshd、vncserver、transmission-daemon)に転送します。

問題

このルーターは、ルーター(ルーター)が再起動されたとき、または電力にスパイクがあり、UPSが一時的に介入する必要がある場合でも、上記のポート転送ルールを失い、通常、ISPから別の外部IPを動的に取得します。

要件

私のFedora linux piで実行できるスクリプトまたはcronジョブ。ルーターにログインし、定期的にそのポート転送ルールの存在をポーリングして、存在しない場合は作成します。感謝してください。

16
PKM

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
20