前言
用 do-release-upgrade 更新 Ubuntu 18.04 LTS 至 Ubuntu 20.04 LTS,结果中间报了错,再次重启之后网络就没有了……记录一些当时 Debug 的过程。
正文
首先测试 ping 局域网设备,
ping 10.140.100.166
结果报错
network unreachable
测试网络设备
lshw -c network
找了半天,与能上网的服务器进行了比对,发现输出的内容有两个不一样,一个是驱动较旧,但是此时没有网络更新驱动很困难。另一个是之前的 IP 地址没有了。参考了下面的链接,Ubuntu 官方的文档。
Network - Configuration | UbuntuUbuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.https://ubuntu.com/server/docs/network-configuration找到网卡的 logical name 后,执行类似如下命令(根据实际调整 IP 和 enp0s25),命令中的 dev 无实际意义。
ip addr add 10.102.66.200/24 dev enp0s25
下面的命令重启网卡
ip link set dev enp0s25 up
ip link set dev enp0s25 down
下面的命令设置路由。
sudo ip route add default via 10.102.66.1
最后编辑 /etc/resolv.conf 文件,在最后加上下面的内容以添加 DNS。
nameserver 8.8.8.8
nameserver 8.8.4.4
上面的操作最好在有参照的情况下执行,最好是有同一个局域网下其他可正常运行的设备,参照其他服务器进行配置。如果没有就只能在日常工作中做好记录了。
但是上面的 IP 设置是临时性的,重启后会丢失,所以在通过上面的配置可以使用网络后,就要进行永久性的设定。
永久性网络设定
由于我的环境是静态 IP,这里参考了下面的链接。
nullhttps://linuxconfig.org/how-to-configure-static-ip-address-on-ubuntu-18-10-cosmic-cuttlefish-linux基本上来说,ubuntu 自带 GUI 配置网络实际上相当于把权利给到了一个 network-manager 的库,但是这个库就像 GUI 一样,server 版是不自带的……还要配置,不如直接配置底层的。
首先进入 /etc/netplan/ 目录,我这里的情况是这个目录下就只有一个配置文件 `00-installer-config.yaml`,所以很简洁明了,打开并编辑即可。注意这个文件可能叫别的名字。
打开后的内容发现果然是这个文件除了问题,参照别的可以上网的服务器配置如下。
# This is the network config written by 'subiquity'
network:
ethernets:
eno1:
addresses: [10.201.200.117/23]
gateway4: 10.201.201.254
dhcp4: false
optional: true
nameservers:
addresses: [8.8.8.8,8.8.4.4]
version: 2
大致来说,eno1 是接口的 logical name,addresses 是 IP 配置还有网关不必多说,dhcp4 是 DHCP,optional 这个比较有意思,是使用网络 boot 的设备需要配置的,正常就 true 即可,表示如果该网络没有连接能不能 boot,nameservers 就是 DNS 了。version 2 就是简单的版本说明。
相关的详细文档可以参考:
NetplanReferencehttps://netplan.io/reference
编辑结束后,执行下面的命令使其生效。
sudo netplan apply
然后 reboot 重启应该就好了。