ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

WSL2 网络配置实操指南:NAT、桥接、镜像 3 种模式怎么配,5 分钟改对

WSL2 网络配置实操指南:NAT、桥接、镜像 3 种模式怎么配,5 分钟改对 WSL2 网络配置实操指南NAT、桥接、镜像 3 种模式怎么配5 分钟改对【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSL你在 WSL 里起了个服务Windows 浏览器却打不开对应端口或者想让局域网里的同事访问你的 Linux 环境却连 IP 都拿不到。问题多半出在 WSL 网络配置上。下面把.wslconfig里networkingMode的三个取值分别适合什么场景、最小配置怎么写、改完怎么验证一次讲清楚。把 WSL2 想成 Windows 里的一个房间WSL2 本质是一台跑在 Windows 内部的轻量虚拟机网络模式决定这扇门朝哪里开NAT 是房间躲在主机网关后面屋里能上网、外面敲不开门镜像模式是把墙拆了和 Windows 共用一张网桥接模式是单独立一根网线让 WSL 成为局域网的正式住户。WSL 图形界面直接跑在 Windows 桌面上——这正是三种网络模式要解决的问题背景改一行 .wslconfig5 分钟切换网络模式先走一遍最小路径确认你的环境能正常应用配置。用记事本打开没有就新建%UserProfile%\.wslconfig注意它是INI 格式不是 JSON[wsl2] networkingModemirrored保存后在 PowerShell 里执行wsl --shutdown彻底重启 WSL再进系统验证ip addr show eth0改配置必须wsl --shutdown才生效只关终端窗口没用。三种模式共用这一套流程只是networkingMode的值不同。端口转发的底层逻辑可以看 localhost.cpp。对号入座你的访问方向决定选哪个模式你的情况选哪个一句话理由日常写代码偶尔从 Windows 访问 localhost 端口NAT默认零配置localhost 端口转发开箱即用前后端联调Windows 浏览器要直连 Linux 服务mirrored两边共用同一 IP 和端口空间localhost 互通局域网其他设备要访问 WSL 里的服务bridgedWSL 拿到独立 IP是局域网正式成员公司 PAC 代理下 HTTPS 或 DNS 时好时坏mirroreddnsTunnelingDNS 走隧道绕开代理 PAC 干扰逐个模式配好并验证NAT默认模式出问题先退回这里日常开发最省心的一档。不写任何配置就是它或者显式声明[wsl2] networkingModeNAT验证WSL 里curl ifconfig.me应返回公网 IPWindows 侧localhost:端口能访问 WSL 内监听的服务。避坑80、443 这类端口常被 Windows 的 HTTP.sys 或 IIS 占住WSL 里绑定时报Address already in use直接换个端口比如 8080就好。NAT 模式下多个发行版共用宿主机的网关实现代码在 NatNetworking.cpp桥接让 WSL 拿到局域网的正式 IP你的服务需要被同一网段的其他电脑、手机或测试设备直连时用。[wsl2] networkingModebridged验证ip addr show eth0看到的应是192.168.x.x或10.x.x.x这类网段地址而不是 NAT 常见的 172.x再从另一台设备 ping 或访问该 IP。避坑不少公司网络做了 MAC 地址准入桥接会拿不到地址——WSL 默认随机生成 MAC用wsl2.macAddress固定成已准入的 MAC或干脆退回 NAT。实现见 BridgedNetworking.cpp。镜像Windows 浏览器直连 Linux 服务前后端分离联调、微服务本地组合这类场景的解法两边共享同一个 IP 地址和端口空间。[wsl2] networkingModemirrored dnsTunnelingtrue验证WSL 里跑python3 -m http.server 8000Windows 浏览器直接开http://localhost:8000应能看到页面。避坑镜像模式下端口是全局竞争的Windows 侧已有程序监听 8000 时 WSL 就绑不上企业 PAC 代理环境建议保留dnsTunnelingtrue。该模式需要较新的 WSL 版本实现见 MirroredNetworking.cpp。WSL 中npm start后Windows 浏览器访问 localhost:3000 成功——镜像模式的典型效果想再榨一点网络与文件系统性能可在[wsl2]段追加virtiotrue启用 virtio 通道与上面任一模式叠加使用。网络报错快查表 现象原因解法WSL 内curl外网超时宿主机断网或 NAT 接口状态残留先确认 Windows 能上网再wsl --shutdown重来Windows 访问该端口报地址被占用Windows 已有进程监听同端口netstat -ano \| findstr :8080找占用进程或换端口桥接模式下 eth0 没有 IP公司网络 MAC 准入 / 802.1x 认证wsl2.macAddress固定 MAC或退回 NAT镜像模式下公司代理环境 DNS/HTTPS 异常Windows 代理 PAC 未正确作用于 Linux 侧加dnsTunnelingtrue后重启改了配置完全没生效文件名或位置不对确认是%UserProfile%\.wslconfig且段落名为[wsl2]收尾自查清单网络模式没有最好的只有和你的访问方向最匹配的那个。改完对照下面四项过一遍.wslconfig在用户主目录下段落名是[wsl2]且是 INI 写法networkingMode取值是NAT、bridged、mirrored三者之一改完配置执行过wsl --shutdownip addr show eth0的 IP 符合预期镜像模式与 Windows 一致桥接模式落在局域网网段【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表