リモートIPに移植するUbuntuコンピューターに「仮想」リスニングポートを作成する方法はありますか?
つまり、このようなものです。
telnet 127.0.0.1 555と書くと、コンピューターに接続したい192.168.0.21ポート555(サーバーがある場所) )。
何か案が?
iptables はあなたが探しているものであり、Ubuntuにすでにインストールされているはずです。
少し試行錯誤するかもしれませんが、以下のコマンドのようなものでうまくいくはずです。
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 555 -j DNAT --to 192.168.0.21:555
iptables -A INPUT -p tcp -m state --state NEW --dport 555 -i eth1 -j ACCEPT
これらのコマンドの機能の詳細については、 ここ を参照してください。
もう1つの方法は、Ubuntuでシナプスを介して利用できる rinetd というプログラムを使用することです。
リダイレクトTCPあるIPアドレスとポートから別のIPアドレスへの接続。rinetdは、ファイル/etc/rinetd.confで指定されたアドレス/ポートのペアへの接続をいくつでも処理するシングルプロセスサーバーです。 。
それを使用する方法についての素晴らしいガイドがあります ここ
http://www.frozentux.net/iptables-tutorial/chunkyhtml/x4033.html
このシナリオ全体の最後の側面を考慮しない限り、これで十分だと思います。ファイアウォール自体がHTTPサーバーにアクセスしようとすると、どこに行きますか?今のところ、残念ながら、$ HTTP_IPにあるサーバーではなく、独自のHTTPサーバーにアクセスしようとします。これを回避するには、OUTPUTチェーンにもDNATルールを追加する必要があります。上記の例に従うと、これは次のようになります。
iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT --to-destination $HTTP_IP
Iptablesの代わりにredirを使用してください: http://manpages.ubuntu.com/manpages/lucid/man1/redir.1.html