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

如何让Win10子系统Ubuntu上的Django+Vue应用通过公网IP访问

公网IP无法访问WSL部署应用的排查方案

按以下顺序逐步排查,先解决局域网访问问题,再推进公网访问验证:

1. 先验证局域网访问是否正常

用同一局域网内的其他设备访问 http://192.168.0.99,确认能否打开你的Django应用。如果局域网内都无法访问,优先解决本地网络链路问题。

2. WSL2 网络端口转发配置

WSL2默认采用NAT模式,内部IP与Windows主机局域网IP独立,需确保Windows主机端口能转发到WSL实例:

  • 在Ubuntu子系统中执行 ip addr show eth0,记下inet字段对应的WSL内部IP(如172.x.x.x)。
  • 以管理员身份打开Windows命令提示符,执行以下命令添加端口转发规则:
    netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=80 connectaddress=你的WSL内部IP connectport=80
    netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=443 connectaddress=你的WSL内部IP connectport=443
    
  • 验证规则是否生效:netsh interface portproxy show all,确认存在对应80/443端口的转发条目。

3. Windows 防火墙放行端口

仅开放Ubuntu的ufw不足以让外部请求穿透Windows主机防火墙:

  • 打开「Windows Defender防火墙 → 高级设置 → 入站规则」,新建规则:
    • 规则类型选「端口」,下一步勾选TCP,指定本地端口80,443;
    • 选择「允许连接」,勾选「域、专用、公网」;
    • 命名规则后保存。

4. Nginx 配置与运行状态检查

  • 验证Nginx配置语法:sudo nginx -t,确保无报错。
  • 确认站点配置已启用:执行sudo ln -s /etc/nginx/sites-available/SAFE_ERP /etc/nginx/sites-enabled/(若未执行过),然后重启Nginx:sudo systemctl restart nginx。
  • 检查Nginx监听端口:sudo ss -tulpn | grep nginx,确认存在LISTEN状态的0.0.0.0:80或103.122.201.91:80。
  • 在Ubuntu内部访问http://103.122.201.91,确认Nginx能正确路由到gunicorn服务。

5. Gunicorn 服务与权限检查

  • 检查gunicorn服务状态:
    sudo systemctl status gunicorn.socket
    sudo systemctl status gunicorn.service
    
    确保两个服务均处于active (running)状态。
  • 检查socket文件权限:ls -l /run/gunicorn.sock,确保所属用户为bitrun、组为www-data,权限至少为rw-rw----(660)。若权限不符,在gunicorn.service的[Service]段添加UMask=0002,然后执行:
    sudo systemctl daemon-reload && sudo systemctl restart gunicorn.service
    

6. 公网IP 真实性与端口开放验证

  • 确认公网IP一致性:执行curl ifconfig.me,对比返回的IP与你Nginx配置中的103.122.201.91是否一致。若不一致,说明你的网络处于CGNAT(运营商级NAT)环境,需联系ISP申请公网IP,或使用内网穿透工具(如frp、ngrok)。
  • 验证端口开放状态:使用在线端口检测工具输入80端口,确认端口是否对外可见。若显示关闭,检查路由器端口转发规则或防火墙配置。

7. 路由器端口转发规则确认

  • 确保路由器端口转发规则中,Internal Port为80,IP Address为Windows主机局域网IP192.168.0.99,Protocol为TCP(或All),且规则处于启用状态。
  • 部分路由器需开启「虚拟服务器」或「DMZ主机」功能,确认相关设置已启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:35:34