Ubuntu 22.04 LTS Desktop下从非/etc/netplan目录加载Netplan配置文件的可行性及实现方法
Ubuntu 22.04 LTS Desktop下从非/etc/netplan目录加载Netplan配置文件的可行性及实现方法
完全可以直接从/home/$USER/ProjectX/02-network-manager-all.yaml这个路径加载并应用Netplan配置,根本不需要复制到/etc/netplan目录!你提到的netplan apply -c参数确实是对的,只是可能没注意到几个细节导致命令没生效,我给你梳理清楚:
先检查配置文件是否合法
Netplan对YAML的语法要求特别严,缩进错了、键名大小写不对都会直接失败。先跑这个命令验证你的配置文件:
netplan generate -c /home/$USER/ProjectX/02-network-manager-all.yaml
如果有语法问题,它会直接告诉你哪里错了;没报错的话,就说明格式没问题,可以继续。
正确的应用命令
网络配置是系统级操作,必须用sudo执行。这里要注意:$USER在sudo环境下可能不会解析成你的普通用户名,所以最好换成实际的用户名(比如你的用户是shaggy,就写/home/shaggy/ProjectX/02-network-manager-all.yaml),或者用绝对路径避免变量坑。命令如下:
sudo netplan apply -c /home/你的实际用户名/ProjectX/02-network-manager-all.yaml
嫌输路径麻烦的话,也可以先切到root用户再执行,这样~就指向你的用户目录了:
sudo -i netplan apply -c ~/ProjectX/02-network-manager-all.yaml exit
配置不生效的补救办法
因为你用的是NetworkManager作为renderer,有时候netplan apply执行后,NetworkManager可能没及时同步配置。要是遇到这种情况,手动重启一下服务就行:
sudo systemctl restart NetworkManager
额外技巧:同时加载默认+自定义配置
如果你想保留/etc/netplan/01-network-manager-all.yaml里的默认配置,同时叠加你的自定义配置,Netplan支持同时指定多个配置文件:
sudo netplan apply -c /etc/netplan/01-network-manager-all.yaml -c /home/你的实际用户名/ProjectX/02-network-manager-all.yaml
这种情况下两个配置会合并,自定义配置里的冲突项会覆盖默认配置的内容。
备注:内容来源于stack exchange,提问作者shaggy
相关产品推荐
相关产品推荐

