Рейтинг:1

DNS не работает на WSL

флаг us

В настоящее время я использую инсайдерскую сборку Windows 11.(22458)

Тем не менее, у меня была эта проблема несколько раз на других сборках. (и wsl работал раньше)

Когда я запускаю wsl, я не могу выполнить DNS-запрос. (Пингование IP-адреса напрямую работает.)

Я отследил эту проблему до файла: /etc/resolv.conf

Он включает адрес DNS-сервера.

По умолчанию: 172.22.192.1.

Однако этот не работает.

Если я изменю его на 1.1.1.1 (Cloud Flare DNS), он снова заработает.

Однако после каждого перезапуска wsl он возвращает значение по умолчанию.

Существует файл с именем wsl.conf, в котором я могу отключить создание этого файла, но всегда просто полностью удаляю файл после каждой перезагрузки.

Итак, как я могу это исправить?

Моя первая идея состояла в том, чтобы полностью сбросить wsl, но ни сброс приложения, ни переустановка WSL с помощью функций не исправили это.

У кого-нибудь есть другая идея, что делать?

NotTheDr01ds avatar
флаг vn
Используете ли вы VPN, который может изменить преобразователь, когда он активен?
NotTheDr01ds avatar
флаг vn
Просто предупреждаю, что я удалил свой ответ, так как он был для WSL / Ubuntu в Windows 10, а Win 11 определенно ведет себя по-другому. Я попытаюсь понять, смогу ли я понять, как это исправить в Ubuntu под Windows 11.
LightJack05 avatar
флаг us
@ NotTheDr01ds OMG Я только что понял, что проблема в моем брандмауэре. Он блокирует DNS-запрос от виртуальной машины Linux. Что означает WSL в настройках брандмауэра, чтобы я мог внести его в белый список? Или, что еще лучше, как я могу выбрать, что подключение к WSL является частной сетью?
NotTheDr01ds avatar
флаг vn
Интересно. Вы уверены, что его блокирует брандмауэр Windows? Моя виртуальная машина Win11 настроена как общедоступная для самой виртуальной машины, но я все еще могу подключиться к ней через RDP, и экземпляры WSL внутри нее без проблем разрешают DNS. Я не знаю, как изменить WSL vNIC на Private. Фактически, в Windows 11 vNIC кажется полностью скрытым от пользовательского интерфейса Windows (но все еще отображается с помощью ipconfig). Но мне интересно, может ли Pi-hole отказываться от экземпляра WSL?
NotTheDr01ds avatar
флаг vn
В любом случае, что произойдет, если вы (временно) измените весь сетевой профиль Win11 на «Частный» (по крайней мере, если вы находитесь в «безопасной» сети) — есть ли разница в том, как реагирует WSL? (также спасибо, что @отметили меня, чтобы я получил уведомление!)
NotTheDr01ds avatar
флаг vn
Кроме того, учитывая, что мы думаем, что это больше проблема на стороне Windows (она определенно *не* связана с Ubuntu), и вы не получили никаких других ответов от кого-либо на Ask Ubuntu, возможно, пришло время удалить этот. и воссоздайте вопрос на странице [Суперпользователь](https://superuser.com).
NotTheDr01ds avatar
флаг vn
И потенциально актуальный [ответ суперпользователя] (https://superuser.com/a/1496354/1210833). По крайней мере, два года назад было невозможно сделать WSL vNIC закрытым. Я не видел никаких указаний на то, что это будет по-другому, но Win11, похоже, имеет некоторые довольно существенные изменения в этой области.
LightJack05 avatar
флаг us
@ NotTheDr01ds Хорошо, думаю, я перейду к сообществу Microsoft. Я попытаюсь выяснить, как изменить сетевой профиль на частный (он отображается как неопознанный в безопасности Windows, а не в сетевых настройках). Настоящая проблема заключалась в том, что я выбрал для брандмауэра Windows блокировку всего входящего при подключении к общедоступной сети. Спасибо за помощь!
LightJack05 avatar
флаг us
@NotTheDr01ds Если вы хотите взглянуть на вопрос, вот ссылка: https://answers.microsoft.com/en-us/windows/forum/all/change-the-wsl-network-profile-from -public-to/c62b7bc3-8faf-44bc-8b67-848357352534
Рейтинг:1
флаг it

WSL получает свой IP-адрес (и DNS-сервер, сетевую маску и другие вещи) от DHCP-сервера Windows. Либо исправьте это в Windows, либо исправьте DNS-сервер на 172.22.192.1.

Это проблема Windows, а не Ubuntu.

И нет, я не знаю, как Windows делает DHCP.

LightJack05 avatar
флаг us
Привет, проблема в том, что у меня нет DNS на этом IP. Я даже не знаю, что это за IP. Windows получает свой DNS от моего маршрутизатора по адресу 192.168.178.1.
Рейтинг:1
флаг cn

Это проблема WSL, а не Ubuntu или Windows. Есть много решений, лучшее, что я нашел https://gist.github.com/coltenkrauter/608cfe02319ce60facd76373249b8ca6

Он также включает информацию о VPN, но шаги работают и без VPN.

  1. Запустите эти команды в терминале Ubuntu.

    cd ~/../../etc # Перейти в папку etc в WSL.
    эхо "[сеть]" | sudo tee wsl.conf # Создайте файл wsl.conf и добавьте первую строку.
    echo "generateResolvConf = false" | sudo tee -a wsl.conf # Добавить wsl.conf следующую строку.
    wsl --terminate Debian # Завершить WSL в командной строке Windows, если ОС Ubuntu, а не Debian.
    cd ~/../../etc # Перейти в папку etc в WSL.
    sudo rm -Rf resolv.conf # Удалить файл resolv.conf.
    
  2. В Windows cmd, PowerShell или терминал с подключенным VPN выполните: Get-NetIPInterface или же ipconfig/все для получения первичного DNS и вторичное.

  3. С первичным и вторичным DNS, полученными на шаге 2, замените числа на следующем шаге в X.X.X.X.

  4. echo "сервер имен X.X.X.X" | sudo тройник resolv.conf (Создайте resolv.conf и добавьте строку.)

  5. echo "сервер имен X.X.X.X" | sudo tee -a resolv.conf (Добавить строку в resolv.conf)

  6. wsl --завершить Debian (Завершите WSL в Windows cmd, если это Ubuntu, а не Debian).

  7. sudo chattr +i resolv.conf

  8. Наконец, в Windows cmd, PowerShell или терминале:

    Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface-InterfaceMetric 6000
    

Фото: @MartinCaccia, @yukosgiti, @machuu и @AlbesK:
https://github.com/microsoft/WSL/issues/4277
https://github.com/microsoft/WSL/issues/4246

NotTheDr01ds avatar
флаг vn
Добро пожаловать в Ask Ubuntu и спасибо за ваш ответ! Я заметил, что у вас уже есть отрицательный голос, и это *вероятно* (хотя вы никогда не можете быть уверены), потому что ваш ответ сводится к тому, что мы называем «ответом только по ссылке», что обычно здесь не разрешено и [может быть удалено ](https://askubuntu.com/help/deleted-answers). Хотя можно (и рекомендуется) предоставлять ссылку в качестве авторства, мы просим вас включить соответствующие сведения о том, как решить проблему, непосредственно в свой ответ. Спасибо!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.