डिस्ट्रो भित्रबाट आन्तरिक सर्भरमा 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 क्लाइन्टको आफ्नै फिल्टरिङ जाँच्नुहोस्, किनकि अर्को मार्ग सम्पादनले पहिले नै होस्टसम्म पुगिरहेको प्याकेट सुधार्ने छैन।

सम्बन्धित लेखहरू