డిస్ట్రో లోపలి నుండి, అంతర్గత సర్వర్కు 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 క్లయింట్ యొక్క స్వంత ఫిల్టరింగ్ను తనిఖీ చేయండి, ఎందుకంటే మరో మార్గ సవరణ ఇప్పటికే హోస్ట్కు చేరుతున్న ప్యాకెట్ను సరిచేయదు.

సంబంధిత వ్యాసాలు