如何在Ubuntu 22.04中仅修改指定USB以太网接口的静态IP且不影响互联网连接
如何在Ubuntu 22.04中仅修改指定USB以太网接口的静态IP且不影响互联网连接
嗨,我来帮你搞定这个问题!你的核心需求很明确:只调整那个USB转以太网接口(enx00e04c680202)的静态IP,同时保证无线网卡(wlp0s20f3)的互联网连接不受影响。我们先分析下原脚本出问题的原因,再给你两种实用的解决方案:
原脚本的问题根源
你用的脚本直接覆盖了系统默认的Netplan配置文件,还把网络渲染器从NetworkManager改成了networkd,而且只配置了目标接口——这就导致原来由NetworkManager管理的其他接口(比如你的无线网卡)的配置被清空了,自然连不上网了。
方案一:临时修改(立即生效,重启后恢复)
如果你只是需要频繁临时切换IP,这种方式最快捷,而且完全不会碰系统配置文件,也不会影响其他接口:
之前你用ip addr add是添加新IP而不是替换旧IP,所以旧地址还会显示在接口上。正确的操作可以用两种方式:
方式A:替换旧IP(一步到位)
直接用replace命令自动覆盖同子网的旧IP:
sudo ip addr replace 192.168.200.99/24 dev enx00e04c680202
执行完后用ifconfig或ip addr show enx00e04c680202检查,旧IP会被替换成新的。
方式B:先删旧IP再加新IP
如果replace命令没生效,可以手动删除旧IP再添加新的:
- 先查看当前接口的IP条目(确认旧IP):
ip addr show enx00e04c680202 - 删除旧IP:
sudo ip addr del 192.168.200.100/24 dev enx00e04c680202 - 添加新IP:
sudo ip addr add 192.168.200.99/24 dev enx00e04c680202 - (可选)重启接口确保生效:
sudo ip link set enx00e04c680202 down && sudo ip link set enx00e04c680202 up
方案二:永久修改(重启后依然生效,不影响其他接口)
如果需要修改后的IP在系统重启后依然保留,我们可以单独为目标接口创建一个Netplan配置文件,完全不干扰原来的NetworkManager配置:
- 先恢复原来的网络配置(确保互联网连接正常):
sudo cp /etc/netplan/01-network-manager-all.yaml.bak /etc/netplan/01-network-manager-all.yaml - 创建一个单独的Netplan配置文件(比如
02-usb-ethernet-static.yaml),专门管理目标接口:sudo tee /etc/netplan/02-usb-ethernet-static.yaml > /dev/null <<EOF network: version: 2 ethernets: enx00e04c680202: renderer: networkd # 用networkd单独管理这个接口,不影响NetworkManager的其他设备 addresses: [192.168.200.99/24] # 注意:这个接口只连接本地设备,不需要设置网关(gateway4),避免和无线网卡的网关冲突 # 如果本地设备需要DNS解析,可按需添加DNS配置,比如dns-servers: [8.8.8.8] EOF - 应用新配置:
sudo netplan apply
这样设置后,你的无线网卡依然由NetworkManager管理,保持互联网连接;目标USB以太网接口则由networkd单独管理,静态IP永久生效,两者互不干扰。
备注:内容来源于stack exchange,提问作者Alex




