WSL2 VPN துணைவலைக்கு எட்டவில்லை: ஹோஸ்ட் பாதையைப் படியுங்கள்
விநியோகம் அதன் சொந்த NAT பின்னால் அமர்ந்துள்ளது, Windows சுரங்கப்பாதையை ஒருபோதும் காணாது. ஹோஸ்ட்டிலிருந்து தற்போதைய முகவரி மற்றும் முன்னொட்டைப் படித்து, பின்னர் அவற்றை WSL-க்குள் சேர்க்கவும்.
விநியோகத்தின் உள்ளிருந்து, உள் சேவையகத்திற்கான ping நேரம் முடிந்து போகிறது, அதே முகவரி Windows-இலிருந்து பதிலளிக்கிறது. VPN இணைக்கப்பட்டுள்ளது, Windows பாதை சரியானது, எனவே இடைவெளி WSL எல்லை. தோல்வியடைந்த கட்டளையிலிருந்து ஹோஸ்ட் இடைமுகம் வரை பாதையை நடங்கள். தீர்வு கட்டமைப்பு கோப்பில் நிலையான CIDR அல்ல; அது தற்போதைய முகவரியைப் படித்து, விநியோகம் பயன்படுத்தக்கூடிய இடத்தில் அதைச் சேர்ப்பதாகும்.
பாதை எங்கு நிற்கிறது என்பதை உறுதிப்படுத்துங்கள்
இரு பக்கங்களிலும் அதே சோதனையை இயக்குங்கள்: Windows-இலிருந்து ஒரு உள் ஹோஸ்ட்டைத் தீர்த்து இணைக்கவும், பின்னர் அதை விநியோகத்தில் மீண்டும் செய்யவும். Windows-இல் வெற்றியும் விநியோகத்தில் நேரம் முடிவதும் தோல்வியை இரண்டுக்கும் இடையில் காட்டுகிறது, VPN கிளையண்டிலோ உள் சேவையகத்திலோ அல்ல. எந்தப் பாதையையும் மாற்றுவதற்கு முன் இதைச் செய்யுங்கள், இதனால் இரு முடிவுகளும் ஒரே இலக்கை விவரிக்கும்.
விநியோகத்தின் உள்ளே, ip -4 addr WSL NAT வரம்பிலிருந்து முகவரியுடன் கூடிய மெய்நிகர் அடாப்டரைக் காட்டுகிறது, ip route WSL நுழைவாயிலை நோக்கிய இயல்புநிலைப் பாதையைக் காட்டுகிறது. கார்ப்பரேட் முன்னொட்டுக்கு எந்தப் பாதையும் இல்லை, ஏனெனில் ஹோஸ்ட்டின் சுரங்கப்பாதை அடாப்டருக்கு விநியோகத்தின் உள்ளே இணையான ஒன்று இல்லை. இயல்புநிலை நுழைவாயில் WSL NAT-க்குச் செல்கிறது, கார்ப்பரேட் வலையமைப்புக்கு அல்ல.
முதலில் அடையக்கூடிய இணைப்பில் உள்ளூர் முகவரியைச் சேர்க்காமல் கார்ப்பரேட் பாதையைச் சேர்ப்பது நேரம் முடிவதையோ வலையமைப்பு அணுக முடியாத பிழையையோ உருவாக்குகிறது. பாதையைப் பயன்படுத்தக்கூடியதாக்குவது முகவரியே, எனவே முதலில் அதைப் படியுங்கள், பாதையை இரண்டாம் படியாகக் கருதுங்கள்.
பிரதிபலிப்பு வலையமைப்பு அல்லது ஸ்கிரிப்ட் பாதையைத் தேர்ந்தெடுங்கள்
பிரதிபலிப்பு வலையமைப்பு விநியோகத்திற்கு ஹோஸ்ட்டின் சொந்த இடைமுகங்களை அளிக்கிறது, எனவே சுரங்கப்பாதையும் அதன் பாதைகளும் நகலெடுக்காமல் தோன்றும். இந்த அம்சம் சமீபத்திய Windows பில்டு மற்றும் .wslconfig-இல் உள்ள networkingMode=mirrored-ஐச் சார்ந்தது, அதை இயக்குவது localhost அனுப்புதல் போன்ற தொடர்பில்லாத நடத்தையை மாற்றுகிறது. இதைப் பாதை சீரமைப்பாக அல்ல, தள மாற்றமாகக் கருதுங்கள். பில்டு இதை ஆதரித்து, பக்க விளைவுகள் ஏற்கத்தக்கதாக இருந்தால், இதுவே குறுகிய பாதை.
குறுகிய அணுகுமுறை இயல்புநிலை NAT-ஐ வைத்துக்கொண்டு, சுரங்கப்பாதை எழும்போதெல்லாம் அதன் முகவரியையும் பாதையையும் விநியோகத்திற்கு நகலெடுக்கிறது. இது அதிக பில்டுகளில் வேலை செய்கிறது, localhost நடத்தையை மாற்றாது, VPN அணைக்கப்பட்டிருக்கும்போது தெளிவாகத் தோல்வியடைகிறது. விலை ஒவ்வொரு இணைப்பிலும் இயக்க வேண்டிய சிறிய ஸ்கிரிப்ட்.
ஒன்றைத் தேர்ந்தெடுத்து எழுதி வையுங்கள். பிரதிபலிப்பு கட்டமைப்பை கைமுறை பாதைகளுடன் கலப்பது ஒரே முன்னொட்டுக்கு இரு பாதைகளும், எதற்கும் தெளிவான உரிமையாளரும் இல்லாத விநியோகத்தை உருவாக்குகிறது. ஒரு ஆவணப்படுத்தப்பட்ட முறையைப் பிழைதிருத்துவது இரண்டு அரை-கட்டமைக்கப்பட்டவற்றை விட எளிது.
ஹோஸ்ட்டிலிருந்து தற்போதைய சுரங்கப்பாதை விவரங்களைப் பெறுங்கள்
அடாப்டரைப் பெயரால் அல்ல, MAC முகவரியால் பொருத்துங்கள், ஏனெனில் பெயர்கள் VPN கிளையண்ட் மற்றும் இணைப்பு வரிசையுடன் மாறுகின்றன. அடாப்டர்களை ஒருமுறை பட்டியலிட்டு, சுரங்கப்பாதை அடாப்டரின் MAC-ஐக் குறித்து, பின்னர் அதன் முகவரியையும் முன்னொட்டையும் கேளுங்கள். MAC மீண்டும் இணைப்புகளுக்கு இடையே மெய்நிகர் அடாப்டருடன் இருக்கும், பெயரும் இடைமுகக் குறியீடும் இருக்காது:
powershell.exe 'Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" } | Get-NetIPAddress -AddressFamily IPv4 | Select-Object IPAddress, PrefixLength'நுழைவாயில் இடைமுக கட்டமைப்பிலிருந்து வருகிறது. முதலில் இடைமுகக் குறியீட்டைப் பெற்று, பின்னர் அடுத்த தாவலைப் படியுங்கள். மறுதொடக்கம் அல்லது அடாப்டர் மீட்டமைப்புக்குப் பிறகு குறியீடு மாறலாம், எனவே ஸ்கிரிப்ட் அதைச் சேமிக்காமல் படிக்க வேண்டும்:
powershell.exe '(Get-NetAdapter | Where-Object { $_.MacAddress -eq "3C-52-82-0A-1B-7C" }).InterfaceIndex'
powershell.exe '(Get-NetIPConfiguration -InterfaceIndex 27).IPv4DefaultGateway.NextHop'வெளியீட்டை மாறிக்கு ஒதுக்கும் முன் tr -d '\r' வழியாக அனுப்புங்கள். PowerShell வரிகளை carriage return-உடன் முடிக்கிறது, அதை நீக்காவிட்டால் கடைசி புலம் மறைந்த எழுத்தைச் சுமந்து, பாதை கட்டளையை குழப்பமான பாகுபடுத்தல் பிழையுடன் தோல்வியடையச் செய்கிறது.
விநியோகத்தின் உள்ளே முகவரியையும் பாதையையும் பயன்படுத்துங்கள்
சுரங்கப்பாதையின் முகவரியை விநியோகத்தின் இடைமுகத்தில் முன்னொட்டுடன் கூடிய முகவரியாக நிறுவி, பின்னர் கார்ப்பரேட் தொகுதியை ஹோஸ்ட்டின் நுழைவாயில் வழியாக வழிமாற்றுங்கள்:
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 கைமுறையாக கட்டமைக்கப்பட்ட முகவரியை விட்டுவிடுகிறது, எந்த DHCP கிளையண்டும் மாற்றீட்டைக் கேட்காது. முறையை தானியங்கியாக வைத்திருங்கள், அப்போது ஒவ்வொரு மீளிணைப்பும் முகவரியைப் புதுப்பிக்கும், பின்னர் இணைப்பை மீண்டும் மேலேற்றுங்கள். கைமுறை முறை முதல் மீளிணைப்பு வரை நிலையானதாகத் தோன்றுகிறது:
nmcli con show vpn
sudo nmcli con mod vpn ipv4.method auto
sudo nmcli con up vpnஇரு படிகளையும் VPN-ஐத் தொடங்கும் கொக்கியிலிருந்து இயக்குங்கள், ஊடாடும் ஷெல்லிலிருந்து அல்ல. முகவரியைப் படித்து, சேர்த்து, பாதையைச் சேர்த்து, மதிப்புகளைப் பதிவு செய்யும் ஸ்கிரிப்ட் திரும்பத் திரும்ப வரும் கைமுறை பழுதுநீக்கத்தை மீண்டும் செய்யக்கூடியதாக மாற்றுகிறது, முன்னொட்டு மாறும்போது முதலில் படிக்க வேண்டியது பதிவேடு.
பெயரைப் பொருத்தி பாதையை நிரூபியுங்கள்
வலையமைப்பு மாற்றத்திற்குப் பிறகு கர்னல் விநியோகத்தின் இடைமுகப் பெயரை eth1 மற்றும் eth2 இடையே மாற்றலாம், பெயரை வைத்து எழுதப்பட்ட ஸ்கிரிப்ட் அப்போது தவறான சாதனத்தைத் திருத்துகிறது. MAC-உடன் இணைக்கப்பட்ட udev விதி இடைமுகத்திற்கு நிலையான லேபிளை அளிக்கிறது:
SUBSYSTEM=="net", ACTION=="add", ATTRS{address}=="3c:52:82:0a:1b:7c", NAME="vpn"பின்னர் முகவரி, பாதை மற்றும் உண்மையான TCP இணைப்புடன் சரிபார்க்கவும்: ip -4 addr show dev vpn, ip route get 172.20.4.10 மற்றும் அறியப்பட்ட உள் துறைமுகத்திற்கான இணைப்பு. பாதைத் தேடல் vpn சாதனத்தையும் நீங்கள் சேர்த்த மூல முகவரியையும் குறிப்பிட வேண்டும்.
மூன்றும் விநியோகத்தின் உள்ளே வெற்றிபெற்றும் இணைப்பு இன்னும் தோல்வியடைந்தால், பாக்கெட் WSL-ஐ விட்டு Windows பக்கத்தில் கைவிடப்படுகிறது. ஸ்கிரிப்டை மாற்றுவதற்கு முன் ஹோஸ்ட் ஃபயர்வால் மற்றும் VPN கிளையண்டின் சொந்த வடிகட்டலைச் சரிபார்க்கவும், ஏனெனில் மற்றொரு பாதைத் திருத்தம் ஏற்கனவே ஹோஸ்ட்டை அடையும் பாக்கெட்டைச் சரிசெய்யாது.