端口 8080 和 22 重定向 2222 不起作用

端口 8080 和 22 重定向 2222 不起作用

我正在尝试打开一些端口 8080 和 22 重定向到 2222。我在/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://本地主机: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

我总是得到:此页面无法在网络浏览器上显示。有谁可以提供任何建议让我可以使网页更易于访问吗?

答案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

我必须将 ESTABLISHED 添加到我的 iptables 规则中:

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

相关内容