我最近不得不更换我的电脑,因此将我的客户机 Ubuntu 20.04 的驱动器文件复制到了新机上。我安装了 VM Ware Workstation Pro 16 并启动了 Ubuntu 系统。启动时,我不再有网络接口,eth0
并且某些应用程序无法连接。默认的 Firefox 浏览器可以访问互联网,但某些应用程序无法连接到我的本地网络。
ifconfig -s
显示如下:
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0 1500 0 0 0 0 0 0 0 0 BMU
ens33 1500 6828 0 0 0 3357 0 0 0 BMRU
lo 65536 961 0 0 0 961 0 0 0 LRU
veth013d 1500 303 0 0 0 316 0 0 0 BMRU
veth0f0d 1500 2777 0 0 0 408 0 0 0 BMRU
veth78e2 1500 29689 0 0 0 33318 0 0 0 BMRU
vethbfaf 1500 39039 0 0 0 29841 0 0 0 BMRU
我曾尝试搜索命令重新启用eth0
,重命名ens33
为etho0
甚至重新安装内核模块和网络管理器但/etc/network/interfaces
不存在(我后来发现这是因为它从 18.04 中删除),这些链接中列出的大多数命令在我的计算机上都不存在。我已更新操作系统,sudo apt-get update && sudo apt-get upgrade
似乎成功了。
因为/etc/network/interfaces/
不存在所以我不能添加auto eth0
。
我已经查看过,etc/netplan/01-network-manager-all.yaml
但它只是说:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
我该怎么做才能eth0
恢复?
答案1
将 Ubuntu 20.04 从 VirtualBox 6.1 移植到 ESXi 6.5 后确实遇到了同样的问题。旧接口“enp0s3”消失了,但新接口“ens33”出现了。
按照 Ubuntu 文档的“IP 寻址”部分配置“ens33”接口: https://ubuntu.com/server/docs/network-configuration
PS 启动日志显示“eth0”已重命名为“ens33”
日志行:“e1000 ens33:从 eth0 重命名”
命令:“dmesg | grep eth0”
如果您只需要重命名接口,请使用以下命令:
ifconfig ens33 down
ip link set ens33 name eth0
ifconfig eth0 up
答案2
您可能需要运行此命令(如果您没有安装 NetworkManager):
systemctl restart systemd-networkd
否则,最好定期运行脚本来检查网络连接并重新启动服务器上的网络。这是我使用的:
#!/bin/bash
# Set target host IP or hostname to check the connectivity with:
TARGET_HOST='google.com'
# Specify your log file:
LOG_FILE='/var/log/netmon.log'
count=$(ping -c 3 $TARGET_HOST | grep from* | wc -l)
if [ $count -eq 0 ]; then
echo "$(date)" "Target host" $TARGET_HOST "unreachable, Restart network service!" >>$LOG_FILE
systemctl restart systemd-networkd
echo "$(date)" "Finished restarting network service" >>$LOG_FILE
else
echo "$(date) ===-> OK! " >>$LOG_FILE
fi
最后,确保cron
使用以下命令添加作业crontab -e
(在使用以下命令使脚本文件可执行之后)chmod a+x path_to_your_script
*/10 * * * * /path_to_your_script