WLAN (wifionice) @ deutsche Bahn 无法在安装了 docker 的情况下工作

WLAN (wifionice) @ deutsche Bahn 无法在安装了 docker 的情况下工作

我乘坐德国铁路公司“deutsche Bahn”的火车旅行,想使用他们提供的车载无线局域网。我连接到他们的无线局域网,并想在浏览器中访问网站,但重定向到他们的强制门户不起作用。

我也连接了我的手机,一切正常,所以我认为他们的无线局域网没有问题。

我有一台 HP Elitebook 840G5,运行 Manjaro Linux Gnome 版本并安装了 docker。

我想知道如何找出问题所在以及如何解决这个问题?

经过一番研究后,我自己找到了解决方案,但我想分享我的解决方案以帮助其他遇到同样问题的人。

答案1

出现此问题的原因是 ICE 列车的 wlan 与我的机器上的 docker 使用相同的子网:172.18.x.x

这也有概述这里(不幸的是只有德语)

我解决了这个问题,为 docker 定义了一个新的默认 IP 范围,创建/etc/docker/daemon.json

{
    "default-address-pools":
    [
        {"base":"172.19.0.0/16","size":24}
    ]
}

之后我重新启动了 docker 守护进程:sudo systemctl restart docker.service

之后我能够访问互联网(通过正确重定向到强制门户)。

答案2

像@Mutzmann 建议的那样更改配置没有任何效果,我想是因为docker创建的网桥已经存在

列出所有网桥:

$ ip addr

受影响的 IP 范围; 172.16.255.255, 172.17.255.255, 172.18.255.255- 后者为我做到了。

使用with名称删除占用相同ip-range(主要是172.18.255.255)的网络ìp addr

$ sudo ip link delete <name>

答案3

除了接受的daemon.json答案之外,我还必须运行

docker network prune

我相信这与手动删除网络的效果相同,但可能更安全。

答案4

Manjaro 在这里的 Thinkpad P1 Gen 6 用户上:看来今天 Docker 不再是一个真正的问题了 - 但 Powersource 的回答让我走上了正轨:我有本地类集群跑步。而且这种网络阻止了我对 wifionice @ DB 火车(和其他 Wifi)的访问。 Aip route show已经使问题可见:

$ ip route show
default via 172.18.0.1 dev wlp0s20f3 proto dhcp src 172.18.190.49 metric 20600 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-43d8dc2b2c68 proto kernel scope link src 172.18.0.1 
172.18.0.0/16 dev wlp0s20f3 proto kernel scope link src 172.18.190.49 metric 600 

但我无法识别哪个程序创建了br-43d8dc2b2c68. Adocker network ls带我找到了源头。这是我当地的同类集群:

$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
23ed3caa264b   bridge    bridge    local
1ee621aa8c0e   host      host      local
43d8dc2b2c68   kind      bridge    local
49f62ac6dea5   none      null      local

检查名称几乎相同的网络docker inspect揭示了问题:

docker inspect 43d8dc2b2c68
[
    {
        "Name": "kind",
        "Id": "43d8dc2b2c68fa3744c378f6b3b5607a03f8e04e50a497984590bad2fb9b1b30",
        "Created": "2024-03-14T13:35:51.518082136+01:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": true,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                },
                {
                    "Subnet": "fc00:f853:ccd:e793::/64",
                    "Gateway": "fc00:f853:ccd:e793::1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

删除同类集群并修剪剩余的网络为我解决了这个问题。显示种类簇:

$ kind get clusters
kind

删除种类簇:

$ kind delete clusters kind
Deleted nodes: ["kind-control-plane"]
Deleted clusters: ["kind"]

现在修剪未使用的 Docker 网络:

$ docker network prune
WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue? [y/N] y
Deleted Networks:
kind

通过kind create cluster --image kindest/node:v1.29.2 --wait 5mkind 网桥重新启动我的 kind 集群后又回来了 - 但具有 wifionice 兼容的 IP 范围172.19.0.0/16

$ docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
23ed3caa264b   bridge    bridge    local
1ee621aa8c0e   host      host      local
17ace3590fae   kind      bridge    local
49f62ac6dea5   none      null      local

$ ip route
default via 172.18.0.1 dev wlp0s20f3 proto dhcp src 172.18.190.49 metric 600 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev wlp0s20f3 proto kernel scope link src 172.18.190.49 metric 600 
172.19.0.0/16 dev br-17ace3590fae proto kernel scope link src 172.19.0.1 

相关内容