一个奇怪的 80 端口问题.

133 天前
 YamatoRyou

最近迁移某些容器到新的 Docker 网络, 但随后发现一个问题, 具有下列特征:

  1. 只有 IPv4 的 80 端口不通 (但是群晖自身通过 SSH + curl 可以访问), IPv6 的可以;
  2. 443 端口在忽略证书错误的情况下, IPv4 & IPv6 都可以访问;
  3. 如果该容器的 80 端口被一个 Nginx 反向代理到一个非标准端口, 则可以正常通过 Nginx 的 IP + 非标准端口访问原 80 端口的内容;
  4. 如果用该网络的网关地址 (192.168.3.1) 访问群晖, 则 80 端口也不通 (但使用 http://192.168.0.100:80 访问群晖则没有问题).

网络细节:

  1. Docker 是群晖上的;
  2. 该网络的网关地址为 192.168.3.1, 如果带上 5000/5001 端口则访问它相当于访问群晖;
  3. 该网络在路由器上添加了一个静态路由条目 (仅 IPv4), 以便位于 192.168.0.0/24 上的机器访问, 如下图所示:
  4. 有独立的内网 IPv4 地址: 192.168.3.0/24;
  5. 有独立的公网 IPv6 地址: ????:????:????:????:c0a:890b::/96 (前 64 位不便展示, 后 32 位为随机分配);
  6. 该网络使用如下命令创建:
docker network create \
    -d macvlan \
    --subnet=192.168.3.0/24 \
    --gateway=192.168.3.1 \
    --ip-range=192.168.3.2/24 \
    --ipv6 \
    --subnet=<IPv6 子网前缀> \
    --gateway=<IPv6 网关, 默认为 ????:????:????:????:c0a:890b::1> \
    -o parent=ovs_eth0 \
    -o macvlanmode=bridge \
    <网络名称>

具体的访问故障我做了一个表格.

尚未发现影响日常使用, 但还是想尝试解决. 上述可能缺少关键信息.

793 次点击
所在节点    Docker
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1051747

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX