我乘坐德国铁路公司“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 5m
kind 网桥重新启动我的 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