在 Virtual Box 中模拟 NAT 后面的客户端

在 Virtual Box 中模拟 NAT 后面的客户端

我正在尝试使用 Virtual Box 模拟 NAT 后面的客户端。

我有一台主机,其 IP 地址为 130.0.0.1。我创建了一台运行 Ubuntu 12.04 并带有两个网络接口的虚拟机(我们称之为 VM1)。

eth0 - Bridged Adaptor (Let's say it gets an address 130.0.0.2)
eth1 - Host-only Adaptor (Let's say it gets an address 192.168.0.1)

在 VM1 中,我使用以下命令清除所有 iptable 规则:

iptables -F 
iptables -t nat -F 
iptables --delete-chain 
iptables --table nat --delete-chain

我使用以下命令启用内核的数据包转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

我使用 iptables 创建新规则:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE OR iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE

iptables -A FORWARD -i eth1 -j ACCEPT OR iptables --append FORWARD --in-interface eth1 -j ACCEPT

我配置了 VM1 的 eth1 接口,其 /etc/network/interface 有以下条目:

auto lo
iface lo inet loopback 
auto eth1 
iface eth1 inet static 
address 192.168.0.1 
netmask 255.255.255.0

然后我创建了另一台运行 Ubuntu 12.04(仅主机适配器)的虚拟机(我们称之为 VM2)。我通过在 /etc/network/interface 中设置以下条目来配置其接口:

auto lo
iface lo inet loopback
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1

因此,根据此设置,VM2 应作为 NAT(VM1)后面的客户端运行,并且我正尝试从 VM2 连接到主机网络上的计算机。当我:

ping 130.0.0.2 or
ping 192.168.0.1 

它起作用了。但是当我尝试:

ping 130.0.0.1 or
any other machine on that network

我没有收到任何回复。有人能告诉我我遗漏了什么或做错了什么吗?

相关内容