有哪些外貿(mào)網(wǎng)站重慶seo關(guān)鍵詞優(yōu)化服務(wù)
在 Windows 11 中設(shè)置 WSL2 Ubuntu 的 `networkingMode=mirrored` 詳細(xì)教程
- 引言
- 環(huán)境要求
- 配置 `.wslconfig` 文件
- 重啟 WSL2
- 驗(yàn)證鏡像網(wǎng)絡(luò)模式
- 解決常見(jiàn)問(wèn)題
- 其他注意事項(xiàng)
- 結(jié)論
引言
在 Windows 11 中使用 WSL2(Windows Subsystem for Linux 2)時(shí),默認(rèn)的網(wǎng)絡(luò)配置可能會(huì)導(dǎo)致一些網(wǎng)絡(luò)互通性問(wèn)題,例如無(wú)法通過(guò) localhost
訪問(wèn) WSL2 中的服務(wù),或者在局域網(wǎng)中無(wú)法訪問(wèn) WSL2 中的服務(wù)。為了解決這些問(wèn)題,Windows 11 23H2 及以上版本引入了 networkingMode=mirrored
配置,使 WSL2 與 Windows 主機(jī)共享相同的網(wǎng)絡(luò)配置。本文將詳細(xì)介紹如何設(shè)置 WSL2 Ubuntu 的 networkingMode=mirrored
,并解決常見(jiàn)問(wèn)題。
環(huán)境要求
在開(kāi)始之前,請(qǐng)確保滿足以下環(huán)境要求:
- Windows 版本:Windows 11 23H2 或更高版本。
- WSL 版本:WSL2 2.0.0 或更高版本。
可以通過(guò)以下命令檢查 WSL 版本:
wsl --version
如果版本低于 2.0.0,可以通過(guò)以下命令更新:
wsl --update --pre-release
配置 .wslconfig
文件
-
創(chuàng)建或編輯
.wslconfig
文件:- 打開(kāi) PowerShell 或命令提示符,輸入以下命令創(chuàng)建或編輯
.wslconfig
文件:notepad $env:USERPROFILE\.wslconfig
- 如果文件已存在,直接編輯即可。
- 打開(kāi) PowerShell 或命令提示符,輸入以下命令創(chuàng)建或編輯
-
添加鏡像網(wǎng)絡(luò)配置:
在.wslconfig
文件中添加以下內(nèi)容:[wsl2] networkingMode=mirrored dnsTunneling=true autoProxy=true firewall=true[experimental] autoMemoryReclaim=gradual sparseVhd=true hostAddressLoopback=true
networkingMode=mirrored
:啟用鏡像網(wǎng)絡(luò)模式,使 WSL2 與 Windows 共享網(wǎng)絡(luò)。dnsTunneling=true
:啟用 DNS 隧道,提高與 VPN 等復(fù)雜網(wǎng)絡(luò)的兼容性。autoProxy=true
:同步 Windows 的代理設(shè)置到 WSL2。firewall=true
:啟用 Windows 防火墻集成。hostAddressLoopback=true
:允許通過(guò)主機(jī)的局域網(wǎng) IP 訪問(wèn) WSL2 中的服務(wù)。
重啟 WSL2
完成配置后,重啟 WSL2 以應(yīng)用更改:
wsl --shutdown
等待幾秒后重新啟動(dòng) WSL2。
驗(yàn)證鏡像網(wǎng)絡(luò)模式
-
檢查 IP 地址:
- 在 WSL2 中運(yùn)行以下命令查看 IP 地址:
如果 IP 地址與 Windows 主機(jī)的 IP 地址一致,說(shuō)明鏡像網(wǎng)絡(luò)模式已啟用。ip addr show eth0
- 在 WSL2 中運(yùn)行以下命令查看 IP 地址:
-
測(cè)試網(wǎng)絡(luò)互通:
- 在 WSL2 中啟動(dòng)一個(gè)服務(wù)(如 Python HTTP 服務(wù)器):
python3 -m http.server 8000
- 在 Windows 中訪問(wèn)
http://localhost:8000
,如果能夠訪問(wèn),說(shuō)明鏡像網(wǎng)絡(luò)模式配置成功。
- 在 WSL2 中啟動(dòng)一個(gè)服務(wù)(如 Python HTTP 服務(wù)器):
解決常見(jiàn)問(wèn)題
-
局域網(wǎng)訪問(wèn)問(wèn)題:
- 如果局域網(wǎng)設(shè)備無(wú)法訪問(wèn) WSL2 中的服務(wù),可能是 Hyper-V 防火墻阻止了入站連接??梢酝ㄟ^(guò)以下命令允許入站連接:
或者為特定端口添加規(guī)則:Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
New-NetFirewallHyperVRule -Name "AllowPort8000" -DisplayName "Allow Port 8000" -Direction Inbound -VMCreatorId '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -Protocol TCP -LocalPorts 8000
- 如果局域網(wǎng)設(shè)備無(wú)法訪問(wèn) WSL2 中的服務(wù),可能是 Hyper-V 防火墻阻止了入站連接??梢酝ㄟ^(guò)以下命令允許入站連接:
-
Docker 容器無(wú)法通過(guò)
localhost
訪問(wèn):- 如果使用 Docker,需要在
/etc/docker/daemon.json
中添加以下配置:
然后重啟 Docker 服務(wù):{"iptables": false }
sudo service docker restart
- 如果使用 Docker,需要在
其他注意事項(xiàng)
-
端口沖突:如果遇到端口沖突問(wèn)題,可以調(diào)整 Windows 的 TCP 動(dòng)態(tài)端口范圍,避免與常用端口沖突:
netsh int ipv4 set dynamic tcp start=50000 num=15536
-
IPv6 支持:鏡像網(wǎng)絡(luò)模式支持 IPv6,但
localhost
的 IPv6 地址::1
可能無(wú)法直接使用。
結(jié)論
通過(guò)以上步驟,您可以成功將 WSL2 Ubuntu 的網(wǎng)絡(luò)模式設(shè)置為 mirrored
,并享受更便捷的網(wǎng)絡(luò)互通體驗(yàn)。如果遇到問(wèn)題,可以參考相關(guān)文檔或社區(qū)討論。希望本文對(duì)您有所幫助!
參考文檔:
- WSL 官方文檔
- WSL2 網(wǎng)絡(luò)配置