在群晖上布了个自己写的 docker 自动拉配置启动 clash ,部署成功,测试也通
然后突然发现神奇情况,在群晖内的 docker container 内无法访问一部分节点地址,但是同内网的电脑上可以,同内网的电脑上的 docker container 内可以
又起了 docker openssh-server 直接连上测试,内网电脑上 docker 内一切正常,但是群晖 docker 内,一部分地址可以 ping 通但是 telnet 会等待到超时
docker container 的网络都是 bridge
搜了一下最多有说 container 内无法访问外网可能是防火墙问题,但是关掉防火墙或者给防火墙添加允许 docker container ip 访问所有端口也都不行
请问群晖的 docker 还有什么神奇操作我没注意到的吗?
1
leo220 9 天前 via iPhone ![]() 群晖上 Docker 在防火墙外侧, 比如你好从 docker 访问外网节点 443 ,你就要在防火墙上打开内网 443 端口,因为报文要先从 docker 穿越防火墙到 host 再路由出去外网
|
2
kaRika 9 天前 via Android
你得容器是用的 macvlan 吗? 这个东西就是没法和主机通信的
|
3
darklinden OP @leo220 #1 没看懂,是说群晖防火墙的问题吗?
测试套件是群晖的老 Docker 和新 Container Manager ,都是同样问题 比如有 x.x.x.x:12345 和 y.y.y.y:12345 两个节点,内网电脑和 docker container 内都可以 ping 通也可以 telnet 但是群晖的 docker container 内,两个节点都可以 ping 通却一个可以 telnet 连接,另一个 telnet 连接时卡到超时,无论是否开防火墙,防火墙是否放行所有端口... |
4
darklinden OP @kaRika #2 没有使用 macvlan mode ,仅仅是开个 http 代理
但是代理去请求节点的时候,ping 都没问题,tcp 连接部分可用部分不可用。而在同网段的电脑和电脑内 docker container 内都可以 tcp 连上 |