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

跨对等子网无法访问Docker Swarm服务端口问题求助

Docker Swarm Portainer 8080端口跨子网访问超时问题

环境概况

  • 3节点Docker Swarm测试集群,宿主机子网10.100.24.0/24
  • 跳板服务器位于10.0.0.0/24,已与集群子网完成VNET对等连接

问题表现

Portainer服务通过Swarm暴露*:8080->9000/tcp端口,但从跳板服务器访问Swarm节点8080端口超时;访问22(SSH)、80端口均正常连通。

关键输出

Swarm节点服务列表:

docker service ls
ID             NAME                  MODE         REPLICAS   IMAGE                           PORTS
q30eer0sshyd   portainer_agent       global       3/3        portainer/agent:2.16.2          
qxrndq63jklh   portainer_portainer   replicated   1/1        portainer/portainer-ce:2.16.2   *:8080->9000/tcp

跳板服务器nc测试结果:

nc -v 10.100.24.24 22
Connection to 10.100.24.24 22 port [tcp/ssh] succeeded!

nc -v 10.100.24.22 80
Connection to 10.100.24.22 80 port [tcp/http] succeeded!

nc -v 10.100.24.24 8080   (连接超时)

排查步骤

  1. 检查节点防火墙/安全组
    确认Swarm节点的iptables、ufw或云平台安全组是否放行10.0.0.0/24子网对8080端口的入站请求。Swarm的ingress网络依赖iptables做端口转发,需确保相关规则未被拦截。

  2. 验证Swarm Ingress网络状态
    执行docker network inspect ingress查看ingress网络配置,确认其使用的子网未与VNET对等范围冲突,且网络内所有节点状态正常。

  3. 检查Portainer服务运行状态
    通过docker service logs qxrndq63jklh查看Portainer服务日志,确认服务是否正常启动、端口绑定是否无异常;在节点本地执行curl localhost:8080验证服务本身是否可访问。

  4. 测试集群内部连通性
    从集群内其他节点访问目标节点的8080端口,若内部访问正常,则问题大概率出在VNET对等的安全规则上;若内部也超时,需排查Swarm服务发布配置或节点网络问题。

  5. 确认VNET对等规则
    检查VNET对等连接的双向安全规则,确保10.0.0.0/24到10.100.24.0/24的8080端口流量被允许,部分云平台默认不会自动放行所有端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:30:19