我有一个 ubuntu 17.04,我配置了 DNS、DHCP 和 iptables,一切都按预期工作。现在只是端口转发不起作用。DNS、DHCP 和互联网都可供私有子网中的计算机使用。
这是我的设置:
eno1 is the exterior/public NIC
enp2s0f1 is the private subnet NIT
myubuntu enp2s0f1 ip: 192.168.0.1
ubuntu@myubuntu:~$ sudo iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
ubuntu@myubuntu:~$ sudo iptables -t nat --line-numbers -L
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 DNAT tcp -- anywhere anywhere tcp dpt:http to:192.168.0.51:8080
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
1 MASQUERADE all -- anywhere anywhere
ubuntu@myubuntu:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.10.6.1 0.0.0.0 UG 0 0 0 eno1
10.10.6.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eno1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enp2s0f1
我觉得这肯定是件很傻的事...但我找不到。如能得到任何帮助我将不胜感激。
我将 POSTROUTE MASQUERADE 翻转到 WAN 网卡,我的 RDP (3389) 的 NAT 转发功能已正常工作。但是,另一个到其他服务器的 NAT 不起作用???此 NAT 从路由器上的端口 80 映射到另一个 CPU 上的端口 8080,它不起作用。
ubuntu@myubuntu:/$ sudo iptables -t nat -v -x -n -L --line-numbers
Chain PREROUTING (policy ACCEPT 340 packets, 29199 bytes)
num pkts bytes target prot opt in out source destination
1 1 52 DNAT tcp -- eno1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9997 to:192.168.0.4:3389
2 0 0 DNAT tcp -- eno1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.0.51:8080
3 0 0 DNAT tcp -- eno1 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:81 to:192.168.0.51:8080
对于 NAT #1,我可以看到数据包流入其中,但对于 NAT 2 和 3,我看不到?本地没有任何东西阻止这些端口。
有什么建议么?