我有两个连接到真实机器的接口,eth0 和 vboxnet2(VirtualBox 桥接网络)。
eth0 位于 192.168.15.x 上并连接到我的 ADSL 调制解调器。 vboxnet2 位于 192.168.200.x。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.15.1 0.0.0.0 UG 0 0 0 eth0
192.168.15.0 * 255.255.255.0 U 1 0 0 eth0
192.168.200.0 * 255.255.255.0 U 0 0 0 vboxnet2
我应该能够从(比如说)192.168.15.100 到 192.168.200.4 吗?我对路由表的理解是,它说“如果您看到任何发往 192.168.200.x 的数据包,请将它们发送到 vboxnet2 接口”。我似乎不需要 NAT、iptables 魔法或桥接网络。但它不起作用(“没有到主机的路由”)。
长期的 Linux 用户,但在过去几年中,随着 NetworkManager 开始做所有事情,网络细节已经从脑海中消失了……
答案1
您需要使用 启用路由echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
。然后您还需要在其他机器上设置适当的路由。因此,在 192.168.15.100 上,您需要说类似的话ip route add 192.168.200.0/24 via 192.168.15.x
(其中 x 是转发机器的 IP 地址)。同样,您需要在虚拟机上添加 192.168.15.0/24 的路由。