自動更新WSL內網DNS Server設定
在公司電腦上一直有個 WSL 的問題,就是這個 WSL 無法連線網路。請 Network 同事幫忙測試後,原來是 WSL 抓不到內網的 DNS Server,造成它無法連線上網。但設好之後,如果重開 WSL 你會發現 /etc/resolv.conf
的設定每次都會還原。我有回報 WSL Issue #9074,但感覺開發團隊不怎麼理此問題。
cat /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.21.192.1
很搞笑,註解還寫怎麼解,但其實沒作用。
最近因工作需求,突然 WSL 用的兇,每次都要手動去改一次,實在有夠麻煩。這此寫了一段非常簡單的 Shell Script 來解決此問題。
vim UpdateIntranetDnsServer.sh
#!/bin/sh
if ! grep -q '^nameserver 8.8.8.8$' /etc/resolv.conf; then
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
fi
if ! grep -q '^nameserver 8.8.4.4$' /etc/resolv.conf; then
echo 'nameserver 8.8.4.4' >> /etc/resolv.conf
fi
用 Google DNS 假裝一下內網 DNS Server。
sudo sh UpdateIntranetDnsServer.sh
# 測試一下,或改用 `ping` 也行。
sudo apt update
最後看你要不要用 chmod u+x ???.sh
加個執行權限,就自己決定吧。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。