
Почти при любом действии, которое я делаю в 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
адрес сервера имен может отличаться в вашем случае
- создайте файл wsl.conf в корневой папке etc (вам может понадобиться sudo):
sudo nano /etc/wsl.conf
- вставьте следующие строки в файл и выйдите из сохранения (Ctrl+X):
[network]
generateResolvConf = false
- удалить символическую ссылку на файл resolv.conf
cd /etc
sudo rm resolv.conf
- создайте новый файл resolv.conf в /etc
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
Затем убедитесь, что первые две строки файла выглядят следующим образом:
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
Для разрешения локальных сетевых хостов Windows в WSL2 мне удалось добавить следующие внутренние записи разрешения 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