You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Ubuntu中永久禁用USB以太网接口(重启后生效)

如何在Ubuntu中永久禁用USB以太网接口(重启后生效)

嘿,我懂你的困扰——不想让Ubuntu使用显示器自带的USB-C以太网接口,而且得保证重启后依然禁用,之前试了Netplan的activation-mode: off没效果对吧?别着急,咱们试试这几个靠谱的方法,总有一个能解决问题:

方法一:修正Netplan配置文件

有些Ubuntu版本里,activation-mode: off可能不生效,换用enabled: false的写法更稳妥,步骤如下:

  1. 先确定你的USB以太网接口名称,执行命令:
    ip link show
    
    输出里类似enxabcdef123456的就是USB接口(通常以enx开头,带一串字母数字)。
  2. 打开Netplan配置文件(一般在/etc/netplan/目录下,文件名可能是00-installer-config.yaml或者类似):
    sudo nano /etc/netplan/00-installer-config.yaml
    
  3. 修改配置,在对应接口下添加禁用规则,示例如下:
    network:
      version: 2
      ethernets:
        enxabcdef123456:  # 替换成你的接口名
          match:
            name: enxabcdef123456
          dhcp4: no
          dhcp6: no
          optional: true
          enabled: false
    
  4. 应用配置并生成规则:
    sudo netplan generate
    sudo netplan apply
    
  5. 重启系统验证接口是否保持禁用状态。

方法二:用systemd-networkd彻底禁用

如果你的Ubuntu用的是systemd-networkd管理网络,这个方法更直接:

  1. 创建一个网络规则文件:
    sudo nano /etc/systemd/network/10-disable-usb-eth.network
    
  2. 写入以下内容(替换接口名):
    [Match]
    Name=enxabcdef123456  # 替换成你的接口名
    
    [Network]
    Disable=true
    
  3. 重启systemd-networkd服务:
    sudo systemctl restart systemd-networkd
    
  4. 重启系统后检查接口状态。

方法三:用udev规则底层拦截

如果上面的方法都没效果,udev规则能从设备加载层面阻止接口启用,属于更彻底的方案:

  1. 先获取USB以太网设备的厂商ID和产品ID(比接口名更稳定,不会随系统变化):
    udevadm info -a -p $(udevadm info -q path -n enxabcdef123456) | grep -E "idVendor|idProduct"
    
    输出会类似ATTRS{idVendor}=="1234"ATTRS{idProduct}=="5678"
  2. 创建udev规则文件:
    sudo nano /etc/udev/rules.d/99-disable-usb-eth.rules
    
  3. 写入规则(替换成你查到的ID):
    SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", RUN+="/sbin/ip link set $name down", RUN+="/sbin/ip link set $name nomaster"
    
    如果你不想查ID,也可以直接用接口名,把上面的ATTRS{idVendor}ATTRS{idProduct}换成ATTR{name}=="enxabcdef123456"
  4. 重新加载udev规则:
    sudo udevadm control --reload-rules && sudo udevadm trigger
    
  5. 重启系统验证效果。

额外注意事项

  • 如果你用的是NetworkManager图形化管理网络,也可以先在设置里找到该接口,选择“禁用”,然后执行nmcli device set enxabcdef123456 managed no,防止NetworkManager自动启用它。
  • 修改任何配置文件前,建议先备份原文件,比如sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.bak

备注:内容来源于stack exchange,提问作者Tamer Ziady

火山引擎 最新活动