我在同一个网络中拥有多个 Ubuntu 服务器,它们有两个网络接口。一个用于公共互联网访问(80.90.100.40/29),一个用于内部网络通信(192.168.1.35/28)。所有服务器都使用静态 IP。
使用网络/接口的 Ubuntu 18.04 LTS 使用静态 IPS 不会出现问题。它们只需连接即可。接口配置如下:
auto lo
iface lo inet loopback
auto ens160
iface ens160 inet static
address 80.90.100.45
netmask 255.255.255.248
network 80.90.100.40
broadcast 80.90.100.47
gateway 80.90.100.41
dns-nameservers 8.8.8.8 8.8.4.4
dns-search local
auto ens192
iface ens192 inet static
address 192.168.01.45
netmask 255.255.255.248
这个配置非常有效。我使用 Ubuntu 22.04 LTS(使用 Netplan)向网络添加了一台新服务器,并将网络配置设置如下:
network:
ethernets:
ens160:
dhcp4: no
addresses:
- 80.90.100.44/29
routes:
- to: default
via: 80.90.100.41
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: [local]
ens192:
dhcp4: no
addresses:
- 192.168.1.38/28
routes:
- to: 192.168.1.32/28
via: 192.168.1.33
version: 2
虽然带有接口的 Ubuntu 18.04 LTS 服务器工作正常,但带有 Netplan 的 Ubuntu 22.04 LTS 服务器总是断开连接。Ping 包丢失。一旦丢失,我尝试跟踪路由到 8.8.8.8 DNS,输出如下;
但一旦连接恢复,traceroute 就可以正常工作。从 22.04 LTS 发送 ping 时,25-35% 的数据包会丢失。
正如您可能猜到的,这真的很烦人,因为我正在尝试设置一个 Web 应用程序。
到目前为止,我已经使用 Netplan 禁用了 Ubuntu 22.04 LTS 的 IPv6,但问题仍然存在。没有 IP 重叠。内部网络也没有问题。只有公共访问受到影响。任何帮助都值得感激。
答案1
我检查了 netplan 调试,发现 /run/systemd/network 路径包含一个用于我的接口的文件。当我检查接口时,我看到 LinkLocalAddressing=ipv6
所以我补充道
link-local: [ ipv4 ]
我的配置和连接问题现在已经消失。
答案2
如果你的网络接口断开了,你应该检查内核日志输出(dmesg
或journalctl
)。这可能是驱动程序问题或物理接线问题。