Docker容器无法被局域网其他IP访问,请求排查建议
Docker容器局域网访问问题排查建议
检查端口绑定的监听地址
执行netstat -tulpn | grep :80或ss -tulpn | grep :80,确认主机上80端口的监听地址是0.0.0.0:80而非127.0.0.1:80。如果是后者,说明端口仅绑定本地回环,局域网设备无法访问。开启IP转发功能
执行sysctl net.ipv4.ip_forward,若返回值为0,说明IP转发未启用:- 临时开启:
sudo sysctl -w net.ipv4.ip_forward=1 - 永久生效:编辑
/etc/sysctl.conf,添加net.ipv4.ip_forward=1,保存后执行sudo sysctl -p加载配置。
- 临时开启:
验证容器内部监听状态
执行docker exec web netstat -tulpn | grep :80,确认容器内Nginx服务监听的是0.0.0.0:80,而非仅容器内部的回环地址。检查Docker的iptables转发规则
执行sudo iptables -L -n | grep DOCKER,查看是否存在允许外部访问80端口的规则。若规则缺失,重启Docker服务自动重建规则:sudo systemctl restart docker。确认Docker网桥配置
执行ip addr show docker0,检查网桥的IP段配置正常;同时确保主机网卡与docker0网桥之间的转发无异常。
内容的提问来源于stack exchange,提问作者Joris Kempen
相关产品推荐
相关产品推荐

