---
背景:如图,B 机器是 ArchLinux ,systemd-networkd 未开启 IPForward 。
1. 图中黑色的 ip 地址为校内局域网,A/B 处于 10.112.0.0/16 子网内,而 C 在另一个子网
2. 橙色地址为 tailscale 创建的局域网,B 和 C 都在 tailscale 创建的网络中
此时在 B 机器上启动一个 docker 服务,映射到 8080 端口,A 机器和 B 机器都可以正常通过 http://10.112.91.240:8080 访问;但是在机器 C 上则不行,通过 tailscale 的 ip 可以正常访问。
查阅文档后发现是 ArchLinux 的 systemd-networkd 默认没开 IPForward ,开启后一切正常。
---
问题:想询问下,为什么开启 IPForward 后就正常了?我理解是因为网络请求没有被宿主机转发到 docker0 上,但是这样解释不了相同网段的机器可以正常访问。查了点 docker 的资料感觉也云里雾里,求求各位指个路。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1006389
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.