跨对等子网无法访问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 (连接超时)
排查步骤
检查节点防火墙/安全组
确认Swarm节点的iptables、ufw或云平台安全组是否放行10.0.0.0/24子网对8080端口的入站请求。Swarm的ingress网络依赖iptables做端口转发,需确保相关规则未被拦截。验证Swarm Ingress网络状态
执行docker network inspect ingress查看ingress网络配置,确认其使用的子网未与VNET对等范围冲突,且网络内所有节点状态正常。检查Portainer服务运行状态
通过docker service logs qxrndq63jklh查看Portainer服务日志,确认服务是否正常启动、端口绑定是否无异常;在节点本地执行curl localhost:8080验证服务本身是否可访问。测试集群内部连通性
从集群内其他节点访问目标节点的8080端口,若内部访问正常,则问题大概率出在VNET对等的安全规则上;若内部也超时,需排查Swarm服务发布配置或节点网络问题。确认VNET对等规则
检查VNET对等连接的双向安全规则,确保10.0.0.0/24到10.100.24.0/24的8080端口流量被允许,部分云平台默认不会自动放行所有端口。
内容的提问来源于stack exchange,提问作者user1852104
相关产品推荐
相关产品推荐

