もう一度ファイアウォール-aによるポート転送について

こんにちは

私はいくつかの理由でこの投稿を書くことにしました:

1)場合によっては、最初の100倍、何をする必要があるか、どこで読むことができるかを人に伝えるよりも、記事へのリンクを与える方が簡単な場合があります。

2)知識をシステムに取り込む必要がありました。 そして、あなたが他の人にそれを伝えているなら、これをするのが最善です。

3)純粋に利己的な関心-招待が欲しい。



だから。 問題の声明。

ルーターで閉じられた職場( W )があります。 自宅のコンピューター( H )があり、そこからWデスクトップに定期的にアクセスする必要があり、「白い」IPがありません。

スキーマ-1

ルーターの設定で何かを変更することはできません。 TeamViewer&Co.を使用してください -私たちのやり方ではありません。





ソリューションオプション。

サードパーティのプログラムを破棄する場合、残っているオプションは2つだけです。





2番目のオプションの実装を示します。

スキーマ-2

そのため、簡単にするために、すべてのマシンがLinuxで動作することに同意します。 ポート転送はSSH接続を介して行われます。 したがって、単純なVDSでも中間サーバーとして適しています。



そしてもう1つの注意点-VDS上のSSHd は、異なるアドレスから転送されたポートへの接続を許可する必要があります。 これは重要です! これを解決するには、 GatewayPorts yes



をsshd_configにGatewayPorts yes



ます。 その後$ sudo /etc/init.d/ssh restart



サービスを$ sudo /etc/init.d/ssh restart



ことを忘れないでください。



作業のスキームは次のとおりです。

1) Wマシンは、誰かが私に接続したいかどうかをチェックしますか? (以下の詳細)

2)そうでない場合は、何もしません。 はいの場合、 VDSサーバーへのSSH接続を確立します。

3)マシンHは VNCクライアントによってVDS:5900に接続され、デスクトップWにアクセスします

4)利益!



別の質問-接続の必要性についてのフラグとして役立つものは何ですか? この問題を簡単に解決しました。 接続の必要性は、 VDSの開いているポート(たとえば、5995)の存在によって示されます。 ポートが開いている場合は、SSH接続を確立してポートを転送し、ポートが閉じている場合は、次のセッションまで不要なSSHチャネルを閉じます。



今、いくつかのスクリプト:

誰かがテーブルにアクセスしたいかどうかを確認しますか?

$ crontab -u root -e

*/15 * * * * /usr/bin/connect_flag.sh







15分ごとに確認してください。



python-eで開いているポートをチェックするためのスクリプト

 import socket import subprocess def scan(host, port): while 1: sd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sd.connect((host, port)) except: return 0 else: sd.close() return 1 if __name__ == '__main__': if scan('yourServer', 5995): print 'start' else: print 'stop'
      
      







実際には、作業のロジックを実装するbashスクリプトconnect_flag.sh

 #!/bin/bash export PATH=$PATH:/bin:/usr/bin:/usr/local/bin PID=`/bin/ps ux | awk '/ssh -N username/ && !/awk/ {print $2}'` FLAG=`/usr/bin/python /var/Script/portscan.py` PARAM="-N username@yourVDS -R 5900:127.0.0.1:5900" if [ $PID ]; then if [ $FLAG == 'stop' ]; then `kill $PID`; fi else if [ $FLAG == 'start' ]; then /usr/bin/ssh $PARAM & fi fi
      
      







以上です。 私が注意したいこと:





この記事を最後まで読んでくれたみんなに感謝します。



All Articles