我目前已经设置了一台安装了 CentOS 6.6 的家庭服务器。该服务器有两个 NIC 接口,我将其用作路由器和 DHCP 服务器。下图显示了网络拓扑:
我已经让这个拓扑在没有任何特定端口转发的情况下运行;但是,将某些端口转发到特定设备不起作用。例如,我正在尝试转发端口 27015(以及其他一些端口)以将我在设备 1 上运行的《反恐精英》服务器公开到 Internet(设备 1 分配有静态 IP),但我无法让它工作。
以下配置可以帮助您深入了解为何无法正常工作。请注意,为了解决这个问题,我伪造了 MAC 和 IP 地址:
/etc/sysconfig/network-scripts/ifcfg-eth0(连接到调制解调器的网卡):
DEVICE=eth0
HWADDR=00:11:22:33:44:55
TYPE=Ethernet
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeffff0000
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
/etc/sysconfig/network-scripts/ifcfg-eth1(连接到交换机的网卡):
DEVICE=eth1
TYPE=Ethernet
UUID=11111111-2222-3333-4444-555566667777
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
HWADDR=aa:bb:cc:dd:ee:ff
IPADDR=192.168.1.1
NETMASK=255.255.255.0
/etc/sysconfig/iptables:
*nat
:PREROUTING ACCEPT [3:653]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 1200 -j DNAT --to-destination 192.168.1.101:1200
-A PREROUTING -i eth0 -p udp -m udp --dport 1200 -j DNAT --to-destination 192.168.1.101:1200
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3478 -j DNAT --to-destination 192.168.1.101:3478
-A PREROUTING -i eth0 -p udp -m udp --dport 3478 -j DNAT --to-destination 192.168.1.101:3478
-A PREROUTING -i eth0 -p tcp -m tcp --dport 4379:4380 -j DNAT --to-destination 192.168.1.101:4379-4380
-A PREROUTING -i eth0 -p udp -m udp --dport 4379:4380 -j DNAT --to-destination 192.168.1.101:4379-4380
-A PREROUTING -i eth0 -p tcp -m tcp --dport 27000:27050 -j DNAT --to-destination 192.168.1.101:27000-27050
-A PREROUTING -i eth0 -p udp -m udp --dport 27000:27050 -j DNAT --to-destination 192.168.1.101:27000-27050
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [5:1091]
:FORWARD ACCEPT [1:48]
:OUTPUT ACCEPT [1:330]
-A FORWARD -p tcp -m tcp --dport 27015 -j ACCEPT
-A FORWARD -p udp -m udp --dport 27015 -j ACCEPT
COMMIT
$route -n (您可以忽略 10.8.xx 中的任何内容。它们与 Docker 相关)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
111.111.32.0 0.0.0.0 255.255.224.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
0.0.0.0 111.111.32.1 0.0.0.0 UG 0 0 0 eth0
任何帮助将不胜感激,因为我已经阅读了几篇文章,但仍然无法弄清楚问题是什么。请注意,具有此配置的所有设备都可以访问互联网。
PS 我的问题在上面以粗体显示。如果你错过了,这里又来了:
我正在尝试转发端口 27015(以及其他一些端口)以将我在设备 1 上运行的《反恐精英》服务器公开到 Internet(设备 1 分配有静态 IP),但我无法让它工作。