所以我在网络方面还很陌生,想先在虚拟机中测试一些东西。
我用 Ubuntu 服务器搭建了一个小型 VM 网络。你可以看看网络图单击此链接(忽略交换机,它们仅用于说明目的)。所以基本上我想用配置为路由器的 Linux 服务器连接两个网络。问题是现在内部网络之间可以通信,我可以 ping 通例如 PC1 和 PC2,但我没有通过 NAT 连接到谷歌或其他方的互联网。使用ping google.com
或ping 8.8.8.8
发出以下消息:
ping:google.com:名称解析暂时失败
和
来自 192.168.1.1 icmp_seq=1 目标主机无法访问
这发生在 VM 网络中的每个设备上。我已经测试了一个全新的 VM,也使用了相同的发行版以及相同的 NAT 设置,它没有任何问题。我可以正常 ping google.com。因此,Virtual Box 设置不可能导致我的网络出现问题。
我按照以下步骤创建了网络:
我创建了每个虚拟机,并使用 ubuntu 服务器作为发行版,并且每个虚拟机都具有 NAT 连接和端口转发,以便访问主机。此外,每个虚拟机至少有 1 个用于内部网络的适配器。端口转发按预期成功运行,我可以使用主机 PC 上的 PuTTy 访问每个虚拟机。
我编辑了每台机器的静态 IP,以便它们可以互相看到。IP 如上图所示。PC1 的 /etc/netplan 中的 netplan 设置如下:
network: ethernets: enp0s3: dhcp4: true enp0s8: dhcp4: no addresses: [192.168.1.11/24] gateway4: 192.168.1.1 version: 2
enp0s3 是 NAT 适配器,enp0s8 是内部网络适配器。
- 对于路由器设置,我再次使用了 2 个以太网适配器以及 NAT 适配器。netplan 如下所示:
network: ethernets: enp0s3: dhcp4: true enp0s8: dhcp4: no addresses: - 192.168.1.1/24 gateway4: 192.168.1.1 enp0s9: dhcp4: no addresses: - 192.168.2.1/24 gateway4: 192.168.2.1 version: 2
并且我已在 /etc/systctl.conf 中通过取消注释启用了 ip4 转发。net.ipv4.ip_forward=1
差不多就是这样。我真的很沮丧,因为我不知道为什么它现在不工作,花了 8 个多小时寻找它。我会很感激每一个帮助 :) 如果需要,我还可以提供更多信息。
`
嗨,谢谢你的回答!我的 PC1 路线如下:
default via 192.168.1.1 dev enp0s8 proto static
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 metric 100
192.168.1.0/24 dev enp0s8 proto kernel scope link src 192.168.1.11
我不完全确定对默认源使用两条路线是否有效。
我的路由器的路线如下:
default via 192.168.1.1 dev enp0s8 proto static
default via 192.168.2.1 dev enp0s9 proto static
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15
10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 metric 100
192.168.1.0/24 dev enp0s8 proto kernel scope link src 192.168.1.1
192.168.2.0/24 dev enp0s9 proto kernel scope link src 192.168.2.1
答案1
您是否检查过是否有默认路由?我认为它缺失了。
nabil@LAPTOP:~$ ip route
default via 172.30.80.1 dev eth0 -Default route
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.30.80.0/20 dev eth0 proto kernel scope link src 172.30.85.180
您也可以检查一下 PC1 和路由器吗?
在路由器 Netplan 配置中,请注释掉该gateway4
行并执行 ˋsudo netplan apply`,然后检查是否可以从路由器 ping 互联网。如果可以,请从另一台计算机尝试。