You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker网络内其他容器无法访问容器的转发端口

问题解决:Docker容器间无法访问SSH转发端口

问题根源

你当前的SSH隧道命令绑定的是127.0.0.1:3306,这个地址仅监听容器A的回环接口,只接受来自容器A内部的连接请求。同一Docker网络内的容器B是通过容器A的内网IP(如172.17.0.5)发起连接,属于外部请求,因此被拒绝。

解决方案

修改SSH隧道命令,将监听地址改为0.0.0.0,让端口接受来自所有网络接口的连接:

ssh -4 -NL 0.0.0.0:3306:127.0.0.1:3306 "${SSH_USER}@${MONOLITH_IP}"

验证修改效果

  1. 在容器A内执行netstat -lnt,确认监听地址变为0.0.0.0:3306:
netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State   
tcp        0      0 0.0.0.0:3306          0.0.0.0:*               LISTEN   
  1. 在容器B内执行telnet A 3306,此时应该能正常建立连接。

额外安全建议

若仅需Docker网络内的容器访问该转发端口,可将监听地址指定为容器A的内网IP(如172.17.0.5),而非0.0.0.0,进一步缩小访问范围,降低暴露风险:

ssh -4 -NL 172.17.0.5:3306:127.0.0.1:3306 "${SSH_USER}@${MONOLITH_IP}"

内容的提问来源于stack exchange,提问作者Illya Skidanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:25:07