WSL2 yn methu cyrraedd is-rwydwaith VPN: darllenwch lwybr y gwesteiwr
Mae'r dosbarthiad y tu ôl i'w NAT ei hun ac nid yw byth yn gweld twnnel Windows. Darllenwch y cyfeiriad a'r rhagddodiad cyfredol o'r gwesteiwr, yna eu hychwanegu y tu mewn i WSL.
O fewn y dosbarthiad, mae ping i weinydd mewnol yn dod i ben tra bod yr un cyfeiriad yn ateb o Windows. Mae'r VPN wedi cysylltu ac mae llwybr Windows yn gywir, felly'r bwlch yw ffin WSL. Cerddwch y llwybr o'r gorchymyn sy'n methu yn ôl i ryngwyneb y gwesteiwr. Nid CIDR sefydlog mewn ffeil ffurfweddu yw'r ateb; darllen y cyfeiriad cyfredol a'i ychwanegu lle gall y dosbarthiad ei ddefnyddio yw'r ateb.
Cadarnhewch ble mae'r llwybr yn stopio
Rhedwch yr un prawf ar y ddwy ochr: datryswch a chysylltwch ag un gwesteiwr mewnol o Windows, yna ailadroddwch hynny yn y dosbarthiad. Mae llwyddiant yn Windows ynghyd ag amser a ddarfu yn y dosbarthiad yn lleoli'r methiant rhwng y ddau, nid yng nghleient y VPN na'r gweinydd mewnol. Gwnewch hyn cyn newid unrhyw lwybr, fel bod y ddau ganlyniad yn disgrifio'r un cyrchfan.
Y tu mewn i'r dosbarthiad, mae ip -4 addr yn dangos addasydd rhithwir â chyfeiriad o ystod NAT WSL, ac mae ip route yn dangos llwybr diofyn sy'n pwyntio at borth WSL. Nid oes llwybr ar gyfer y rhagddodiad corfforaethol, oherwydd nid oes gan addasydd twnnel y gwesteiwr gyfatebydd y tu mewn i'r dosbarthiad. Mae'r porth diofyn yn arwain at NAT WSL, nid at y rhwydwaith corfforaethol.
Mae ychwanegu'r llwybr corfforaethol heb ychwanegu cyfeiriad lleol yn gyntaf ar gyswllt y gellir ei gyrraedd yn cynhyrchu amser a ddarfu neu wall rhwydwaith anghyrraeddadwy. Y cyfeiriad yw'r rhan sy'n gwneud y llwybr yn ddefnyddiadwy, felly darllenwch ef yn gyntaf a thriniwch y llwybr fel yr ail gam.
Dewiswch rwydwaith drych neu lwybr â sgript
Mae rhwydwaith drych yn rhoi rhyngwynebau'r gwesteiwr ei hun i'r dosbarthiad, felly mae'r twnnel a'i lwybrau yn ymddangos heb gopïo. Mae'r nodwedd yn dibynnu ar adeiladwaith Windows diweddar ac ar networkingMode=mirrored yn .wslconfig, ac mae ei galluogi yn newid ymddygiad amherthnasol fel anfon localhost ymlaen. Triniwch ef fel newid platfform, nid addasiad llwybr. Os yw'r adeiladwaith yn ei gefnogi ac mae'r sgil-effeithiau'n dderbyniol, dyma'r llwybr byrraf.
Mae'r dull culach yn cadw'r NAT diofyn ac yn copïo cyfeiriad a llwybr y twnnel i'r dosbarthiad pryd bynnag y bydd y twnnel yn codi. Mae'n gweithio ar fwy o adeiladau, nid yw'n newid ymddygiad localhost, ac mae'n methu'n weladwy pan fo'r VPN i lawr. Y gost yw sgript fach y mae'n rhaid ei rhedeg ar bob cysylltiad.
Dewiswch un a'i ysgrifennu. Mae cymysgu ffurfweddiad drych â llwybrau â llaw yn cynhyrchu dosbarthiad â dau lwybr i'r un rhagddodiad a heb berchnogion clir i'r naill na'r llall. Mae un dull wedi'i ddogfennu'n haws ei ddadfygio na dau ddull hanner-ffurfweddedig.
Tynnwch fanylion cyfredol y twnnel o'r gwesteiwr
Cyfatebwch yr addasydd yn ôl cyfeiriad MAC yn hytrach nag yn ôl enw, oherwydd mae enwau'n newid gyda chleient y VPN a threfn y cysylltiad. Rhestwch yr addasyddion unwaith, nodwch MAC addasydd y twnnel, yna holiwch am ei gyfeiriad a'i ragddodiad. Mae'r MAC yn aros gyda'r addasydd rhithwir ar draws ailgysylltiadau, tra nad yw'r enw a'r mynegai rhyngwyneb yn aros:
powershell.exe 'Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" } | Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress, PrefixLength'Daw'r porth o ffurfweddiad y rhyngwyneb. Cewch y mynegai rhyngwyneb yn gyntaf, yna darllenwch y naid nesaf. Gall y mynegai newid ar ôl ailgychwyn neu ailosod addasydd, a dyna pam y dylai'r sgript ei ddarllen yn hytrach na'i storio:
powershell.exe '(Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" }).InterfaceIndex'
powershell.exe '(Get-NetIPConfiguration -InterfaceIndex 27).IPv4DefaultGateway.NextHop'Pibwch yr allbwn trwy tr -d '\r' cyn ei aseinio i newidyn. Mae PowerShell yn terfynu llinellau â dychweliad car, ac heb y strip mae'r maes olaf yn cario nod cudd sy'n gwneud gorchymyn llwybr yn methu â gwall dosrannu dryslyd.
Cymhwyswch y cyfeiriad a'r llwybr y tu mewn i'r dosbarthiad
Gosodwch gyfeiriad y twnnel fel cyfeiriad â rhagddodiad ar ryngwyneb y dosbarthiad, yna llwybrwch y bloc corfforaethol trwy borth y gwesteiwr:
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 vpnMae NetworkManager yn gollwng cyfeiriad a ffurfweddwyd â llaw pan fo'r cysylltiad yn ailgylchu, ac nid oes unrhyw gleient DHCP yn gofyn am un arall. Gosodwch y dull yn awtomatig fel bod pob ailgysylltiad yn adnewyddu'r cyfeiriad, yna codwch y cysylltiad eto. Mae dull â llaw yn edrych yn sefydlog hyd at yr ailgysylltiad cyntaf:
nmcli con show vpn
sudo nmcli con mod vpn ipv4.method auto
sudo nmcli con up vpnRhedwch y ddau gam o'r bachyn sy'n cychwyn y VPN, nid o gragen ryngweithiol. Mae sgript sy'n darllen y cyfeiriad, yn ei ychwanegu, yn ychwanegu'r llwybr ac yn cofnodi'r gwerthoedd yn troi atgyweiriad â llaw sy'n ailadrodd yn un y gellir ei ailadrodd, a'r cofnod yw'r peth cyntaf i'w ddarllen pan fo'r rhagddodiad yn newid.
Pinwch yr enw a phrofwch y llwybr
Gall y cnewyllyn ailenwi rhyngwyneb y dosbarthiad rhwng eth1 ac eth2 ar ôl newid rhwydwaith, ac yna mae sgript a ysgrifennwyd yn erbyn enw yn golygu'r ddyfais anghywir. Mae rheol udev wedi'i chlymu i'r MAC yn rhoi label sefydlog i'r rhyngwyneb:
SUBSYSTEM=="net", ACTION=="add", ATTRS{address}=="3c:52:82:0a:1b:7c", NAME="vpn"Yna gwiriwch â'r cyfeiriad, y llwybr a chysylltiad TCP go iawn: ip -4 addr show dev vpn, ip route get 172.20.4.10 a chysylltiad â phorth mewnol hysbys. Dylai chwiliad y llwybr enwi dyfais vpn a'r cyfeiriad ffynhonnell a ychwanegoch.
Os yw'r tri yn pasio y tu mewn i'r dosbarthiad ac mae'r cysylltiad yn dal i fethu, mae'r pecyn yn gadael WSL ac yn cael ei ollwng ar ochr Windows. Gwiriwch wal dân y gwesteiwr a hidlwyr cleient y VPN ei hun cyn newid y sgript, oherwydd ni fydd addasiad llwybr arall yn trwsio pecyn sy'n cyrraedd y gwesteiwr yn barod.