在我的“路由器”机器中,我有以下内容/etc/network/interfaces
:
# The loopback network interface
auto lo eth0 eth1 eth2 eth3
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# Subred 1
iface eth1 inet static
address 192.168.10.1
netmask 255.255.255.0
# Subred 2 (dhcp)
iface eth2 inet static
address 192.168.20.1
netmask 255.255.255.0
# Host-only
iface eth3 inet static
address 192.168.56.10
netmask 255.255.255.0
broadcast 192.168.56.255
在~/.bashrc
(至少现在,稍后可能会在/etc/network/interfaces
):
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 192.168.10.20:80
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 22 -j DNAT --to-destination 192.168.20.46:22
iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.10.20 -j ACCEPT
iptables -A FORWARD -i eth0 -p tcp --dport 22 -d 192.168.30.50 -j ACCEPT
并iptables -t nat-L
给我:
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:http to:192.168.10.20:80
DNAT tcp -- anywhere anywhere tcp dpt:ssh to:192.168.20.46:22
但是,从子网外部,我既无法连接到 中的 Web 服务器,192.168.10.20
也无法连接到 中的 ssh 服务器192.168.30.50
。从子网内部则没有问题。
答案1
我一直在尝试通过 进行连接eth3
,但并未重定向来自 的流量,仅重定向来自eth0
。一个愚蠢的错误,花了几天时间才解决……