Debian 9网络接口重命名异常求助:ens3被改回eth0
解决Hetzner云Debian 9中网络接口二次重命名的问题
我之前在Hetzner云环境折腾Debian 9的时候也遇到过一模一样的问题!这种先变成ens3又改回eth0的二次重命名,大概率是Hetzner为了兼容性做的自定义配置,下面几个关键位置你可以逐个排查:
检查自定义udev规则
Hetzner通常会在/etc/udev/rules.d/目录下添加自定义规则来强制保留eth0命名。你可以重点查看:/etc/udev/rules.d/70-persistent-net.rules:这个文件里通常会绑定MAC地址到固定接口名,可能有一行类似SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="你的网卡MAC", NAME="eth0"的规则,会把ens3强制改回eth0。- 如果上面的文件不存在,看看有没有
/etc/udev/rules.d/60-net.rules或者其他带net关键词的规则文件,里面可能有同样的逻辑。
排查systemd-networkd配置
如果你的系统用了systemd-networkd管理网络,检查/etc/systemd/network/目录下的.network配置文件,比如可能有文件里写了:[Match] Name=ens3 [Link] Name=eth0这种配置会在识别到ens3接口后立即重命名为eth0。
查看Hetzner的启动脚本/云初始化配置
Hetzner云会自带一些启动时运行的自定义脚本,用来适配他们的环境:- 检查
/etc/init.d/目录里有没有带hetzner或network关键词的服务脚本,比如hetzner-network-setup之类的,这类脚本可能在系统启动后期主动修改接口名。 - 如果你的系统启用了cloud-init,看看
/var/lib/cloud/scripts/或者/etc/cloud/cloud.cfg.d/里的配置,Hetzner的cloud-init模板经常会加入强制保留eth0的逻辑。
- 检查
用dmesg日志精准定位
你可以跑这个命令看重命名的详细触发日志:dmesg | grep -A 10 -B 10 "renamed from"日志里会显示是谁触发的重命名(比如udevd进程或者某个脚本),根据这个线索去对应找配置文件会更高效。
一般来说,最常见的原因是udev规则,毕竟Hetzner需要保持用户对eth0这个传统名称的使用习惯,所以会绕过Debian的可预测接口名称机制。
内容的提问来源于stack exchange,提问作者Rimvydas
相关产品推荐
相关产品推荐

