ポート8080と22リダイレクト2222は機能しません

ポート8080と22リダイレクト2222は機能しません

いくつかのポート 8080 と 22 を開いて 2222 にリダイレクトしようとしています。 では selinux を無効にしています/etc/sysconfig/selinux

私は 8080 を使用して Tomcat にアクセスし、ポート 22 を使用して 2222 にリダイレクトしています。次のコマンドを使用します。

[root@tomcat7test bin]# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
[root@tomcat7test bin]# iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222

そしてiptablesを再起動すると、ウェブページにアクセスできなくなりますhttp://localhost:8080/

netstat を実行すると、ポートが開いていることがわかります。

[root@tomcat7test ~]$ netstat -an | grep '22'
tcp        0      0 0.0.0.0:2222                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
unix  2      [ ACC ]     STREAM     LISTENING     9922   private/smtp
unix  3      [ ]         STREAM     CONNECTED     3848226 /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     3848225
[rkahil@tomcat7test ~]$ netstat -an | grep '8080'
tcp        0      0 :::8080                     :::*                        LISTEN

いつも次のメッセージが表示されます: このページは Web ブラウザーで表示できません。Web ページをよりアクセスしやすいものにするための提案はありますか?

答え1

からhttps://askubuntu.com/questions/444729/redirect-port-80-to-8080-and-make-it-work-on-local-machine:

ループバック トラフィックは PREROUTING からは通過せず、OUTPUT からのみ通過します。

したがって、以下を追加する必要があります: iptables -t nat -A OUTPUT -o lo -p tcp --dport 22 -j REDIRECT --to-port 2222

答え2

Iptables ルールに ESTABLISHED を追加する必要がありました:

iptables -I INPUT -i eth0 -p tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT

関連情報