WSL2修改/etc/resolv.conf可以自己設置dns,但重啟WSL以後,手動設置的DNS就會被重置為默認的,細心看了一下默認的文件以後發現了問題的關鍵。WSL自動在啟動時自動根據系統的虛擬交換機WSL生成/etc/resolv.conf文件。如下為默認的/etc/resolv.conf文件的內容

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.27.96.1

根據默認文件的描述,首先sudo vim /etc/wsl.conf添加etc/wsl.conf文件,文件內容為:

[network]
generateResolvConf = false

保存以後Powershell或Windows Terminal內wsl --shutdown關機WSL,然後重新打開WSL
手動編輯/etc/resolv.conf文件,手動設置新的DNS,如此就不會重啟後又重置的情況了,設置例如:

nameserver 8.8.8.8

重啟試一下,手動設置的DNS已經生效

文章來源:WSL手动设置DNS - 我叫小狸呀

您也可能喜歡這些文章