デバイスはインターネットに接続されていますが、NATの背後にあるため、ネットワーク外からSSH経由で直接アクセスできません。リバースSSHトンネリングがこの問題を回避する可能性があることがわかりました。
これで、このデバイスでnetcatサーバープロセスを実行して、ネットワークの外部から再びアクセスできるようにしたいと思います。どうすればいいですか?
答え1
私はこの問題を直接解決しました。 SSHトンネリングはデフォルトでポート転送のようです。 NATの背後にあるサーバーで次のコードを実行しています。
ssh -N -R 4321:localhost:1234 user@client &
client:4321
server:1234
これにより、トラフィックをルーティングし、バック&
グラウンドで実行するようにトンネルが確立されます。それでもサーバーで次のことを実行します。
ncat -lk -c "python myscript.py" localhost 1234 &
これにより、netcatプロセスが実行を開始しますmyscript.py
。これで、netcatを介してクライアントからサーバーに接続できるようになりました。
nc localhost 4321
ncat
(私のクライアントではありませんが、うまくいきます。nc
実際のユースケースはsocket
Pythonのライブラリを使用して接続することですが、これは同じように機能します)