Iznutra distribucije ping prema internom serveru 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 serveru. 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 vpn

NetworkManager 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 vpn

Pokrenite 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.

Povezani članci