ポート 8080 および 22 リダイレクト 2222 が機能しません。

ポート 8080 および 22 リダイレクト 2222 が機能しません。

2222にリダイレクトされているいくつかのポート8080と22を開こうとしています。私はここにいます/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を再起動するとWebページにアクセスできなくなります。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

関連情報