Láti inú ìpín náà, ping sí sáfà inú kan ń parí ní àkókò, nígbà tí àdírẹ́sì kan náà ń dáhùn láti Windows. VPN ti so pọ̀, ọ̀nà Windows sì tọ́, nítorí náà àlàfo ni ààlà WSL. Rìn ọ̀nà náà láti inú àṣẹ tí ó kùnà padà sí ojú-ìsọ̀nà olùgbàlejò. Ìtúnṣe kì í ṣe CIDR tí ó dúró ṣinṣin nínú fáìlì ìṣètò; ó jẹ́ kíka àdírẹ́sì lọ́wọ́lọ́wọ́ àti fífi kún ibi tí ìpín náà ti lè lò ó.

Jẹ́rìí ibi tí ọ̀nà náà ti dúró

Ṣe àyẹ̀wò kan náà ní ẹ̀gbẹ́ méjèèjì: yanjú kí o sì so mọ́ olùgbàlejò inú kan láti Windows, kí o sì tún ṣe é nínú ìpín náà. Àṣeyọrí ní Windows pẹ̀lú àkókò tí ó parí nínú ìpín náà fi ibi tí ìkùnà wà hàn láàárín àwọn méjèèjì, kì í ṣe nínú ẹ̀rọ VPN tàbí sáfà inú. Ṣe èyí kí o tó yí ọ̀nà kankan padà, kí àwọn èsì méjèèjì lè ṣàpèjúwe ibi kan náà.

Nínú ìpín náà, ip -4 addr fi adáptà oníṣẹ́ẹ̀rọ hàn pẹ̀lú àdírẹ́sì láti ìwọ̀n NAT WSL, ip route sì fi ọ̀nà àkọ́kọ́ tí ó tọ́ka sí ẹnubodè WSL hàn. Kò sí ọ̀nà fún ìpilẹ̀ ilé-iṣẹ́, nítorí adáptà ọ̀nà olùgbàlejò kò ní àfiwé nínú ìpín náà. Ẹnubodè àkọ́kọ́ lọ sí NAT WSL, kì í ṣe sí nẹ́tíwọ́kì ilé-iṣẹ́.

Fífi ọ̀nà ilé-iṣẹ́ kún láìkọ́kọ́ fi àdírẹ́sì àdúgbò kún orí ìsopọ̀ tí ó lè dé ń mú àkókò parí tàbí àṣìṣe nẹ́tíwọ́kì tí kò lè dé. Àdírẹ́sì ni apá tí ó mú ọ̀nà náà wúlò, nítorí náà kọ́kọ́ ka á, kí o sì ka ọ̀nà náà sí ìgbésẹ̀ kejì.

Yan nẹ́tíwọ́kì dígí tàbí ọ̀nà script

Nẹ́tíwọ́kì dígí fún ìpín náà ní ojú-ìsọ̀nà olùgbàlejò fúnra rẹ̀, nítorí náà ọ̀nà náà àti àwọn ọ̀nà rẹ̀ farahàn láìdàkọ. Ẹ̀yà yìí gbára lé ìkọ́lé Windows tuntun àti networkingMode=mirrored nínú .wslconfig, ṣíṣí rẹ̀ sì ń yí ìhùwàsí tí kò ní í ṣe pẹ̀lú padà, bíi gbígbé localhost. Ka á sí ìyípadà pẹtẹ́lì, kì í ṣe àtúnṣe ọ̀nà. Bí ìkọ́lé náà bá ṣe àtìlẹ́yìn fún un tí àwọn ipa ẹ̀gbẹ́ sì tẹ́wọ́gbà, ìyẹn ni ọ̀nà tí ó kúrú jù.

Ọ̀nà tí ó kúrú jù ń pa NAT àkọ́kọ́ mọ́, ó sì ń dàkọ àdírẹ́sì àti ọ̀nà ọ̀nà náà sínú ìpín nígbà gbogbo tí ọ̀nà náà bá gòkè. Ó ń ṣiṣẹ́ lórí àwọn ìkọ́lé púpọ̀ sí i, kò yí ìhùwàsí localhost padà, ó sì ń kùnà ní àràmàǹdà nígbà tí VPN bá wà ní àbùdá. Iye rẹ̀ ni script kékeré tí a gbọ́dọ̀ ṣe ní gbogbo ìsopọ̀.

Yan ọ̀kan kí o sì kọ ọ́ sílẹ̀. Dídàpọ̀ ìṣètò dígí pẹ̀lú àwọn ọ̀nà ọwọ́ ń dá ìpín tí ó ní ọ̀nà méjì sí ìpilẹ̀ kan náà àti tí kò ní olówó tí ó ṣe kedere fún ọ̀kankan. Ọ̀nà kan tí a kọ sílẹ̀ rọrùn láti ṣàtúnṣe ju méjì tí a ṣètò ní ìdajì.

Gba àlàyé ọ̀nà lọ́wọ́lọ́wọ́ láti ọ̀dọ̀ olùgbàlejò

Bá adáptà mu nípasẹ̀ àdírẹ́sì MAC kì í ṣe orúkọ, nítorí àwọn orúkọ ń yí pẹ̀lú ẹ̀rọ VPN àti ìtòlẹ́sẹẹsẹ ìsopọ̀. Ṣe àkójọ àwọn adáptà lẹ́ẹ̀kan, kọ MAC adáptà ọ̀nà náà sílẹ̀, kí o sì béèrè àdírẹ́sì àti ìpilẹ̀ rẹ̀. MAC ń dúró pẹ̀lú adáptà oníṣẹ́ẹ̀rọ láàárín àwọn àtúnso, ṣùgbọ́n orúkọ àti àtọ́ka ojú-ìsọ̀nà kò dúró:

powershell.exe 'Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" } | Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress, PrefixLength'

Ẹnubodè wá láti inú ìṣètò ojú-ìsọ̀nà. Kọ́kọ́ gba àtọ́ka ojú-ìsọ̀nà, kí o sì ka ìfojú tí ó tẹ̀le. Àtọ́ka lè yí padà lẹ́yìn àtúnbẹ̀rẹ̀ tàbí àtúntò adáptà, nítorí náà script gbọ́dọ̀ ka á dípò kí ó tọ́jú rẹ̀:

powershell.exe '(Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" }).InterfaceIndex'
powershell.exe '(Get-NetIPConfiguration -InterfaceIndex 27).IPv4DefaultGateway.NextHop'

Gbé àbájáde kọjá tr -d '\r' kí o tó fi í sí àfikún. PowerShell ń parí àwọn ìlà pẹ̀lú ìpadà kẹ̀kẹ́, bí a kò bá sì yọ ọ́ kúrò, pápá ìkẹyìn ń gbé àmì tí ó pamọ́ tí ó mú àṣẹ ọ̀nà kùnà pẹ̀lú àṣìṣe ìtúpalẹ̀ tí ó dàrú.

Lo àdírẹ́sì àti ọ̀nà nínú ìpín náà

Fi àdírẹ́sì ọ̀nà náà sórí ojú-ìsọ̀nà ìpín náà gẹ́gẹ́ bí àdírẹ́sì pẹ̀lú ìpilẹ̀, kí o sì tọ́ ọ̀nà blọ́ọ̀kù ilé-iṣẹ́ náà nípasẹ̀ ẹnubodè olùgbàlejò:

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 ń sọ àdírẹ́sì tí a ṣètò pẹ̀lú ọwọ́ nù nígbà tí ìsopọ̀ bá yípo, kò sì sí ẹ̀rọ DHCP tí ó béèrè àròpo. Fi ọ̀nà náà sí àìfọwọ́ṣe kí gbogbo àtúnso lè sọ àdírẹ́sì di tuntun, kí o sì tún gbé ìsopọ̀ náà ró. Ọ̀nà ọwọ́ ń dàbí pé ó dúró ṣinṣin títí dé àtúnso àkọ́kọ́:

nmcli con show vpn
sudo nmcli con mod vpn ipv4.method auto
sudo nmcli con up vpn

Ṣe ìgbésẹ̀ méjèèjì láti inú hook tí ó ń bẹ̀rẹ̀ VPN, kì í ṣe láti inú shell alábàáṣepọ̀. Script tí ó ń ka àdírẹ́sì, tí ó ń fi kún, tí ó ń fi ọ̀nà kún, tí ó sì ń kọ àwọn iye sínú àkọsílẹ̀ ń yí àtúnṣe ọwọ́ tí ó ń tẹ̀ síwájú padà sí èyí tí a lè tún ṣe, àkọsílẹ̀ sì ni ohun àkọ́kọ́ tí a ó kà nígbà tí ìpilẹ̀ bá yí padà.

Fi orúkọ náà mọ́lẹ̀ kí o sì fi ọ̀nà náà hàn

Kérnẹ́lì lè tún orúkọ ojú-ìsọ̀nà ìpín náà ṣe láàárín eth1 àti eth2 lẹ́yìn ìyípadà nẹ́tíwọ́kì, script tí a kọ sí orúkọ kan yóò sì ṣàtúnṣe ẹ̀rọ tí kò tọ́. Ìlànà udev tí a so mọ́ MAC ń fún ojú-ìsọ̀nà ní àmì tí ó dúró ṣinṣin:

SUBSYSTEM=="net", ACTION=="add", ATTRS{address}=="3c:52:82:0a:1b:7c", NAME="vpn"

Lẹ́yìn náà ṣe àyẹ̀wò pẹ̀lú àdírẹ́sì, ọ̀nà àti ìsopọ̀ TCP gidi: ip -4 addr show dev vpn, ip route get 172.20.4.10 àti ìsopọ̀ sí ibùdó inú tí a mọ̀. Ìwádìí ọ̀nà yẹ kí ó dárúkọ ẹ̀rọ vpn àti àdírẹ́sì orísun tí o fi kún.

Bí àwọn mẹ́tẹ̀ẹ̀ta bá kọjá nínú ìpín náà tí ìsopọ̀ kò sì ṣiṣẹ́, pákẹ́tì náà ń kúrò ní WSL, a sì ń sọ ọ́ nù ní ẹ̀gbẹ́ Windows. Ṣàyẹ̀wò ògiri iná olùgbàlejò àti àṣẹ́wọ́ ẹ̀rọ VPN fúnra rẹ̀ kí o tó yí script náà padà, nítorí àtúnṣe ọ̀nà mìíràn kò ní tún pákẹ́tì tí ó ti ń dé ọ̀dọ̀ olùgbàlejò ṣe.

Àwọn àpilẹ̀kọ tó jọra