Невозможно разрешить имя хоста в WSL

Невозможно разрешить имя хоста в WSL

Почти при любом действии, которое я делаю в Windows Subsystem for Linux, я получаю уведомление "Как разрешить имя хоста". Почему это происходит в каждой новой установке и как это решить?

решение1

  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

адрес сервера имен может отличаться в вашем случае

  1. создайте файл wsl.conf в корневой папке etc (вам может понадобиться sudo):

sudo nano /etc/wsl.conf

  1. вставьте следующие строки в файл и выйдите из сохранения (Ctrl+X):
[network]
generateResolvConf = false
  1. удалить символическую ссылку на файл resolv.conf
cd /etc
sudo rm resolv.conf
  1. создайте новый файл 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

Связанный контент