我使用端口转发来桥接两个网络:家庭 (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 与此有何关系,但也许我错过了一些东西?