我正在与 Digital Ocean 合作,他们的帮助团队在发了十几封电子邮件后仍无法帮助我在从他们的备份映像启动的 VPS 上注册网络。他们指示尝试更改 grub,以便显示为 ens3 的网络设备将显示为 eth0,但不起作用。我需要阻止它被重命名为 ens3,这样我就可以按照他们的指示将 eth0 配置为静态 IP。
$ dmesg | grep -i eth
[ 8.676459] virtio_net virtio0 ens3: renamed from eth0
输出
$ ip addr show
我已经从 grub 中完成了并且没有出现任何错误的指示:
使用您最喜欢的文本编辑器(例如 vim)打开文件“/etc/default/grub.d/50-cloudimg-settings.cfg”。查找显示“GRUB_CMDLINE_LINUX_DEFAULT”的行,并在行末的引号内添加“net.ifnames=0”。之后应该如下所示:
GRUB_CMDLINE_LINUX_DEFAULT="控制台=tty1 控制台=ttyS0 net.ifnames=0"
保存并关闭文件
使用新设置更新 GRUB 并通过运行以下命令重新启动 Droplet:
$ 更新 grub
$重启
我已经这样做了,并且再次按照类似的说明操作,但没有成功https://www.itzgeek.com/how-tos/mini-howtos/change-default-network-name-ens33-to-old-eth0-on-ubuntu-16-04.html
编辑:根据@Terrance 和@Stephen Boston 的评论,这个文件似乎有问题,但我不确定该将其更改为什么:
$ cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="72:9d:39:b5:f6:ef", NAME="ens3"
(该目录中没有其他文件。)
ATTR 是 MAC 地址吗?此文件中的值是上面 ens3 的 ip addr show 中显示的值。我该如何确定它应该是什么。问题:NAME 后面的单个 = 而不是双 == 是否会导致问题?
一旦我让 ens3 变成 eth0,我想剩下的就很简单了。(FWIW whereis netplan 没有显示结果,没有 /etc/netplan 目录,而且我实际上并不是系统管理员。)
答案1
mkdir -p /etc/systemd/network && ln -s /dev/null /etc/systemd/network/99-default.link
在 v197 中 systemd 引入可预测的网络接口名称
确保任何特定接口在启动时始终获得相同的名称。这由 控制/usr/lib/systemd/network/99-default.link
,可以使用上述命令“屏蔽”(覆盖)。