WSL 2-də resolv.conf: VPN qoşulanda DNS işləmir
WSL, görə bildiyi Windows adapterlərindən resolv.conf faylını yenidən yaradır, ona görə VPN-in resolveri heç vaxt gəlməyə bilər. Yaradılmanı dayandırın, sonra korporativ adı yoxlayın.
Distributiv daxilində gəzinti işləyir, lakin tunel qalxdığı anda ilk daxili host adı uğursuz olur. Refleks ictimai resolver əlavə etməkdir ki, bu da interneti bərpa edir və korporativ adı günün qalan hissəsi üçün əlçatmaz edir. WSL 2-də /etc/resolv.conf konfiqurasiya deyil, yaradılmış çıxışdır və başa düşülməyə dəyər mexanizm elə budur. Düzəliş daha yaxşı resolver deyil, faylın sahibliyidir.
Fayl konfiqurasiya olunmur, yaradılır
WSL 2 faylı işə salınarkən o anda görə bildiyi Windows adapterlərindən yazır və yuxarıda bunu deyən bir şərh çap edir. Sonradan VPN klienti adapter əlavə etdikdə və ya yenidən yazdıqda, distributiv mütləq heç nə yaratmır və fayl artıq mövcud olmayan şəbəkəni təsvir etməyə davam edir.
İkinci nasazlıq rejimi daha səssizdir: WSL serverləri yalnız bəzi adapterlərdən köçürə bilər. Fiziki adapterdə artıq IPv6 resolver varsa, VPN adapterinin verdiyi IPv4 serverləri əlavə olunmaq əvəzinə atıla bilər və fayl tam görünür, halbuki daxili adlara cavab verən dəqiq həmin serveri buraxır.
Windows görünüşünü Linux görünüşü ilə müqayisə edin
Redaktə etməzdən əvvəl hər iki tərəfi oxuyun. Distributiv daxilində faylın nə saxladığına və adi fayl, yoxsa keçid olduğuna baxın. Windows-da hər adapter üçün resolveri sadalayın, VPN-in yaratdığı adapter daxil olmaqla:
ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'
VPN adapteri korporativ serverləri göstərdikdə, Linux isə başqa bir şey göstərdikdə, uyğunsuzluq əlçatanlıqda deyil, yaradılmadadır. Adapterlər siyahısını ünvanlarla birlikdə müqayisə edin, çünki itkin adapter itkin serveri izah edir. Bu fərq WSL-i, yoxsa firewall-u düzəltdiyinizi həll edir və ikisinin ortaq heç nəyi yoxdur.
Yaradılmanı söndürün və öz faylınızı yazın
WSL-in faylı yenidən yazmasını dayandıran sənədləşdirilmiş bir ayar var və o, /etc/wsl.conf daxilindədir. Həmin fayla şəbəkə bölməsi əlavə edin:
[network]
generateResolvConf = false
Sonra distributivi Windows-dan wsl --shutdown ilə dayandırın və yenidən başladın. Əgər yol adi fayl deyil, simvolik keçiddirsə, öz məzmununuzu yazmazdan əvvəl keçidi silin, çünki keçid vasitəsilə yazmaq növbəti başlatmada yaradılmış hədəfi yenidən qura bilər. O andan fayl sizindir və onu heç nə yenidən yazmır.
nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate
Axtarış domeni olmadan, tam olmayan host adı ictimai köklə tamamlanır və belə domen yoxdur nəticəsi ilə qayıdır. timeout ölü ilk serverin hər sorğunu dayandırmasının qarşısını alır, attempts bir sorğunun neçə cəhd xərclədiyini məhdudlaşdırır və rotate təkrar cəhdləri həmişə yuxarıdan başlamaq əvəzinə paylayır. Güzəşt odur ki, fayl artıq resolver ünvanı sessiyalar arasında dəyişən VPN-i izləmir.
Yerini dəyişən resolveri idarə edin, sonra yoxlayın
Bəzi klientlər sessiyaya xas resolver verir, buna görə statik fayl növbəti bağlantıda sınır. İki yanaşma müdafiə oluna bilər. Ünvan dəyişdikcə faylı kiçik skriptlə yazın və ya yaradılmanı aktiv saxlayın və WSL-in köçürdüyü adapterin korporativ serveri daşıdığına əmin olun. İkinci üsul heç bir qarmaq tələb etmir və yaradılma VPN adapterini atlayanda uğursuz olur; hər ikisi hələ də əvvəlcə IPv6 ziddiyyətinin həllini tələb edir.
Windows həmçinin öz ad siyasətlərini tətbiq edir, məsələn şəkilçi axtarış siyahısı və ya müəyyən domenlər üçün həll siyasəti, və adapter ünvanlarını köçürmək bu qaydaları təkrar yaratmır. Bir ad Windows-da həll olunub, eyni serverlə distributivdə həll olunmursa, tuneli günahlandırmazdan əvvəl şəkilçi emalını müqayisə edin.
Paketlə deyil, adla yoxlayın: getent hosts sensor-access0.corp.example resolver yığınından keçir, ping isə keşlənmiş və ya hərfi ünvana qarşı uğurlu ola bilər. Sonra əlaqəni kəsib yenidən qoşduqdan sonra təkrarlayın, çünki bir dəfə işləyib davam etdikdə yenidən yaradılan ayar heç vaxt düzəldilməmişdi. Əvvəlki məzmunu saxlayın və o maşında yolun hansı komponentə aid olduğunu qeyd edin ki, növbəti dəyişiklik sübutla başlasın.