
Windows Subsystem for Linux で実行するほぼすべてのアクションで、「ホスト名を解決する方法」という通知が表示されます。なぜこれが新規インストールごとに発生するのでしょうか。また、これを解決するにはどうすればよいですか。
答え1
- resolv.conf シンボリック リンクとファイルが存在するかどうかを確認します。
cd /etc
ls -lha
stat resolv.conf
次の場所を指すシンボリック リンクが表示されます。
File: resolv.conf -> ../run/resolvconf/resolv.conf
Size: 29 Blocks: 0 IO Block: 4096 symbolic link
../run/resolvconf/resolv.conf 内の元のファイルは、WSL Ubuntu を起動すると新しく作成され、次の内容が含まれます。
# 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.23.0.1
ネームサーバーのアドレスはあなたの場合と異なる場合があります
- ルート etc フォルダーに wsl.conf ファイルを作成します (sudo が必要になる場合があります)。
sudo nano /etc/wsl.conf
- 次の行をファイルに貼り付けて保存して終了します (Ctrl+X)。
[network]
generateResolvConf = false
- resolv.confファイルへのシンボリックリンクを削除します。
cd /etc
sudo rm resolv.conf
- /etcに新しいresolv.confファイルを作成する
sudo nano resolv.conf
次の内容を貼り付けて、Ctrl+O と Ctrl+X で保存します。
# 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.23.0.1
nameserver 8.8.8.8
答え2
なぜこのようなことが起こるのかはわかりません (説明を加えて回答を改善してください)。この問題の有効な解決策は次のとおりです。
1. 実行:
nano /etc/hostname
マシン名を大文字で入力します (DESKTOP-SOMETHING のようになります)。マシン名以外のものはすべて削除します。
保存して終了。
2. 次に、以下を実行します。
nano /etc/hosts
次に、ファイルの最初の 2 行が次のようになっていることを確認します。
127.0.0.1 localhost.localdomain localhost
127.0.1.1 DESKTOP-SOMETHING
保存して終了。
答え3
私の場合、役に立ったコマンドは次の通りです。
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
答え4
WSL2 内でローカル Windows ネットワーク ホストを解決するために私が有効だったのは、次の内部 DNS 解決エントリ (ネーム サーバー) を追加することでした/etc/resolv.config
。
search <name-of-my-internal-ad-domain.net>
nameserver 10.0.xx.xxx # local WAN DNS server
nameserver 10.0.xx.xxx # local WAN DNS server
nameserver 1.1.1.1
sudo tee /etc/resolv.conf << EOF
search <name-of-my-internal-ad-domain.net>
nameserver 10.0.xx.xxx
nameserver 10.0.xx.xxx
nameserver 1.1.1.1