无法使用 Iptables 转发端口

无法使用 Iptables 转发端口

在我的“路由器”机器中,我有以下内容/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。一个愚蠢的错误,花了几天时间才解决……

相关内容