Docker Compose部署的21025端口无法外部访问其余端口正常
问题解决方案
按优先级从高到低执行以下排查操作即可解决问题:
- 首先确认screeps服务运行状态
查看screeps容器日志,确认服务无配置错误、已完全启动:docker logs $(docker ps -qf "name=screeps") - 检查容器内部端口绑定配置
进入容器查看端口监听地址,确认服务没有仅绑定容器本地回环地址:
如果输出显示监听地址为docker exec -it $(docker ps -qf "name=screeps") ss -tunlp | grep 21025127.0.0.1:21025而非0.0.0.0:21025,修改你挂载的./config.yml配置文件,将screeps服务的监听地址改为0.0.0.0后重启容器即可。 - 检查服务访问控制规则
查看./config.yml中是否存在IP白名单、来源访问限制类配置,移除仅允许本地访问的限制,或者将你的局域网网段(如192.168.10.0/24)加入允许列表。 - 修复Docker用户空间代理异常
如果上述配置均正常,大概率是Docker的userland-proxy转发故障,关闭该功能即可:- 编辑
/etc/docker/daemon.json(不存在则新建),添加以下配置:
{ "userland-proxy": false }- 重启Docker服务并重载compose配置:
systemctl restart docker docker-compose down && docker-compose up -d - 编辑
- 验证连通性
从局域网其他主机执行端口测试,确认可以正常连接:telnet 192.168.10.20 21025
内容的提问来源于stack exchange,提问作者Gathris
相关产品推荐
相关产品推荐

