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

Ubuntu主机Nginx服务80端口外部无法访问,Docker容器可正常访问

解决Ubuntu主机切换Docker Nginx与本地Nginx后外部无法访问本地Nginx的问题
  • 清理Docker残留的iptables规则
    Docker启动容器时会自动修改iptables规则,停止容器后部分规则可能残留,拦截主机80端口的外部流量:

    1. 查看当前iptables规则:
      sudo iptables -L -n
    2. 若发现DOCKER相关链存在未清理的规则,重启Docker服务清除:
      sudo systemctl restart docker
    3. 也可手动清理Docker相关链:
      sudo iptables -F DOCKER
      sudo iptables -F DOCKER-USER
  • 确认本地Nginx的监听地址
    本地Nginx可能仅监听回环地址(127.0.0.1),导致外部无法访问:

    1. 打开Nginx配置文件(如/etc/nginx/sites-available/default或/etc/nginx/nginx.conf),检查listen指令,确保为:
      listen 80; 或 listen 0.0.0.0:80;
      避免设置为listen 127.0.0.1:80;
    2. 修改后重启Nginx服务:
      sudo service nginx restart
    3. 用ss命令验证监听状态:
      ss -tulpn | grep nginx
      输出应包含0.0.0.0:80或:::80(IPv6)
  • 检查UFW防火墙规则
    Ubuntu默认的UFW防火墙可能未允许外部访问80端口,或Docker修改了防火墙规则:

    1. 查看UFW当前规则:
      sudo ufw status
    2. 若80/tcp未被允许,添加规则:
      sudo ufw allow 80/tcp
    3. 重载UFW使规则生效:
      sudo ufw reload
  • 验证网络路由与端口状态
    在外部主机重新执行nmap扫描,确认80端口状态:
    nmap -p 80 <主机IP>
    若仍显示filtered,可临时关闭UFW测试:
    sudo ufw disable
    如果关闭后能访问,说明是UFW规则问题,重新调整规则后开启UFW即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:01:09