FORWARD 链时可能被默认策略 DROP 拦截的问题。
外部请求进入宿主机后,通常会依次经过:
nat/PREROUTING + DNAT:把宿主机端口改写到内网 IP:端口。filter/FORWARD:DNAT 后的数据包会被转发链检查,默认 DROP 时必须显式放行。nat/POSTROUTING + MASQUERADE:把源地址伪装成宿主机,避免后端主机直接回给客户端导致连接不通。
如果服务器设置了 iptables -P FORWARD DROP,只有 DNAT 和 MASQUERADE 还不够。
需要额外允许访问后端服务的新连接,并允许 ESTABLISHED,RELATED 状态的回包。
sudo iptables -t nat -vnL --line-numberssudo iptables -vnL FORWARD --line-numberssudo iptables -S FORWARDsudo iptables-save | sudo tee /etc/iptables.rules > /dev/nullOUTPUT 链不是常规入站端口映射,可能影响本机访问同端口的连接。