高级网络设置

网络桥接

内核配置

在内核配置中启用以下选项,如有必要则重新编译内核:

Networking support: Y
  Networking options:
    802.1d Ethernet Bridging: M or Y

设置网络桥接

本节将讨论如何使用 systemd-networkd 设置网络桥接。在以下示例中,eth0 表示被桥接的外部接口,而 br0 表示桥接接口。

要创建桥接接口,请以 root 用户身份运行以下命令来创建配置文件:

cat > /etc/systemd/network/50-br0.netdev << EOF
[NetDev]
Name=br0
Kind=bridge
EOF

要将网络接口分配给桥接,请以 root 用户身份运行以下命令来创建配置文件:

cat > /etc/systemd/network/51-eth0.network << EOF
[Match]
Name=eth0

[Network]
Bridge=br0
EOF

对需要桥接的其他任何接口重复此过程。请注意,务必不要让任何程序为被桥接的接口分配地址。如果您正在使用 NetworkManager-1.56.1, 请确保将其配置为忽略被桥接的接口,以及桥接接口本身。

如果您所在网络使用 DHCP 分配 IP 地址,请以 root 用户身份运行以下命令来创建配置文件:

cat > /etc/systemd/network/60-br0.network << EOF
[Match]
Name=br0

[Network]
DHCP=yes
EOF

或者,如果使用静态 IP 设置,请以 root 用户身份运行以下命令来创建配置文件:

cat > /etc/systemd/network/60-br0.network << EOF
[Match]
Name=br0

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
EOF

如果您希望与连接到桥接的其他系统通信,例如 qemu 实例,则还需要启用 IP 转发。同样以 root 用户身份执行:

echo 'IPForward=ipv4' >> /etc/systemd/network/60-br0.network

要启用桥接接口,只需以 root 用户身份运行以下命令重启 systemd-networkd 守护进程:

systemctl restart systemd-networkd