我的虚拟机已设置一些访问 Web 服务器和 SSH 的规则。服务器在内部端口 8080 中运行,并使用 iptables 重定向到端口 80,命令如下:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
当我将规则添加到 DROP INPUT 并随后添加用于打开端口的规则时
IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
它不起作用。
我在 SSH 服务器的端口 4422 上进行了相同的设置,并且运行正常,但在 http 服务器上却不行。
IPTABLES-列表:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:4422
ACCEPT all -- anywhere anywhere(this one is for the lo)
ACCEPT tcp -- anywhere anywhere tcp dpt:http
答案1
进行预路由前输入,因此您需要从 8080 接受,而不是 80。
IPTABLES -A INPUT -p tcp --dport 8080 -j ACCEPT