iptables 端口转发不起作用

iptables 端口转发不起作用

我有一台国内服务器,这台服务器有两个公网IP:一个是国内IP:1.1.1.1 一个是香港的IP:2.2.2.2

服务器默认路由是从2.2.2.2香港那边出去,我现在在美国有一个服务器3.3.3.3,作为科学服务器,端口是2080。

我想要访问1.1.1.1的1080端口,并通过DNAT将流量重定向到美国的3.3.3.3:2080。

应该怎么写呢?

iptables -t nat -A PREROUTING -p tcp -d 1.1.1.1 --dport 1080 -j DNAT --to-destination 3.3.3.3:2080

iptables -t nat -A POSTROUTING -j MASQUERADE

此语句无效。服务器转发已启用。

答案1

  1. iptables通过运行以下命令来验证该规则是否确实正在应用:
iptables -t nat -L -n
  1. 验证服务器的默认路由是否正确,以及流量是否从香港一侧出去2.2.2.2
ip route
  1. 验证3.3.3.3美国的服务器是否能够接收端口上的流量2080
telnet 3.3.3.3 2080

如果连接成功,服务器就可以在端口 2080 接收流量。

  1. 验证3.3.3.3美国服务器上的任何防火墙都没有阻止端口2080流量。

如果这些步骤不能解决问题,您必须在规则中添加一些日志iptables以查看流量​​是否按预期匹配和转发:

-j LOG --log-prefix "Port Forwarding: "

每当规则匹配时,这将向内核日志添加一条日志消息:

dmesg

相关内容