WSL2 ne doseže VPN podmrežu: pročitajte rutu hosta
Distribucija stoji iza vlastitog NAT-a i nikada ne vidi Windows tunel. Pročitajte trenutnu adresu i prefiks s hosta, pa ih dodajte unutar WSL-a.
Iznutra distribucije ping prema internom poslužitelju istječe, dok ista adresa odgovara s Windowsa. VPN je povezan i Windows ruta je ispravna, pa je razmak granica WSL-a. Prođite put od neuspjele naredbe natrag do sučelja hosta. Popravak nije fiksni CIDR u konfiguracijskoj datoteci; to je čitanje trenutne adrese i dodavanje tamo gdje je distribucija može koristiti.
Potvrdite gdje se put zaustavlja
Pokrenite isti test na obje strane: razriješite i povežite se s jednim internim hostom s Windowsa, pa to ponovite u distribuciji. Uspjeh na Windowsu plus istek u distribuciji locira kvar između njih, a ne u VPN klijentu ili internom poslužitelju. Učinite to prije promjene bilo koje rute, kako bi oba rezultata opisivala istu destinaciju.
Unutar distribucije ip -4 addr prikazuje virtualni adapter s adresom iz WSL NAT raspona, a ip route prikazuje zadanu rutu prema WSL pristupniku. Nema rute za korporativni prefiks jer tunelski adapter hosta nema pandan unutar distribucije. Zadani pristupnik vodi u WSL NAT, a ne u korporativnu mrežu.
Dodavanje korporativne rute bez prethodnog dodavanja lokalne adrese na dostupnoj vezi daje istek ili grešku nedostupne mreže. Adresa je dio koji rutu čini upotrebljivom, pa je prvo pročitajte, a rutu tretirajte kao drugi korak.
Odaberite zrcalnu mrežu ili rutu sa skriptom
Zrcalna mreža daje distribuciji vlastita sučelja hosta, pa se tunel i njegove rute pojavljuju bez kopiranja. Značajka ovisi o novijoj Windows gradnji i o networkingMode=mirrored u .wslconfig, a njezino uključivanje mijenja nepovezano ponašanje poput prosljeđivanja localhosta. Tretirajte je kao promjenu platforme, a ne kao podešavanje rute. Ako je gradnja podržava i nuspojave su prihvatljive, to je najkraći put.
Uži pristup zadržava zadani NAT i kopira adresu i rutu tunela u distribuciju kad god se tunel podigne. Radi na više gradnji, ne mijenja ponašanje localhosta i vidljivo pada kad je VPN isključen. Cijena je mala skripta koja se mora pokretati pri svakom povezivanju.
Odaberite jedan i zapišite ga. Miješanje zrcalne konfiguracije s ručnim rutama daje distribuciju s dva puta do istog prefiksa i bez jasnog vlasnika nijednog. Jedna dokumentirana metoda lakše se otklanja nego dvije napola konfigurirane.
Povucite trenutne pojedinosti tunela s hosta
Uparite adapter po MAC adresi, a ne po imenu, jer se imena mijenjaju s VPN klijentom i redoslijedom povezivanja. Popišite adaptere jednom, zabilježite MAC tunelskog adaptera, pa zatražite njegovu adresu i prefiks. MAC ostaje s virtualnim adapterom kroz ponovna povezivanja, dok ime i indeks sučelja ne ostaju:
powershell.exe 'Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" } | Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress, PrefixLength'Pristupnik dolazi iz konfiguracije sučelja. Prvo dohvatite indeks sučelja, pa pročitajte sljedeći skok. Indeks se može promijeniti nakon ponovnog pokretanja ili resetiranja adaptera, zato ga skripta treba čitati, a ne spremati:
powershell.exe '(Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" }).InterfaceIndex'
powershell.exe '(Get-NetIPConfiguration -InterfaceIndex 27).IPv4DefaultGateway.NextHop'Provedite izlaz kroz tr -d '\r' prije nego ga dodijelite varijabli. PowerShell završava retke povratkom kolica, a bez uklanjanja zadnje polje nosi skriveni znak zbog kojeg naredba rute padne sa zbunjujućom pogreškom analize.
Primijenite adresu i rutu unutar distribucije
Instalirajte adresu tunela kao adresu s prefiksom na sučelju distribucije, pa usmjerite korporativni blok kroz pristupnik hosta:
sudo ip addr add 172.20.14.37/22 dev vpn
sudo ip route add 172.20.0.0/16 via 172.20.12.1 dev vpnNetworkManager odbacuje ručno konfiguriranu adresu kad se veza ciklički obnovi, a nijedan DHCP klijent ne traži zamjenu. Postavite metodu na automatsku kako bi svako ponovno povezivanje osvježilo adresu, pa ponovno podignite vezu. Ručna metoda izgleda stabilno do prvog ponovnog povezivanja:
nmcli con show vpn
sudo nmcli con mod vpn ipv4.method auto
sudo nmcli con up vpnPokrenite oba koraka iz kuke koja pokreće VPN, a ne iz interaktivne ljuske. Skripta koja čita adresu, dodaje je, dodaje rutu i bilježi vrijednosti pretvara ponavljajući ručni popravak u ponovljiv, a zapisnik je prvo što treba pročitati kad se prefiks promijeni.
Pričvrstite ime i dokažite put
Jezgra može preimenovati sučelje distribucije između eth1 i eth2 nakon prebacivanja mreže, a skripta pisana prema imenu tada uređuje pogrešan uređaj. udev pravilo vezano uz MAC daje sučelju stabilnu oznaku:
SUBSYSTEM=="net", ACTION=="add", ATTRS{address}=="3c:52:82:0a:1b:7c", NAME="vpn"Zatim provjerite adresom, rutom i stvarnom TCP vezom: ip -4 addr show dev vpn, ip route get 172.20.4.10 i vezom na poznati interni port. Pretraga rute treba imenovati vpn uređaj i izvornu adresu koju ste dodali.
Ako sve tri provjere prođu unutar distribucije, a veza i dalje ne uspijeva, paket napušta WSL i odbacuje se na strani Windowsa. Provjerite vatrozid hosta i vlastito filtriranje VPN klijenta prije promjene skripte, jer još jedna izmjena rute neće popraviti paket koji već stiže do hosta.