(抱歉写得这么长——一开始我试图回答尽可能多的问题)
我的小办公室有四个 Ubuntu 18.04.4 服务器系统,通过 Spectrum Internet 提供的设备连接到互联网(具有静态 IP 地址)。三台机器从 14.04 升级到 16.04 再升级到 18.04,运行非常可靠。当 COVID-19 爆发时,我设置了一台新机器,使用一个全新的、刚开箱即用的硬盘和当前的 Ubuntu 18.04.4 安装程序,在我们在家工作时充当我们办公室网络的 OpenVPN 服务器。
一切都已完成,并且运行良好,除了一个棘手的问题:每当我需要重新启动我们正在运行的 vpn 机器时,我都无法再通过 Spectrum 提供的界面从互联网上看到它。我可以从我们的任何其他计算机 ping 互联网地址,并且所有这些以太网电缆都直接从计算机连接到 Spectrum 设备,因此 ping 正在“本地”通过设备,但不知何故似乎根本没有传入流量到达 VPN 盒。但是,VPN 盒可以看到互联网并接收它请求的数据。似乎只有未经请求的流量(例如 ping 或传入的 VPN 连接)无法通过。
我可以通过使用 SSH 连接到其他机器之一,然后再从那里连接到 VPN 机器并再次启动它来修复它。然后它就可以完美运行了。
虽然我预计这里的每个人都会责怪 Spectrum,但必须我的全新 Ubuntu 安装可能有所不同,因为它是唯一出现这种情况的。在测试此问题时,我从头开始重新安装(每次都重新分区并重新格式化驱动器),发现只有安装了基本 Ubuntu 才会发生这种情况。零要获得这种奇怪的交替行为,需要“附加”软件包——我只需安装、分配内部和外部 IP 地址并运行即可。第一次启动时,来自互联网的 ping 得到响应,而下一次启动时,甚至没有收到响应(根据tcpdump
),每次启动都重复此循环。
我真的很想纠正这种行为,以便系统真正可靠,以防它因任何原因(如佛罗里达电源闪烁)自行重启,而我又不在身边帮助手动纠正它。不幸的是,我不知道是什么原因导致了这样的事情。有什么想法吗?
[编辑3:我错了]
在我测试 EDIT2 更改时执行的几次启动中,这个问题似乎已经得到解决,但问题又出现了,系统再次只能在交替启动时对互联网可见。当连接到同一交换机的其他计算机(具有 5 个端口的电缆调制解调器,全部连接到我分配的互联网地址块中的 IPv4 地址)访问时,它仍然可以很好地响应互联网 NIC(和 IPv4 地址)上的 ping 和其他预期流量。这从未发生在运行完全相同版本的 Ubuntu 的其他四台机器上。我真的希望我知道该怎么做。
[编辑2:后续]
我(最终)删除了下面显示的第二个 .yaml 文件,现在系统可以启动并在每次启动时完美运行。
因此,只剩下一个问题:
为什么我配置错误,系统在奇数/偶数启动时的工作方式不同?我不希望系统在启动时挑选配置,我希望每次都是相同的配置。
也许应该重新提交这个问题,但我不确定该如何命名。有人愿意提出建议吗?
[EDIT1:添加请求的命令输出]
注意:我隐藏了我们的外部地址,因为我不想让自己成为目标,但我确信它们是正确的。
注释 2:我不知道 netplan 文件中为什么有两个网络部分。这是否会导致系统在每次启动时交替选择其中一个网络部分?
注 3:经过长时间的努力,我终于让桥接的 OpenVPN 正常工作,但全新安装时也存在这个问题。 前我尝试更改这些文件或设置中的任何一个。
steve@vpn:~$ sudo lshw -C network
*-network:0
description: Ethernet interface
product: RTL8139 Ethernet
vendor: D-Link System Inc
physical id: 4
bus info: pci@0000:05:04.0
logical name: enp5s4
version: 10
serial: 00:0d:88:2d:d4:9b
size: 100Mbit/s
capacity: 100Mbit/s
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=8139too driverversion=0.9.28 duplex=full ip=aa.bb.cc.dd latency=64 link=yes maxlatency=64 mingnt=32 multicast=yes port=MII speed=100Mbit/s
resources: irq:16 ioport:c800(size=256) memory:fbbfeb00-fbbfebff
*-network:1
description: Ethernet interface
product: NC100 Network Everywhere Fast Ethernet 10/100
vendor: ADMtek
physical id: 5
bus info: pci@0000:05:05.0
logical name: enp5s5
version: 11
serial: 00:20:78:0f:d1:ed
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list rom ethernet physical
configuration: broadcast=yes driver=tulip driverversion=1.1.15 latency=64 maxlatency=255 mingnt=255 multicast=yes
resources: irq:17 ioport:cc00(size=256) memory:fbbfec00-fbbfefff memory:fbc00000-fbc1ffff
*-network:0
description: Ethernet interface
physical id: 1
logical name: br0
serial: c6:94:aa:54:63:49
capabilities: ethernet physical
configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A ip=192.168.42.2 link=yes multicast=yes
*-network:1
description: Ethernet interface
physical id: 2
logical name: tap0
serial: 2e:ac:be:7a:43:f6
size: 10Mbit/s
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=tun driverversion=1.6 duplex=full link=yes multicast=yes port=twisted pair promiscuous=yes speed=10Mbit/s
steve@vpn:~$ cat /etc/netplan/*.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp5s4:
dhcp4: no
addresses:
- aa.bb.cc.dd/29
gateway4: aa.bb.cc.ee
nameservers:
addresses:
- xx.yy.zz.1
- xx.yy.zz.2
enp5s5:
dhcp4: no
bridges:
br0:
interfaces: [enp5s5]
dhcp4: no
addresses: [192.168.42.2/24]
gateway4: 192.168.42.2
nameservers:
addresses: [192.168.42.4,192.168.42.1]
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp5s4:
dhcp4: no
addresses:
- aa.bb.cc.dd/29
gateway4: aa.bb.cc.ee
nameservers:
addresses:
- xx.yy.zz.1
- xx.yy.zz.2
enp5s5:
dhcp4: no
bridges:
br0:
interfaces: [enp5s5]
dhcp4: no
addresses: [192.168.42.2/24]
gateway4: 192.168.42.2
nameservers:
addresses: [192.168.42.2,192.168.42.4,192.168.42.1]
parameters:
hello-time: 2
max-age: 12
stp: on
priority: 1000
forward-delay: 9
steve@vpn:~$ cat /etc/network/interfaces
# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
# sudo apt install ifupdown