如何调试systemd-networkd?

WoJ*_*WoJ 14 networking ubuntu systemd

我想用来systemd-networkd在 Ubuntu 上配置我的网络。

我添加了一个/etc/systemd/netwoek/host0.network文件

[Match]
Name=host0

[Network]
Address=10.5.1.1/24
Gateway=10.5.1.254
Run Code Online (Sandbox Code Playgroud)

配置我的host0

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: host0@if14428: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether d6:fa:2e:69:dd:30 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 169.254.229.86/16 brd 169.254.255.255 scope link host0
       valid_lft forever preferred_lft forever
    inet6 fe80::d4fa:2eff:fe69:dd30/64 scope link
       valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)

但是,如上所示,10.5.1.1尽管重新启动systemd-networkd、启用它、重新启动,它仍未配置。每次地址都来自 APIPA(好像没有 DHCP,那里没有配置)。

在其他地方没有配置网络(特别是在/etc/network/interfaces,这是空的)

Ano*_*non 26

https://coreos.com/os/docs/latest/network-config-with-networkd.html

手动启用调试

mkdir -p /etc/systemd/system/systemd-networkd.service.d/
Run Code Online (Sandbox Code Playgroud)

/etc/systemd/system/systemd-networkd.service.d/10-debug.conf使用以下内容创建 Drop-In :

[Service]
Environment=SYSTEMD_LOG_LEVEL=debug
Run Code Online (Sandbox Code Playgroud)

并重启systemd-networkd服务:

systemctl daemon-reload
systemctl restart systemd-networkd
journalctl -b -u systemd-networkd
Run Code Online (Sandbox Code Playgroud)

  • `systemctl edit systemd-networkd` 稍微快一点,因为它会自动创建所需的文件夹并且不需要 daemon-reload。 (7认同)