我有一台国内服务器,这台服务器有两个公网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
iptables
通过运行以下命令来验证该规则是否确实正在应用:
iptables -t nat -L -n
- 验证服务器的默认路由是否正确,以及流量是否从香港一侧出去
2.2.2.2
:
ip route
- 验证
3.3.3.3
美国的服务器是否能够接收端口上的流量2080
:
telnet 3.3.3.3 2080
如果连接成功,服务器就可以在端口 2080 接收流量。
- 验证
3.3.3.3
美国服务器上的任何防火墙都没有阻止端口2080
流量。
如果这些步骤不能解决问题,您必须在规则中添加一些日志iptables
以查看流量是否按预期匹配和转发:
-j LOG --log-prefix "Port Forwarding: "
每当规则匹配时,这将向内核日志添加一条日志消息:
dmesg