未找到结果
我们无法找到任何使用该词的内容,请尝试搜索其他内容。
networkctl 参考 networkctl — Query the status of network links networkctl 可以用于检查网络连线的状态是否被 systemd-networkd 看到。参考 systemd-networkd.service, systemd-net
参考 networkctl — Query the status of network links networkctl
可以用于检查网络连线的状态是否被 systemd-networkd
看到。参考 systemd-networkd.service, systemd-networkd — Network manager :
我尝试先创建空的 /etc/netplan
目录,然后执行:
显示:
netplan: netplan version 2.2 starting at Tue Oct 13 22:54:14 2020 netplan: database directory is /var/lib/plan/netplan.dir netplan: user "netplan" is uid 63434 gid 63434 netplan: switching from user <root> to <uid 63434 gid 63434> netplan: running with uid=63434 gid=63434 euid=63434 egid=63434 netplan: reading access list file /var/lib/plan/netplan.dir/.netplan-acl netplan: netplan/tcp not found in /etc/services, using ports 2983 and 5444
上述日志显示在 /etc/init.d/netplan
中没有激活netplan服务,所以实际该服务状态是 active(exited)
,也就是退出状态。
编辑 /etc/init.d/netplan
文件,将:
# Set ENABLED=0 to disable, ENABLED=1 to enable. ENABLED=0
修改成:
# Set ENABLED=0 to disable, ENABLED=1 to enable. ENABLED=1
然后再次执行启动 netplan
此时提示:
Warning: The unit file, source configuration file or drop-ins of netplan.service changed on disk. Run 'systemctl daemon-reload' to reload units.
所以按照提示执行:
systemctl daemon-reload systemctl restart netplan
启动之后再次检查 systemctl status netplan
则可以看到状态:
● netplan.service - LSB: Netplan calendar service. Loaded: loaded (/etc/init.d/netplan; generated) Active: active (running) since Tue 2020-10-13 23:07:44 CST; 1min 8s ago Docs: man:systemd-sysv-generator(8) Process: 8386 ExecStop=/etc/init.d/netplan stop (code=exited, status=0/SUCCESS) Process: 8430 ExecStart=/etc/init.d/netplan start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 4174) CGroup: /system.slice/netplan.service └─8464 /usr/sbin/netplan 10月 13 23:07:43 jetson systemd[1]: Starting LSB: Netplan calendar service.... 10月 13 23:07:44 jetson systemd[1]: Started LSB: Netplan calendar service..
根据 netplan-generate – generate backend configuration from netplan YAML files 说明:
netplan generate
是根据 netplan 的 yaml配置来调用networkd后端或者NetworkManager后端来生成对应后端服务的配置文件
通常不需要独立运行 netplan generate
,只需要运行 netplan apply
就可以,因为 netplan apply
会自动调用 netplan generate
,而 netplan generate
只是为了验证配置生成
netplan
会一次从以下3个位置读取配置文件,并且按照优先级,仅有一个位置的配置文件生效:
/run/netplan
优先级最高
/etc/netplan
次优先级
/lib/netplan
最低优先级
参考 netplan – Troubleshooting networking issues 当出现配置不能生成,需要将后端服务器启动成debug模式。例如,我使用 systemd-netowrkd
则需要启用 DebuggingSystemd
sudo systemctl stop systemd-networkd SYSTEMD_LOG_LEVEL=debug /lib/systemd/systemd-networkd
但是我发现我执行 netplan generate
和 netplan apply
都没有任何影响,似乎就没有连接上。
虽然手工可以创建一个 /run/systemd/network/10-netplan-eth0.network
填写内容:
[Match] Name=eth0 [Network] LinkLocalAddressing=ipv6 Address=192.168.6.10/24 DNS=202.96.209.133
配置创建后,执行 networkctl
就可以看到该eth0网卡是 configured
,似乎状态正常了。但是重启主机则网卡又是 unmanaged
并且 /run/systemd/network
目录又空了。
发现一个蹊跷,执行 netplan -d -v generate
显示输出:
netplan: netplan version 2.2 starting at Wed Oct 14 09:46:03 2020 netplan: database directory is /var/lib/plan/netplan.dir ...
为何显示数据库目录是 /var/lib/plan/netplan.dir
?
我这个版本的netplan默认去读取了空白的 /var/lib/plan/netplan.dir
,这个和官方文档不同。我尝试移除这个目录:
cd /var/lib mv plan plan.bak
再次启动 netplan -d -v generate
显示:
netplan: netplan version 2.2 starting at Wed Oct 14 09:49:16 2020 netplan: database directory is /var/lib/plan/netplan.dir netplan: user "netplan" is uid 63434 gid 63434 netplan: switching from user <root> to <uid 63434 gid 63434> netplan: running with uid=63434 gid=63434 euid=63434 egid=63434 netplan: no read/write access to /var/lib/plan/netplan.dir/.: No such file or directory
这个版本的netplan可能是早期版本( 实践是在 Ubuntu 18 上,安装了 netplan
而没有安装更完整的 netplan.io
根据网友impl1874提供信息( use netplan.io please #10 ),需要通过完整安装 netplan.io
来修复这个问题。
我在上文中补充说明,建议直接安装 netplan.io
),只能固定读取 /var/lib/plan/netplan.dir/
,不使用 /etc/netplan
目录,导致我配置无效。我还发现在 /var/lib/plan/netplan.dir/
有一个隐含文件:
.netplan-acl -> /etc/plan/netplan-acl
警告
上述排查是我早期的记录,当时安装的操作系统是 Ubuntu 18 LTS,安装的 netplan
存在bug,请完整安装 netplan.io
来避免这个问题。
最新的 Ubuntu 20.04 LTS 默认即使用 netplan.io
没有这个问题。