我有一个测试虚拟机网络,其流量需要通过另一个虚拟机(在 VMware 中)。我认为最好的解决方案是将“路由器”虚拟机设置为同时具有 NAT 和仅主机适配器,并将测试虚拟机放在仅主机网络上。
我变了/etc/网络/接口在路由器虚拟机上:
...
auto vmnet8
iface vmnet8 inet static
address 10.10.10.15
gateway 10.10.10.2
broadcast 10.10.10.255
netmask 255.255.255.0
auto vmnet9
iface vmnet9 inet static
address 10.10.11.1
broadcast 10.10.11.255
netmask 255.255.255.0
以及仅主机网络上的示例虚拟机:
...
auto vmnet9
iface vmnet9 inet static
address 10.10.11.12
broadcast 10.10.11.255
netmask 255.255.255.0
gateway 10.10.11.1
我也设置了/proc/sys/net/ipv4/ip_forward路由器虚拟机上的 1
截至目前,路由器虚拟机可以访问互联网并可以与其他虚拟机通信,但不会将流量从纯主机网络转发到 NAT 连接。
答案1
您需要iptables
规则来转发一个以太网开发上的输入以输出到另一台设备,反之亦然,以便流量可以双向流动。然后,您需要在要连接到虚拟子网的任何设备上设置适当的路由
我使用(在 virtualbox 中执行相同操作,一个网卡桥接到我的 LAN,另一个网卡“仅内部”)。我将其设置为一个脚本,通过“路由器”虚拟机上的 rc.local 在启动时运行...
#!/bin/bash
/sbin/iptables -F
/sbin/iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT