随意更改家庭网络的 MTU 值会导致 Docker Bridge 挂掉

8 min

language: ja bn en es hi pt ru zh-cn zh-tw

你好,我是无能。

在家里环境的 Docker 环境中,不知为何无法访问服务器地址,感到很奇怪,后来发现是因为修改了路由器端的 MTU 值导致的。即使执行 curl 等命令返回 200 OK,但实际在浏览器中打开时,会像图片中那样中途停止并陷入无限加载状态,这让我有点困扰。

image.png

回想最近是否改动了什么,想起修改了路由器端的 MTU 值,将其全部改回 1500 后问题就解决了。

这是因为,虽然 WireGuard 会稍微降低 MTU,而且根据 Reddit 上的说法,在 Starlink 环境下最好将 MTU 值改为 1472 这种类似“玄学”的建议,我将其进一步调低了,结果这就是原因所在。在 compose.yml 中将网络设置为使用宿主机网络的 network: host 后问题消失了,所以我曾以为是 Docker Bridge 引起的问题,但其实只是与之相关。

$ ip link show | grep -E "br-|docker" 
5: br-13aad139d7db: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
6: br-2dc434eeb46d: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
7: br-45fa093100aa: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
8: br-46e6bb59b194: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
9: br-5267070e10e9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
10: br-645605dcd9b3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
11: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
12: br-2c8c384b95cd: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
13: br-5819ab3dabfb: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
14: br-632b4dfffca7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
15: br-9243101a1b11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
16: br-2612402b7376: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
17: br-91f1adfffccc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
18: br-ce4a3c384d09: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
19: br-f3c4b8d6015b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
20: veth7edbc95@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-9243101a1b11 state UP mode DEFAULT group default 
21: vethf27ed21@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-f3c4b8d6015b state UP mode DEFAULT group default 
23: veth64aeed9@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-f3c4b8d6015b state UP mode DEFAULT group default 
24: vethf09e0cb@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-13aad139d7db state UP mode DEFAULT group default 
25: vethe7f07de@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-632b4dfffca7 state UP mode DEFAULT group default 
26: veth83acc53@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-f3c4b8d6015b state UP mode DEFAULT group default 
27: veth817b530@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-45fa093100aa state UP mode DEFAULT group default 
28: vethd9335e3@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-91f1adfffccc state UP mode DEFAULT group default 
29: vethfe66e15@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-645605dcd9b3 state UP mode DEFAULT group default 
30: veth2efd851@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-632b4dfffca7 state UP mode DEFAULT group default
31: vethcbaaf36@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2612402b7376 state UP mode DEFAULT group default 32: veth0c7b9fb@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-5267070e10e9 state UP mode DEFAULT group default 33: vethe8e234e@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-645605dcd9b3 state UP mode DEFAULT group default 34: vethe96b854@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-ce4a3c384d09 state UP mode DEFAULT group default 35: vethdcf00db@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2c8c384b95cd state UP mode DEFAULT group default 37: veth299ef81@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-632b4dfffca7 state UP mode DEFAULT group default 79: vethb0a7d2f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-5819ab3dabfb state UP mode DEFAULT group default 80: vethe41cd9c@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-5819ab3dabfb state UP mode DEFAULT group default 81: vethb409b05@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-5819ab3dabfb state UP mode DEFAULT group default 85: veth4621e98@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-46e6bb59b194 state UP mode DEFAULT group default

确实,仔细一看,全部都变成了 MTU 1500

归根结底,我现在才意识到 Docker Bridge 既然是虚拟网卡,那当然也得同样修改 MTU 值才行,但当时完全没意识到这一点,彻底给忽略了。

因此,我把所有的 MTU 值都改回了 1500,再观察一段时间看看。

Related Posts