在 ArchLinux 中创建网桥可停止互联网连接

在 ArchLinux 中创建网桥可停止互联网连接

我尝试在 ArchLinux 中添加一个新的桥接接口。我遵循了来自 wiki 的说明但是在将网桥分配给真实接口后,我无法再从外部连接到其他 IP(例如 ping 8.8.8.8 这样的 IP)。

我做了什么:

sudo ip link add name br0 type bridge

# should be up anyway but just to follow the wiki page:
sudo ip link set enp5s0 up

sudo ip link set enp5s0 master br0

执行完最后一个命令后,我从 ping 命令中得到“目标主机不可达”的信息。

以下是输出ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: enp8s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 2c:fd:a1:59:70:78 brd ff:ff:ff:ff:ff:ff
3: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether 2c:fd:a1:5a:91:45 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.42/24 brd 192.168.178.255 scope global noprefixroute enp5s0
       valid_lft forever preferred_lft forever
    inet6 2a0c:d242:3503:2400:8a5e:e525:faea:791e/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 6025sec preferred_lft 2425sec
    inet6 fe80::e5dd:e996:1b86:7dd/64 scope link 
       valid_lft forever preferred_lft forever
4: wlp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 4000
    link/ether dc:ef:ca:f0:b2:5f brd ff:ff:ff:ff:ff:ff
5: wlp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether e0:4f:43:70:90:f8 brd ff:ff:ff:ff:ff:ff
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 66:6c:16:c8:ef:88 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
7: br-7fc0362fd380: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:d6:b1:8b:a2 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global br-7fc0362fd380
       valid_lft forever preferred_lft forever
12: br0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 8a:a1:41:27:82:4d brd ff:ff:ff:ff:ff:ff

这是输出ip route

default via 192.168.178.1 dev enp5s0 proto dhcp src 192.168.178.42 metric 203 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-7fc0362fd380 proto kernel scope link src 172.18.0.1 linkdown 
192.168.178.0/24 dev enp5s0 proto dhcp scope link src 192.168.178.42 metric 203 

如您所见,真正的接口是enp5s0,并且还有正在运行的 docker,它有自己的桥接器。我还有一个 WIFI 接口,但我没有使用它。为了进行测试,我停止了该dhcpcd服务。在运行时,它还br0从我的路由器分配了一个 IP,并添加了正确的路由。

bridge-utils我也尝试了和的方法,netctl但遇到了同样的问题。

有什么建议可以让桥接器在不丢失互联网连接的情况下运行?

答案1

网桥也具有链接状态,需要将其设置为UP。

sudo ip link set br0 up

IP 和路由应在网桥上配置,而不是在以太网接口上配置。两者都需要处于启动状态。

相关内容