Debian 12 使用 systemd-networkd 配置网络
检查
使用 systemctl status systemd-networkd
和 networkctl status
命令可以检查当前是否由 systemd-networkd 管理网络。
下面的实例中,可以发现 systemd-networkd 在管理网络。
root@Debian:~# systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; pre>
Active: active (running) since Fri 2025-05-02 09:36:05 UTC; 12min ago
root@Debian:~# systemctl status systemd-networkd
● systemd-networkd.service - Network Configuration
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled; pre>
Active: active (running) since Fri 2025-05-02 09:36:05 UTC; 13min ago
TriggeredBy: ● systemd-networkd.socket
Docs: man:systemd-networkd.service(8)
man:org.freedesktop.network1(5)
Main PID: 649 (systemd-network)
Status: "Processing requests..."
Tasks: 1 (limit: 9484)
Memory: 1.5M
CPU: 214ms
CGroup: /system.slice/systemd-networkd.service
└─649 /lib/systemd/systemd-networkd
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Gained carrier
May 02 09:36:05 Debian systemd-networkd[649]: lo: Link UP
May 02 09:36:05 Debian systemd-networkd[649]: lo: Gained carrier
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Gained IPv6LL
May 02 09:36:05 Debian systemd-networkd[649]: Enumeration completed
May 02 09:36:05 Debian systemd[1]: Started systemd-networkd.service - Network C>
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Configuring with /etc/sy>
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Lost carrier
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Gained carrier
root@Debian:~# networkctl status
● State: routable
Online state: online
Address: 192.168.6.202 on enp6s16
2409:8a38:4c20:50c1::e8e on enp6s16
2409:8a38:4c20:50c1:f263:f9ff:fe17:92a2 on enp6s16
fe80::f263:f9ff:fe17:92a2 on enp6s16
Gateway: 192.168.6.254 on enp6s16
fe80::f263:f9ff:fe17:92a1 on enp6s16
May 02 09:36:05 Debian systemd-networkd[649]: lo: Gained carrier
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Gained IPv6LL
May 02 09:36:05 Debian systemd-networkd[649]: Enumeration completed
May 02 09:36:05 Debian systemd[1]: Started systemd-networkd.service - Network C>
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Configuring with /etc/sy>
May 02 09:36:05 Debian systemd[1]: Starting systemd-networkd-wait-online.servic>
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Lost carrier
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: Gained carrier
May 02 09:36:05 Debian systemd-networkd[649]: enp6s16: DHCPv6 address 2409:8a38>
May 02 09:36:07 Debian systemd[1]: Finished systemd-networkd-wait-online.servic>
配置
systemd-networkd 的网络配置文件位于 /etc/systemd/network
目录。
使用以下两个简单的示例,可以快速配置网络。
DHCP
创建文件 /etc/systemd/network/dhcp.network
[Match]
Name=en*
[Network]
DHCP=yes
静态 IPv4
创建文件 /etc/systemd/network/static.network
[Match]
Name=en*
[Network]
Address=192.168.0.15/24
Gateway=192.168.0.1
设置 MTU
在网络配置文件中添加一节
[Link]
MTUBytes=9000
其他说明
文件名以 .network
结尾,前半部分主要用于区分不同的配置,可以自行设置。
Match 中的 Name 用于匹配网卡名称,使用 *
可以通配。
重启服务
修改了配置文件后,需要重启网络服务。
systemctl restart systemd-networkd
参考
https://www.debian.org/doc/manuals/debian-reference/ch05.zh-cn.html#_the_modern_network_configuration_for_cloud_with_network_manager
https://bbs.archlinux.org/viewtopic.php?id=237885