WSL 2 मा resolv.conf: VPN जोडिएपछि DNS बन्द हुन्छ
WSL ले देख्न सक्ने Windows एडाप्टरहरूबाट resolv.conf पुनः बनाउँछ, त्यसैले VPN को रिजोल्भर कहिल्यै नआउन सक्छ। निर्माण रोक्नुहोस्, त्यसपछि कर्पोरेट नाम परीक्षण गर्नुहोस्।
वितरणभित्र ब्राउजिङ काम गर्छ, र टनेल माथि आउने क्षणमै पहिलो आन्तरिक होस्टनेम असफल हुन्छ। स्वाभाविक प्रतिक्रिया सार्वजनिक रिजोल्भर थप्नु हो, जसले इन्टरनेट फर्काउँछ र बाँकी दिनभर कर्पोरेट नाम अगम्य बनाउँछ। WSL 2 मा, /etc/resolv.conf कन्फिगरेसन होइन, उत्पन्न आउटपुट हो, र बुझ्न लायक संयन्त्र यही हो। समाधान राम्रो रिजोल्भर होइन, फाइलको स्वामित्व हो।
फाइल उत्पन्न हुन्छ, कन्फिगर हुँदैन
WSL 2 ले सुरुवातमा त्यस क्षण देखिने Windows एडाप्टरहरूबाट फाइल लेख्छ, र माथि यही भन्ने टिप्पणी छाप्छ। पछि VPN क्लाइन्टले एडाप्टर थप्दा वा पुनः लेख्दा वितरणले अनिवार्य रूपमा केही पुनः बनाउँदैन, र फाइल अब नभएको नेटवर्कको वर्णन गर्दै रहन्छ।
असफलताको दोस्रो तरिका बढी शान्त छ: WSL ले केही एडाप्टरबाट मात्र सर्भर प्रतिलिपि गर्न सक्छ। यदि भौतिक एडाप्टरसँग पहिले नै IPv6 रिजोल्भर छ भने, VPN एडाप्टरले दिने IPv4 सर्भरहरू थपिनुको सट्टा हटाइन सक्छन्, र फाइल पूर्ण देखिन्छ तर आन्तरिक नामको जवाफ दिने सर्भर नै छुटाउँछ।
Windows को दृश्यलाई Linux को दृश्यसँग तुलना गर्नुहोस्
सम्पादन अघि दुवै पक्ष पढ्नुहोस्। वितरणभित्र फाइलमा के छ र त्यो सामान्य फाइल हो वा लिङ्क हेर्नुहोस्। Windows मा VPN ले बनाएको एडाप्टरसहित प्रत्येक एडाप्टरको रिजोल्भर सूचीबद्ध गर्नुहोस्:
ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'
VPN एडाप्टरले कर्पोरेट सर्भर देखाउँदा र Linux ले अरू केही देखाउँदा, फरक पुग्ने क्षमतामा होइन, निर्माणमा हुन्छ। एडाप्टर सूची र ठेगाना दुवै तुलना गर्नुहोस्, किनकि छुटेको एडाप्टरले छुटेको सर्भरको व्याख्या गर्छ। यही भिन्नताले तपाईं WSL सुधार्दै हुनुहुन्छ कि फायरवाल भन्ने निर्धारण गर्छ, र दुवैमा साझा केही छैन।
निर्माण बन्द गर्नुहोस् र आफ्नै फाइल लेख्नुहोस्
WSL लाई फाइल पुनः लेख्नबाट रोक्ने एउटा कागजी सेटिङ छ, र त्यो /etc/wsl.conf मा छ। त्यस फाइलमा नेटवर्क खण्ड थप्नुहोस्:
[network]
generateResolvConf = false
त्यसपछि Windows बाट wsl --shutdown प्रयोग गरी वितरण बन्द गर्नुहोस् र फेरि सुरु गर्नुहोस्। यदि बाटो सामान्य फाइल होइन सिम्बोलिक लिङ्क हो भने, आफ्नो सामग्री लेख्नु अघि लिङ्क हटाउनुहोस्, किनकि लिङ्कमार्फत लेख्दा अर्को सुरुवातमा उत्पन्न लक्ष्य पुनः बन्न सक्छ। त्यस क्षणदेखि फाइल तपाईंको हो र कसैले पनि यसलाई पुनः लेख्दैन।
nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate
खोज डोमेन बिना, अपूर्ण होस्टनेम सार्वजनिक मूलसँग पूरा हुन्छ र यस्तो डोमेन छैन भनेर फर्किन्छ। timeout ले मृत पहिलो सर्भरलाई हरेक खोज अवरुद्ध गर्नबाट रोक्छ, attempts ले एउटा खोजले कति प्रयास खर्च गर्छ सीमित गर्छ, र rotate ले पुनः प्रयासहरू सधैं माथिबाट सुरु गर्नुको सट्टा फैलाउँछ। व्यापार यो हो कि फाइलले अब रिजोल्भर ठेगाना सत्रहरूबीच बदलिने VPN लाई पछ्याउँदैन।
सर्ने रिजोल्भरलाई सम्हाल्नुहोस्, त्यसपछि प्रमाणित गर्नुहोस्
केही क्लाइन्टले सत्र-विशेष रिजोल्भर दिन्छन्, त्यसैले स्थिर फाइल अर्को जडानमा टुट्छ। दुई दृष्टिकोण रक्षायोग्य छन्। ठेगाना बदलिँदा सानो स्क्रिप्टबाट फाइल लेख्नुहोस्, वा निर्माण खुला राखी WSL ले प्रतिलिपि गर्ने एडाप्टरसँग कर्पोरेट सर्भर छ भन्ने सुनिश्चित गर्नुहोस्। दोस्रोलाई हुक चाहिँदैन र निर्माणले VPN एडाप्टर छोड्दा असफल हुन्छ; दुवैलाई पहिले IPv6 द्वन्द्व समाधान गर्न आवश्यक छ।
Windows ले आफ्नै नाम नीतिहरू पनि लागू गर्छ, जस्तै प्रत्यय खोज सूची वा निश्चित डोमेनका लागि समाधान नीति, र एडाप्टर ठेगाना प्रतिलिपि गर्दा ती नियम पुनः उत्पन्न हुँदैनन्। यदि कुनै नाम Windows मा समाधान हुन्छ तर उही सर्भरसँग वितरणमा हुँदैन भने, टनेललाई दोष दिनु अघि प्रत्ययको व्यवस्थापन तुलना गर्नुहोस्।
प्याकेटले होइन, नामले परीक्षण गर्नुहोस्: getent hosts sensor-access0.corp.example रिजोल्भर स्ट्याकबाट जान्छ, तर ping क्यास गरिएको वा शाब्दिक ठेगानामा सफल हुन सक्छ। त्यसपछि जडान काटेर पुनः जोडेपछि दोहोर्याउनुहोस्, किनकि एकचोटि काम गरी पुनः सुरु हुँदा पुनः उत्पन्न हुने सेटिङ कहिल्यै सुधारिएको थिएन। अघिल्लो सामग्री सुरक्षित गर्नुहोस् र त्यस मेसिनमा बाटो कुन कम्पोनेन्टको स्वामित्वमा छ टिप्नुहोस्, ताकि अर्को परिवर्तन प्रमाणसँग सुरु होस्।