人间工作P 人间工作P
主站 (opens new window)
首页
  • Bukkit开发教程
投喂
关于
  • 分类
  • 标签
  • 时间线
  • 友情链接

人间工作P

我每天都好困… 最近在学习和进行 VOCALOID 创作
主站 (opens new window)
首页
  • Bukkit开发教程
投喂
关于
  • 分类
  • 标签
  • 时间线
  • 友情链接
  • 为 WSL 配置端口转发

    • 从 WSL 转发到 Windows
      • 从 Windows 转发到 WSL
      MrXiaoM
      2026-02-28
      开发
      目录

      为 WSL 配置端口转发

      使得 Windows 能够访问 WSL 的端口,或者 WSL 能够访问 Windows 的端口

      部署一些用于测试的服务的时候可能会用到 WSL,使得子系统与宿主机能够通信是比较重要的。

      我在 %USERPROFILE%/.wslconfig 的 WSL 配置如下,基本没有改动网络相关配置

      [wsl2]
      memory=4GB
      processors=2
      dnsTunneling=true
      firewall=true
      autoProxy=true
      
      [experimental]
      autoMemoryReclaim=gradual
      sparseVhd=true
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      # 从 WSL 转发到 Windows

      首先在 WSL 执行以下命令,获取其 IP 地址。

      ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | cut -d/ -f1
      
      1

      然后访问获取到的 IP 地址即可。

      例如通过 python + FastAPI 编写一个简单的服务接口,通过 WSL 部署在 8000 端口,在浏览器可正常访问。

      (可选) 端口转发

      在 CMD 执行以下命令新建端口转发,使得在 Windows 上也能通过 localhost 访问。

      netsh interface portproxy add v4tov4 listenport=端口 listenaddress=0.0.0.0 connectport=端口 connectaddress=上述地址
      
      1

      如需删除端口转发,可以使用以下命令

      netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=端口
      
      1

      如需查看已建立的端口转发列表

      netsh interface portproxy show all
      
      1

      # 从 Windows 转发到 WSL

      首先在 WSL 执行以下命令,获取宿主机(Windows)的 IP 地址。

      cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'
      
      1

      然后在管理员 PowerShell 执行以下命令获取 WSL 网卡名称和 IP 地址

      Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.InterfaceAlias -like "*WSL*" } | Select-Object InterfaceAlias, IPAddress
      
      1

      以下格式作为参考

      • vEthernet (WSL (Hyper-V firewall))
      • vEthernet (WSL)

      记下这个 IP 地址,可以在 WSL 通过这个 IP 地址访问到 Windows 上的端口。

      再执行以下命令,对 WSL 开放 Windows 的防火墙

      New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
      
      1

      进行测试,在 WSL 连接 Windows 上的 MySQL 如下所示(假设你已经配置好允许指定 Host 访问了)

      sudo apt install mysql-client-core-8.0
      mysql --host=172.19.32.1 --port=3306 --user=root -p
      
      1
      2
      编辑 (opens new window)
      #Linux#WSL#Windows#端口#网络
      上次更新: 2026/02/28, 09:51:24
      最近更新
      01
      在 MySQL/SQLite 上使用中文全文搜索功能
      02-18
      02
      上大学需要买的物品清单
      01-07
      03
      在 vue 中作出继承组件类型的操作
      12-27
      更多文章>
      Theme fork from Vdoing | Copyright © 2018-2026 人间工作P | 友情链接
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式