我希望我的 Ubuntu VM 既有私有 IP,又有公共 IP。私有 IP 应由我的 DHCP 服务器提供。
目前我正在尝试这个:
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 109.68.162.166
netmask 255.255.255.240
network 109.68.162.160
broadcast 109.68.162.175
gateway 109.68.162.174
问题是我只能 ping 私有 IP 地址,而不能 ping 公共 IP 地址。当我关闭 eth0 时,我可以开始 ping 公共 IP 地址。所以看起来 DHCP 以某种方式阻止了我的公共 IP 地址正常工作?
ip route显示:
default via 192.168.168.254 dev eth0
default via 109.68.162.174 dev eth1 metric 100
109.68.162.160/28 dev eth1 proto kernel scope link src 109.68.162.166
192.168.160.0/20 dev eth0 proto kernel scope link src 192.168.164.96
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.168.254 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 109.68.162.174 0.0.0.0 UG 100 0 0 eth1
109.68.162.160 0.0.0.0 255.255.255.240 U 0 0 0 eth1
192.168.160.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
我的 vmhost 上的路由:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.168.254 0.0.0.0 UG 0 0 0 br925
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.160.0 0.0.0.0 255.255.240.0 U 0 0 0 br925
答案1
主要问题是您通过 DHCP 接收默认网关,该网关以最小度量 0 建立。由于数据包进入私有网络,因此您无法访问公共 IP。
尝试在 DHCP 中禁用网关。
供参考:SE/超级用户: 我不希望我的 DHCP 成为默认网关
答案2
我必须将其添加到 /etc/network/interfaces(在 eth0 部分)
up route add -net 192.168.159.0 netmask 255.255.255.0 gw 192.168.168.254 dev eth0