端口转发适用于常规主机,但不适用于 KVM 来宾

端口转发适用于常规主机,但不适用于 KVM 来宾

我使用端口转发来桥接两个网络:家庭 (172.16.1.x) 和工作 (10.xxx),以便于访问。我的工作也为我分配了一个范围,192.168.203.x。还涉及一些 NAT。

这个 iptables 设置对我来说已经工作了很长时间,并且存在于家庭网络的基于 Linux 的路由器上:

*nat

# -- NAT configuration.
# ---- Static NAT towards Work
        -I PREROUTING -i vlan7 -d 192.168.203.3 -j DNAT --to 172.16.1.4
        -I POSTROUTING -o vlan7 -s 172.16.1.4 -j SNAT --to 192.168.203.3

# ---- NAT (shared IP) towards the Internet and Work networks.
        -A POSTROUTING -o vlan4 -j MASQUERADE
        -A POSTROUTING -o vlan7 -j MASQUERADE

COMMIT


*filter

# -- Rules for packets coming from Work zone.
# ---- Allow SSH from Work to only some hosts.
        -A INPUT -i vlan7 -s 10.0.6.1 -d 192.168.203.2 -p tcp --dport 22 -j ACCEPT
        -A FORWARD -i vlan7 -s 10.0.6.1 -d 172.16.1.4 -p tcp --dport 22 -j ACCEPT

# ---- Allow packets from connections starting from our end.
        -A FORWARD -i vlan7 -m state --state ESTABLISHED,RELATED -j ACCEPT
        -A INPUT -i vlan7 -m state --state ESTABLISHED,RELATED -j ACCEPT

# ---- Log/drop the rest.
        -A INPUT -i vlan7 -j LOG
        -A FORWARD -i vlan7 -j LOG
        -A INPUT -i vlan7 -j DROP
        -A FORWARD -i vlan7 -j DROP
COMMIT

这样,我就可以定期从 172.16.1.4 所在的家庭网络访问 ssh(这里没什么特别的)。从工作网络(我的电脑位于 10.0.6.1),我可以通过 IP 192.168.203.2 访问它。一切正常。

但是,如果我将该主机替换为 KVM 来宾(在桥接模式下,其 IP 设置为 172.16.1.4),则会发生以下情况:

  • 我仍然可以从家庭网络访问主机。
  • 主机本身可以访问互联网和工作网络。
  • 我无法再从工作网络访问它。

所以端口转发似乎不再起作用。我不明白 KVM 与此有何关系,但也许我错过了一些东西?

相关内容