请教一个 Docker/Traefik 的网路问题

6 天前
 liuliuliuliu
我当前有服务 A 和 B ,以及 Traefik ,他们三个都跑在同一台机器的 docker 里。
A 和 B 都通过 Traefik 进行了反代以及绑定了域名 A.example.comB.example.com 并进行了公网解析
现在的问题是:
容器 A 内无法通过域名访问到 B ,curl -v B.example.com 时返回如下:
```
* Host B.example.com:443 was resolved.
* IPv6: (none)
* IPv4: (服务器的公网 IP)
* Trying (服务器的公网 IP):443...
* connect to (服务器的公网 IP) port 443 from 172.22.0.6 port 53088 failed: Operation timed out
* Failed to connect to B.example.com port 443 after 130394 ms: Could not connect to server
* closing connection #0
curl: (28) Failed to connect to B.example.com port 443 after 130394 ms: Could not connect to server
```
宿主机执行 curl -v B.example.com 是没问题的。

我没太想明白为什么容器内无法通过公网域名访问?

问了 cursor 他也没搞明白……
538 次点击
所在节点    Docker
6 条回复
fitme
5 天前
感觉问题不够清晰,细节可以多描述点。有个问题如果只是 A 访问 B 走 docker dns 即可不需要转一圈再回来
momocraft
5 天前
容器 A 内 traceroute 公网 IP 的结果是怎样的?
liuliuliuliu
5 天前
@momocraft

traceroute to 公网 IP (公网 IP), 30 hops max, 46 byte packets
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *

奇怪为什么不通
julyclyde
4 天前
A 和 B 的域名对应 IP 相同吗?
liuliuliuliu
4 天前
@julyclyde 相同的
julyclyde
3 天前
@liuliuliuliu 哦,你的意思是,俩域名相同的 IP ,一个能访问 443 端口,另一个域名不能访问 443 端口?
我只能说:我主观选择不相信你的描述了

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

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

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

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

© 2021 V2EX