我在 x64 上运行 Ubuntu 18.04。
这台机器已经运行了大约一周,一切正常,直到今天,我注意到它已经从我的本地网络中断开。在控制台上,“ifconfig”命令显示没有分配给 eth0 设备的 IP 地址(注意:它实际上不再是 eth0;他们现在给它起了一个随机字母组合的名字,但想法是一样的。我仍然认为它是 eth0)。
现在,至于造成这种情况的原因;我并不关心;我只是假设某种软件故障。问题是:如何修复?我认为最简单的解决方案就是重新启动,但我更愿意避免这样做。
在过去,你只需拔下/重新插入以太网电缆,它就会自行修复。例如,这在 Windows 下始终有效。直到最近,它在 Linux 中也始终有效。我注意到,当前/更高版本的 Linux 似乎不再像以前那样自行修复。
此外,在某些版本的 Linux(但显然不是 Ubuntu)上,您可以找出他们正在使用哪个 DHCP 程序(例如,dhcpcd)(似乎他们一直在更改它),通常是通过在所有正在运行的进程中搜索包含字符串“dh”的进程,然后您可以从手册页中找出如何让它再次运行。但是,该方法似乎在 Ubuntu 18.04 中不起作用。无论如何,我无法弄清楚哪个程序正在执行 dhcp。
无论如何,我可以通过执行以下手动操作使其再次工作(注意:这有效是因为我碰巧知道它之前应该有的 IP 地址):
- ifconfig eth0-但不是真的 wxyz
- 路线添加默认网关 wxy1
- 编辑 /etc/resolv.conf - 输入名称服务器(在我的网络上,也是 wxy1)
但是,显然,我想知道正确的方法,让路由器按照预期分配 IP 地址。
答案1
网络重启
sudo ifconfig enxxxxxx down
# 用正确的网络设备替换 enxxxxxx
sudo ifconfig enxxxxxx up
注意:NetworkManager
注意:dhclient
可能需要使用。请参阅man dhclient
。
网络名称(选修的)
它实际上不再是 eth0;他们现在给它起了一个名字,这是一个随机的字母集合,但想法是一样的。我仍然认为它是 eth0。
它其实不是随机的。它标识设备的插槽/端口。
如果您想要再次使用旧的/传统的(eth0,wlan0等)网络名称...
sudo -H gedit /etc/default/grub
寻找:
"quiet splash"
更改为:
"quiet splash net.ifnames=0"
保存编辑。
sudo update-grub
reboot
解析配置文件
不要手动编辑 /etc/resolv.conf。文件中已经明确说明了。
编辑您的问题并向我展示:
ls -al /etc/resolv.conf
cat /etc/resolv.conf