AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1533291
Accepted
Bevan
Bevan
Asked: 2020-03-17 22:56:49 +0800 CST2020-03-17 22:56:49 +0800 CST 2020-03-17 22:56:49 +0800 CST

Como altero as configurações de DNS para WSL2?

  • 772

Pelo que pude descobrir, o processo oficial para alterar qual servidor DNS é usado pelo WSL2 no Windows 10 é detalhado abaixo. (WSL2 é a nova versão do Windows Subsystem for Linux, que executa um kernel Linux real em uma VM leve no Windows 10.)

No entanto, esse processo não funciona para mim - acabo com um sistema que simplesmente expira e não consegue resolver nenhum endereço.

O que estou fazendo errado?

Aqui está o processo como eu o montei até agora:

1. Desligue a geração de/etc/resolv.conf

Usando o prompt do Linux (estou usando o Ubuntu), modifique (ou crie) /etc/wsl.conf com o seguinte conteúdo

[network]
generateResolvConf = false

(Aparentemente, há um bug na versão atual em que qualquer espaço em branco à direita nessas linhas atrapalhará as coisas.)

2. Reinicie a máquina virtual WSL2

Saia de todos os prompts do Linux e execute o seguinte comando do Powershell

wsl --shutdown

3. Crie um costume/etc/resolv.conf

Abra um novo prompt do Linux e cd para/etc

Se resolv.confestiver vinculado a outro arquivo, remova o link com

rm resolv.conf

Crie um novo resolv.confcom o seguinte conteúdo

nameserver 1.1.1.1

4. Reinicie a máquina virtual WSL2

Igual ao passo #2

5. Inicie um novo prompt do Linux.

Lucro!

Atualização em 18 de março de 2020

Meu /etc/hostsarquivo contém isso:

# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateHosts = false
127.0.0.1       localhost
127.0.1.1       [redacted]  bearps-desktop

10.168.244.140  host.docker.internal
10.168.244.140  gateway.docker.internal
127.0.0.1       kubernetes.docker.internal

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

O arquivo /etc/switch.confnão existe.

A ferramenta resolvectlnão está no meu caminho; não existe em /usr/bin/resolvectl.

Da mesma forma systemd-resolvenão está no meu caminho; não existe em /usr/bin/systemd-resolve.

windows-10 ubuntu
  • 6 6 respostas
  • 93320 Views

6 respostas

  • Voted
  1. Best Answer
    Bevan
    2020-03-19T12:50:52+08:002020-03-19T12:50:52+08:00

    O processo que documentei acima está correto - é assim que você altera as configurações de DNS no WSL2.

    Meu erro foi usar os conhecidos servidores DNS públicos para CloudFlare (1.1.1.1) e Google (8.8.8.8 e 8.8.4.4) para fins de teste. Acontece que minha rede local me impede de usar DNS público.

    Quando testei o processo acima com o endereço IP do servidor DNS interno correto, tudo funcionou corretamente.

    • 33
  2. Evandro Pomatti
    2022-04-15T18:41:07+08:002022-04-15T18:41:07+08:00

    Adicionando a outras respostas aqui, você também deseja definir resolv.confimutável.

    sudo chattr +i /etc/resolv.conf
    

    No meu caso, ele estava sendo excluído a cada inicialização, mesmo com wsl.conf.

    Por isso, criei esse pequeno programa que automatiza tudo com um shell:

    https://github.com/epomatti/wsl2-dns-fix-config

    • 4
  3. Nino van der Mark
    2021-07-08T05:24:52+08:002021-07-08T05:24:52+08:00

    Ao criar/editar /etc/resolv.conf, recebi erros como este:

    cat: /etc/resolv.conf: No such file or directory
    

    Consegui resolver esses problemas removendo e recriando do zero. Ambas as operações requerem execução como root (usar sudo não funcionou para mim)

    rm /etc/resolv.conf
    echo nameserver 8.8.8.8 > /etc/resolv.conf
    
    • 2
  4. Zegert
    2022-01-20T03:28:55+08:002022-01-20T03:28:55+08:00

    Respostas muito detalhadas sobre como alterá-lo. Eu só queria usar o padrão e seguir em frente. Segui alguns guias como a primeira resposta, não funcionou para mim. Só troquei /etc/wsl.confe voltou a funcionar.

    sudo nano /etc/wsl.conf
    

    Insira ou altere neste arquivo:

    [network]
    generateResolvConf = true
    

    Insira no Powershell/CMD:

    wsl --shutdown
    

    ou:

    wsl --terminate <<Linux distro>>
    

    Feito e feito. Deixe-me saber se isso funcionou para você.

    Minha configuração estava bagunçada porque Tailscale mudou quando eu comecei. Agora está funcionando novamente.

    • 1
  5. Matt
    2021-07-24T20:00:52+08:002021-07-24T20:00:52+08:00

    Eu tive que fazer isso de casa (coronavírus) e acabei escrevendo um script Prompt do administrador do Powershell para iniciar minha distro (debian). Observe também que isso inicia a distro padrão especificada pelo WSL, você precisará alterar a última linha se não for o caso. Procure o \\wsl$\[distro name]se o seu também não se chama Debian, basta digitar a primeira parte em um caminho do Windows Explorer para chegar ao WSL2, ou seja, na barra superior do explorer, digite \\wsl$\e ele listará suas distribuições.

    Isso extrairá o servidor DNS do host do Windows, criará um novo resolv.conf e o gravará no formato Unix na instância WSL2. Então você precisa editar /etc/wsl.conf para:

    [network]
    generateResolvConf = false
    

    Então, um superusuário tentou mudar isso para resolv.config; se esse arquivo existe porque você está usando uma distribuição Linux diferente, suponho que seja o arquivo que você deseja. Portanto, modifique de acordo. Embora eu nunca tenha visto esse arquivo em nenhuma documentação e não tenha certeza se a edição da minha postagem estava correta.

    Em seguida, inicie o prompt de administração do PowerShell e execute como ./debian.ps1 (se for esse o nome do arquivo):

    # Filename: debian.ps1
    # 
    # Get the DNS server of the Windows machine, save into variable nameserver
    $nameserver = Get-WmiObject -Namespace root\cimv2 -Query "Select dnsserversearchorder from win32_networkadapterconfiguration" | where {$_.DNSServerSEarchOrder -ne $null} | select -ExpandProperty DNSServerSearchOrder
    # Convert nameserver object into a string
    $nameserver = Out-String -InputObject $nameserver
    # Run Set-Contents (sc) to write the resolv.conf file in a public location as it has DOS formatted line endings written by PowerShell, not readable by Linux
    sc -Path 'c:\Users\Public\Documents\resolv.conf' -Value ('nameserver ' + $nameserver) -Encoding utf8
    # Convert the DOS formatted file into UNIX format for WSL2 and write it in the proper place (\etc\resolv.conf, its primary location is \\wsl$\[distro_name] from Windows)
    [string]::Join( "`n", (gc 'c:\Users\Public\Documents\resolv.conf')) | sc '\\wsl$\debian\etc\resolv.conf'
    # Launch the default WSL2 distribution - if you want to use another one, specify in the line below
    wsl.exe
    

    Isso foi testado no Debian Buster e em uma VPN Zscaler (corporativa). É um bom ponto de partida, espero que poupe alguém das dores de cabeça que encontrei ao obter acesso DNS na instância WSL2 do meu PC corporativo!

    • 0
  6. Hans Ginzel
    2021-09-16T02:01:52+08:002021-09-16T02:01:52+08:00

    Se você deseja compartilhar a configuração de DNS entre o Windows e o WSL Linux, deixe a geração automática ON .

    Como administrador do Windows , edite C:\Windows\System32\drivers\etc\hosts.
    Ou execute o WSL Linux Shell como administrador do Windows (com o botão direito do mouse) e edite o arquivo /mnt/c/Windows/System32/drivers/etc/hosts.

    • 0

relate perguntas

  • O serviço de arbitragem USB da estação de trabalho VMware não inicia automaticamente

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • atalho do shell da área de trabalho no painel lateral do explorer

  • Por que não consigo enviar arquivos do Android para o Windows 10?

  • Abrir com em vários arquivos?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve