डिस्ट्रोच्या आतून अंतर्गत सर्व्हरला 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 ओळी कॅरेज रिटर्नने संपवते, आणि स्ट्रिप न केल्यास शेवटच्या फील्डमध्ये लपलेले अक्षर राहते जे मार्ग आदेशाला गोंधळात टाकणाऱ्या पार्स त्रुटीने अयशस्वी करते.

डिस्ट्रोच्या आत पत्ता आणि मार्ग लागू करा

टनेलचा पत्ता डिस्ट्रोच्या इंटरफेसवर प्रीफिक्ससह पत्ता म्हणून स्थापित करा, नंतर कॉर्पोरेट ब्लॉक होस्टच्या गेटवेमधून मार्गित करा:

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 क्लायंटचे स्वतःचे फिल्टरिंग तपासा, कारण आणखी एक मार्ग संपादन आधीच होस्टपर्यंत पोहोचणारे पॅकेट सुधारणार नाही.

संबंधित लेख