systemd-networkd 的 /etc/systemd/network/*.network 能不能一个文件配置多块网卡?不能

发布于:2025-03-23 ⋅ 阅读:(20) ⋅ 点赞:(0)

systemd-networkd/etc/systemd/network/*.network 能不能一个文件配置多块网卡?不能

查看官方文档可以用 man systemd.network命令, 或访问: https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html

systemd-networkd 的配置中,一个 .network 文件不能直接为多块网卡配置不同的参数,但可以通过以下方式实现单文件匹配多块网卡并应用相同配置


     1. 通过 [Match] 节匹配多个网卡

  • .network 文件的 [Match] 节中,使用 通配符多条件组合,使同一配置文件适配多个网卡。

  • 示例

    [Match]
    # 匹配接口名以 "en" 开头的所有网卡(如 enp0s1、enp5s0)
    Name=en*
    
    # 或明确指定多个接口名(空格分隔)
    Name=enp0s1 enp0s2
    
    # 或匹配多个 MAC 地址
    MACAddress=11:22:33:44:55:66 aa:bb:cc:dd:ee:ff
    
  • 逻辑关系

    • 同一条件(如 Name=)中的多个值是“逻辑或”(匹配任意一个)。
    • 不同条件(如 Name= + MACAddress=)是“逻辑与”(需同时满足)。

     2. 限制与注意事项

  • 相同配置:匹配到的所有网卡将应用完全相同的配置(如相同的 IP、路由、DHCP 设置等)。
  • 不同配置需分文件:若不同网卡需要不同配置(如不同 IP 地址),必须为每个网卡创建单独的 .network 文件。
  • 通配符使用
    • * 匹配任意字符(如 en* 匹配所有以 en 开头的接口)。
    • ? 匹配单个字符(如 enp0s? 匹配 enp0s1enp0s2 等)。

     3. 示例:单文件配置多网卡

# /etc/systemd/network/multi-nics.network
[Match]
Name=enp0s1 enp0s2  # 匹配 enp0s1 和 enp0s2

[Network]
DHCP=yes            # 同时为两个网卡启用 DHCP
DNS=8.8.8.8

     4. 验证配置

# 重启 systemd-networkd 服务
sudo systemctl restart systemd-networkd

# 查看网卡状态及应用的配置
networkctl status enp0s1 enp0s2

     5. 适用场景

  • 多块网卡需要完全相同的网络配置(如均启用 DHCP)。
  • 通过通配符批量管理相同类型的接口(如所有 USB 网卡 Name=usb*)。

     总结:

  • 可以在一个 .network 文件中匹配多块网卡,但要求它们的配置完全一致
  • 若需差异化配置,必须为每个网卡创建单独的 .network 文件,并通过 [Match] 节精确指定目标接口。










/etc/systemd/network/*.network文件里,一个文件不能直接配置多块网卡。systemd-networkd中的.network文件是用来为单块网络接口配置网络设置的。

.network文件主要是借助[Match]部分来指定适用的网络接口,而且通常一个.network文件仅指定一个网络接口。比如:

[Match]
Name=enp0s3

[Network]
DHCP=yes

在这个例子里,[Match]部分的Name=enp0s3明确指出此配置仅适用于名为enp0s3的网络接口。

要是你想配置多块网卡,就需要为每块网卡分别创建一个.network文件。例如,若你有两块网卡enp0s3enp0s8,可以创建两个文件:

     /etc/systemd/network/enp0s3.network

[Match]
Name=enp0s3

[Network]
DHCP=yes

     /etc/systemd/network/enp0s8.network

[Match]
Name=enp0s8

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8

如此一来,systemd-networkd就能依据不同的.network文件对各块网卡进行配置了。在配置完成之后,要重新加载systemd-networkd服务,让新的配置生效:

sudo systemctl restart systemd-networkd

通过上述操作,你就可以为每块网卡单独配置网络设置了。