Puncte:3

Faceți modificările /etc/resolv.conf permanente în WSL 2

drapel in

Pe WSL 2, când încerc să mă conectez la un site web, am o problemă:

$ ping www.google.com
ping: www.google.com: Eșec temporar în rezolvarea numelui

Acum, pentru a remedia asta, a trebuit să adaug /etc/wsl.conf cu acest continut:

[reţea]
generateResolvConf = adevărat

Și trebuie să-mi schimb /etc/resolv.conf la:

server de nume 8.8.8.8

Acest lucru funcționează bine.

Cu toate acestea, când îmi repornesc sistemul, când închid wsl sau fac ceva similar, /etc/resolv.conf este suprascris cu valoarea anterioară.

Desigur, dacă mă schimb /etc/wsl.conf la următoarele și reporniți din nou:

[reţea]
generateResolvConf = false

Remedierea menționată mai sus a dispărut din nou.

Deci, cum îmi fac modificările /etc/resolv.conf permanent pe WSL 2?

drapel ru
`/etc/resolv.conf` este de obicei un link simbolic și este suprascris de NetPlan / SystemD. Când „suprascrie” datele, ce vedeți în `ls -al /etc/resolv.conf`?
Olivier Grégoire avatar
drapel in
@ThomasWard acesta este rezultatul acelei comenzi: `lrwxrwxrwx 1 root root 29 Jan 25 17:43 /etc/resolv.conf -> ../run/resolvconf/resolv.conf`. Am crezut că `..` era relativ la propriul meu director, așa că am încercat în alte directoare și este încă `../run/resolvconf/resolv.conf`. Și văd că acel fișier are în prezent `8.8.8.8` ca valoare oricum.
drapel ru
OK, e normal.Când modificați lucrurile, asigurați-vă că vă uitați la `/etc/resolvconf` - undeva în există un fișier "head" pe care îl puteți configura pentru a avea serverele DNS primare înaintea oricărei secțiuni de sistem - acest lucru este util pentru că asta este cum funcționează resolvconf cu conexiuni de rețea dinamice (Network Manager) într-o instalare de bază a Ubuntu. Doar pentru viitor ca să rămână. Editați fișierul principal pentru resolvconf, acele modificări sunt persistente. S-ar putea să existe ALTE elemente care sunt create sub acestea, dar veți seta DNS primar în acest fel. Dacă funcționează, voi converti acest lucru într-un răspuns
Olivier Grégoire avatar
drapel in
@ThomasWard `sudo find /run -type f`, returnează doar `/run/resolvconf/resolv.conf` și `/run/sudo/ts/myusername`. Nu este nimic altceva acolo.
drapel ru
Nu am spus că este în `/run` - rețineți că directorul pe care l-am spus în comentariul meu este **`/etc/resolvconf`** și *nu este* în `/run`
Olivier Grégoire avatar
drapel in
@ThomasWard Am crezut că este o greșeală de tipar deoarece /etc/resolvconf (sau similar) nu există.
NotTheDr01ds avatar
drapel vn
@ThomasWard Vă rugăm să rețineți că OP a spus că acesta este WSL. Systemd / NetPlan nu ar trebui să fie în joc aici, nu? WSL configurează în mod normal `/etc/resolv.conf` de pe gazda Windows, cu excepția cazului în care este dezactivat cu `/etc/wsl.conf` menționat.
drapel ru
@NotTheDr01ds WSL2 este un mediu complet virtualizat, deci *ar putea* fi implicat. Nu știm dacă sunt WSL1. După cum a indicat OP, a trebuit să îl activeze și apoi să îl dezactiveze. Dacă îl dezactivează, nimic nu va gestiona DNS-ul, așa că OP trebuie să se ocupe singur.
NotTheDr01ds avatar
drapel vn
@ThomasWard Nu sunt sigur că l-aș numi „complet virtualizat”. Chiar și WSL2 folosește propriul său proces `init` (PID 1) pentru a conecta interoperabilitatea dintre WSL și Windows. Cel mai important pentru această întrebare, cel puțin, este acel `init` pe WSL (atât 1, cât și 2) unde este configurată rețeaua. Într-adevăr, există foarte puțin „Ubuntu” implicat în acea parte a lucrurilor, *mai ales* nu Systemd.
NotTheDr01ds avatar
drapel vn
@OlivierGrégoire Puteți detalia (cu o modificare a întrebării) despre „care nu funcționează din nou”? `resolv.conf` este suprascris, chiar și cu `wsl.conf`? Dacă da, încercați să eliminați spațiile din jurul semnului egal (`generateResolvConf=false`). Este o șansă lungă, dar o schimbare ușor de încercat.
Olivier Grégoire avatar
drapel in
@NotTheDr01ds gata! dar `/run/resolvconf/resolv.conf` este acum șters când ies/repornesc wsl
NotTheDr01ds avatar
drapel vn
Sigur, dar am crezut că asta ai vrut? Dacă nu mai folosește `/run/resolvconf/resolv.conf`, puteți crea manual `/etc/resov.conf` cu succes?
Olivier Grégoire avatar
drapel in
@NotTheDr01ds Îl pot crea într-adevăr, dar când închid WSL, fișierul este șters.
NotTheDr01ds avatar
drapel vn
Ne pare rău, în comentariul anterior ați spus că „/run/resolvconf/resolv.conf” a fost șters când ați repornit. Trebuia să fie `/etc/resolv.conf`, sau chiar ambele sunt șterse?
Olivier Grégoire avatar
drapel in
@NotTheDr01ds În instalarea mea de WSL (nu voi vorbi în general pentru că nu știu), `/etc/resolv.conf` este un link simbolic către `/run/resolvconf/resolv.conf`.Acesta din urmă este șters, în timp ce primul rămâne un link simbolic chiar și atunci când cel din urmă este șters.
drapel kn
Bumping, deoarece mă confrunt cu aceeași problemă și nu există încă o soluție
Puncte:0
drapel mv

Am avut exact aceeași problemă și am urmat acești pași pe care i-am găsit în depozitul github WSL ca o soluție:

  1. Ștergeți /etc/resolv.conf
  2. Faceți /etc/resolv.conf de vim/nano
  3. Introduceți serverele de nume adecvate
  4. Începeți o nouă sesiune și verificați dacă rezolv.conf nu este resetat din nou

Sursa: răspunsul lui Bradley101 aici https://github.com/Microsoft/WSL/issues/1908

drapel ru
Acest răspuns pare incomplet - se elimină rezolv.conf și apoi se recreează *fără* să detalieze cum ar trebui să fie formatat etc.este o modalitate bună de a întrerupe lucrurile și pur și simplu să spui „Sursa este celălalt răspuns” fără a oferi pași *compleți* poate rupe WSL.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.