Ubuntu 20.04中如何永久禁用指定网络接口?
Ubuntu 20.04中如何永久禁用指定网络接口?
我完全理解你在Ubuntu 20.04里试图永久禁用特定网卡却碰壁的烦恼——之前你尝试的两种方法没生效,大概率是配置细节没做到位,或者没有正确应用配置。下面给你几个不需要修改驱动的靠谱方案,一步步来就能解决问题:
方法一:通过Netplan规范配置 推荐(Ubuntu 20.04默认方案)
Ubuntu 20.04默认用Netplan管理网络,之前你可能只是加了optional: true但没配合其他禁用参数,导致没效果。按以下步骤操作:
- 先确认你的目标网卡ID或MAC地址,执行命令:
记下网卡名(比如ip link showeth0)或者MAC地址(格式类似aa:bb:cc:dd:ee:ff),用MAC地址更稳妥,避免网卡名因系统更新变化。 - 编辑Netplan配置文件(通常位于
/etc/netplan/目录下,比如00-installer-config.yaml,文件名可能略有不同):sudo nano /etc/netplan/00-installer-config.yaml - 按YAML格式要求(缩进必须是空格,不能用Tab),修改对应网卡的配置:
network: version: 2 ethernets: eth0: match: macaddress: aa:bb:cc:dd:ee:ff # 替换成你的网卡MAC dhcp4: no dhcp6: no addresses: [] # 不配置任何静态IP optional: true - 生成并应用配置:
重启系统后,这个网卡就不会自动启用了。sudo netplan generate sudo netplan apply
方法二:用Systemd服务开机自动禁用
如果Netplan的方案没达到预期,这个兜底方法很有效:
- 创建一个Systemd服务文件:
sudo nano /etc/systemd/system/disable-eth0.service - 写入以下内容(替换
eth0为你的网卡名):[Unit] Description=Disable eth0 network interface Before=network.target [Service] Type=oneshot ExecStart=/sbin/ip link set eth0 down RemainAfterExit=yes [Install] WantedBy=multi-user.target - 启用并启动服务:
重启后,系统会在网络服务启动前自动禁用目标网卡。sudo systemctl enable disable-eth0.service sudo systemctl start disable-eth0.service
方法三:通过udev规则底层禁用
这个方法会在网卡被系统识别时直接禁用,适合需要更彻底禁用的场景:
- 创建udev规则文件:
sudo nano /etc/udev/rules.d/99-disable-eth0.rules - 写入规则(替换MAC地址为你的网卡MAC):
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", RUN+="/sbin/ip link set %k down" - 保存文件后重启系统,目标网卡一被识别就会被自动禁用。
以上三种方法都不需要修改网卡驱动,你可以从Netplan方法开始尝试,毕竟这是Ubuntu官方推荐的网络配置方式,最符合系统规范。
备注:内容来源于stack exchange,提问作者Eitan Caspi




