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

如何让WSL中运行的Flask应用允许公网/外部设备访问?

WSL中Flask应用外部无法访问的临时解决办法

以下是针对WSL2环境下Flask应用无法被外部设备/公网访问的临时解决方案(适合短期协作场景):

  • 确认WSL内部IP
    在WSL终端执行ip addr show eth0,找到inet字段后的IP地址(格式类似172.x.x.x),记录该地址备用。

  • 配置Windows端口转发
    以管理员身份打开PowerShell,执行以下命令(替换WSL_IP为刚才查到的WSL内部IP,5000为Flask使用的端口):

    netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=5000 connectaddress=WSL_IP connectport=5000
    

    可通过netsh interface portproxy show all验证转发规则是否生效。

  • 开放Windows防火墙端口
    两种操作方式任选:

    1. 图形化操作:打开Windows Defender防火墙→高级设置→添加入站规则,选择「端口」类型,指定TCP端口(如5000),允许连接,命名规则后完成配置。
    2. 命令行操作(管理员PowerShell):
      New-NetFirewallRule -DisplayName "WSL Flask Port 5000" -Direction Inbound -Protocol TCP -LocalPort 5000 -Action Allow
      
  • 确保Flask正确启动
    启动Flask时必须明确绑定0.0.0.0和指定端口,示例启动命令:

    flask run --host=0.0.0.0 --port=5000
    

    或在代码中指定:

    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    
  • 公网访问额外配置
    若需要公网访问,需登录路由器后台添加端口转发规则:将路由器的公网端口(如5000)转发到你的Windows笔记本本地IP的对应端口(5000)。注意:公网暴露端口风险极高,协作结束后务必删除该规则。

协作完成后,请及时清理配置:用netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=5000删除端口转发规则,并在防火墙中移除对应的入站规则,消除安全隐患。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:24:57