WSL2: Ağ yapılandırması, NAT ve yansıtma modları için gelişmiş kılavuz

Son Güncelleme: 2 Mart 2026
  • WSL2, NAT veya yansıtma modları aracılığıyla yapılandırılabilen ve Hyper-V tarafından yönetilen, kendi ağına sahip bir sanal makine kullanır.
  • .wsl.conf ve .wslconfig dosyalarının birleşimi, otomatik bağlamalardan ve systemd'den belleğe, işlemcilere ve ağ politikalarına kadar her şeyi ayarlamanıza olanak tanır.
  • DNS tünelleme, otomatik proxy ve Hyper-V güvenlik duvarı gibi özellikler, Windows 11'de VPN'ler, proxy'ler ve güvenlik ile entegrasyonu iyileştirir.
  • Dikkatli bir yapılandırmayla WSL2, geliştirme, konteynerler ve güvenli kendi kendine barındırma için sağlam bir platform haline gelir.

WSL2'de ağ yapılandırması

WSL2, Linux'un Windows ile entegrasyon şeklini tamamen değiştirdi.Özellikle ağla ilgili her şeyde: Artık kendi ağ yığınına, kendi IP adresine ve ayrı erişim kurallarına sahip hafif bir sanal makinemiz var. Bu, geliştirme, test, konteynerler ve kendi kendine barındırma ortamları için birçok olanak sunuyor, ancak WSL1'de olduğu gibi hizmetlere erişilemez hale geldiğinde endişeleri de beraberinde getiriyor.

WSL2 ağ yapılandırmasını, NAT ve yansıtma modlarını, .wslconfig ve wsl.conf dosyalarının kullanımını ve bunların güvenlik duvarları, VPN'ler, Docker veya Tailscale gibi araçlarla nasıl etkileşim kurduğunu anlamak. Bu, baş ağrılarından kaçınmanın anahtarıdır. Gelin, bu kurulumun nasıl çalıştığını, hizmetlerin Windows'a ve yerel ağa nasıl açılacağını, doğru IP adreslerini almak için hangi komutların kullanılacağını ve ortamınızı ince ayar yaparak istikrarlı ve her şeyden önemlisi güvenli hale getirmek için hangi gelişmiş yapılandırma seçeneklerine sahip olduğunuzu adım adım görelim.

WSL2'de ağ aslında nasıl çalışıyor?

WSL2 artık WSL1 gibi ana bilgisayar ağ yığınını paylaşmıyor.Bunun yerine, her Linux dağıtımını Hyper-V tarafından yönetilen küçük bir sanal makine içinde çalıştırır. Bu sanal makinenin kendi sanal adaptörü vardır (genellikle eth0) ve dahili bir sanal anahtar tarafından atanan özel bir IP adresi.

Varsayılan modunda, WSL2 NAT tabanlı bir mimari kullanır. (Ağ Adresi Çevirisi). Windows yönlendirici/ana bilgisayar görevi görür ve Linux dağıtımı genellikle belirli bir aralıkta bulunan özel bir alt ağda yer alır. 172.16.0.0/12Bu alt ağ, yeniden başlatmalar veya WSL yeniden başlatmalarından sonra değişebilir; bu durum, statik güvenlik duvarı kurallarını yapılandırırken birden fazla kişiyi çıldırtmıştır.

Pratik açıdan bakıldığında, bu, WSL2 dağıtımınızın IP adresinin ne sabit olduğu ne de yerel ağdan doğrudan erişilebilir olduğu anlamına gelir. WSL1'de olduğu gibi, varsayılan olarak Windows ile WSL2 arasında yalnızca yönlendirme kuralları ve NAT aracılığıyla bağlantı kurulur ve yerel ağa erişim için ek adımlar veya yansıtma modunun kullanılması gerekir.

Bu temel mimariye ek olarak, Windows 11 22H2 ve sonraki sürümler yeni ağ yetenekleri de ekler. (Yansıtmalı mod, DNS tünelleme, otomatik proxy, Hyper-V güvenlik duvarı vb.) gibi özellikler global dosyadan kontrol edilir. .wslconfigLinux içindeki bazı seçenekler ise şu şekilde yönetilir: /etc/wsl.conf.

WSL2'de IP adreslerini tanımlayın.

WSL2 ile çalışmak, iki IP senaryosu arasında net bir ayrım yapmayı gerektirir.Linux dağıtımının IP adresine ve Linux'tan görüntülenen Windows ana bilgisayarının IP adresine ihtiyaç duyduğunuzda kullanılır. Her biri farklı bir komutla çözümlenir.

Senaryo 1: Windows üzerinden WSL2 dağıtımının IP adresini öğrenmek istiyorsunuz. Ana bilgisayarda çalışan bir uygulamanın (örneğin, bir istemci, tarayıcı veya test aracı) Linux içinde çalışan bir servise bağlanmasına izin vermek için, Windows'ta (CMD veya PowerShell kullanarak) aşağıdaki komutları çalıştırabilirsiniz:

wsl.exe --distribution <DistroName> hostname -i

Varsayılan dağıtımı kullanmak istiyorsanız, dağıtım parametresini atlayabilirsiniz. ve sadece arayın wsl.exe hostname -iBu komut arka planda Linux'ta çalıştırılır. hostname --ip-addresses ve örneğin IP adresini döndürür. Tipik bir sonuç şöyle görünebilir:

172.30.98.229

Senaryo 2: Linux dağıtımından Windows ana bilgisayarının IP adresini bilmeniz gerekiyor.Örneğin, bir WSL2 uygulamasını Windows üzerinde yerel olarak çalışan bir sunucuya (Node.js, SQL Server, Caddy, vb.) bağlamak için Linux kabuğunda şunları kullanabilirsiniz:

ip route show | grep -i default | awk '{ print $3 }'

Çıktı, WSL2 sanal makinesinin varsayılan ağ geçidi olacaktır.Bu, Linux'tan bakıldığında Windows sunucusunun IP adresine karşılık gelir, örneğin:

172.30.96.1

Bu değer (örneğin, 172.30.96.1Linux istemcilerinizin işaret etmesi gereken adres )'dir. Klasik NAT modundayken Windows ana bilgisayarında çalışan hizmetlere erişmek istediğinizde.

NAT modu: WSL2 ağının varsayılan davranışı

WSL2, varsayılan olarak NAT modunda çalışır ve birçok basit geliştirme ortamı için bu fazlasıyla yeterlidir.Önemli olan, "kendi başına" neyin işe yaradığını ve neyin yaramadığını anlamaktır, böylece zamanınızı hayaletlerin peşinden koşarak boşa harcamazsınız.

Windows'tan localhost kullanarak Linux hizmetlerine erişimWSL2 dağıtımınızda bir ağ uygulaması (örneğin, bir Node.js sunucusu, bir Flask sunucusu, Linux üzerinde bir SQL Server) çalıştırıyorsanız, ona Windows'tan şu şekilde erişebilirsiniz: localhost:puertoWindows, gelen bağlantıları otomatik olarak WSL2 sanal makinesinin dahili IP adresine yönlendirir.

Linux'tan Windows üzerinde çalışan hizmetlere erişimİşte işler burada değişiyor. WSL2'den ana bilgisayardaki bir ağ uygulamasına (örneğin Windows'ta bir Node.js sunucusu, SQL Server veya Caddy) ulaşmak için, varsayılan yönlendirme komutuyla elde edilen, Linux'tan görülen ana bilgisayarın IP adresini kullanmanız gerekir:

ip route show | grep -i default | awk '{ print $3 }'

Bu IP adresiyle Linux'tan sunucudaki herhangi bir servise bağlanabilirsiniz., Örneğin http://172.30.96.1:3000 Windows sunucunuz tüm arayüzlerde 3000 numaralı bağlantı noktasında dinleme yapıyorsa.

Uzak IP adresleri (localhost değil) kullanarak bağlandığınızda, uygulamalar bunları LAN bağlantısı olarak görür.Bu, birçok sunucunun dinleme yapacak şekilde yapılandırılması gerektiği anlamına gelir. 0.0.0.0 yerine 127.0.0.1Örneğin, Flask ile şunları başlatabilirsiniz:

  Cep telefonunuzun ekranını bilgisayarınıza yansıtmanın adım adım rehberi.

app.run(host='0.0.0.0')

Bu değişiklik erişilebilirliği artırıyor ancak güvenliğe odaklanmayı gerektiriyor.Çünkü yalnızca bilgisayarın kendisinden değil, yerel ağınızdan gelen bağlantılara da izin veriyorsunuz.

NAT kullanarak yerel alan ağı (LAN) üzerinden WSL2'ye erişim

WSL1'den WSL2'ye geçişte en can sıkıcı değişikliklerden biri, dağıtımlara artık yerel ağdan doğrudan erişilememesidir.WSL1'de, Windows'unuz ağda görünür durumdaysa, dağıtımın hizmetleri bu görünürlüğü neredeyse zahmetsizce devralıyordu.

WSL2'de sanal makinenin kendine ait özel bir IP adresi vardır ve yerel ağda otomatik olarak duyurulmaz.Eski davranışa benzer bir şey elde etmek için, NAT modunda, herhangi bir Hyper-V sanal makinesinde olduğu gibi Windows'ta bir port proxy'si oluşturmanız gerekir.

Windows'ta bunun için klasik bir araç bulunmaktadır: netsh interface portproxyBir sunucu portunu WSL2 IP/portuna yönlendirmek için tipik bir komut şu şekildedir:

netsh interface portproxy add v4tov4 listenport=<puertoHost> listenaddress=0.0.0.0 connectport=<puertoWSL> connectaddress=(wsl hostname -I)

Pratikte, işaretleyicileri belirli değerlerle değiştirmeniz gerekir., örneğin:

netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100

burada listenaddress=0.0.0.0 Bu, Windows'un ana bilgisayarın tüm IPv4 adreslerini dinleyeceği anlamına gelir.ve 4000 numaralı porttan gelenleri iletecektir. 192.168.101.100:4000Bu, aşağıdaki komutla elde edilen WSL2 IP adresi olacaktır:

  • wsl hostname -I Bu, size WSL2 sanal makinesi içindeki Linux dağıtımının IP adresini verir.
  • cat /etc/resolv.conf Bu, WSL2'deki Windows Vista ana bilgisayarının IP adresini ortaya çıkarır.

Bu teknikle, WSL2 üzerinde çalışan bir hizmete yerel ağdaki herhangi bir bilgisayardan erişim sağlayabilirsiniz.Windows güvenlik duvarının izin vermesi ve doğrudan ana bilgisayarı değil, bir sanal makinenin hizmetini açığa çıkardığınızdan emin olmanız koşuluyla.

IPv6 ve modern ağ özellikleri

WSL2, özellikle modern ortamlarda, VPN'lerde ve kurumsal ağlarda önemli olan IPv6 ile de çalışabilir.Linux'ta adresleri yönetmek için kullanılan temel komutlar, IPv4'tekilerle eşdeğerdir:

  • wsl hostname -i Windows üzerinden WSL2 dağıtımının IP adresini görüntüleme
  • ip route show | grep -i default | awk '{ print $3 }' Linux'tan Windows ana bilgisayarının IP adresini almak için

IPv6 ve VPN desteğindeki kalite artışının gerçekten fark edildiği yer, aynalı ağ modudur.Windows 11 22H2 ve sonraki sürümlerinde bulunan bu özelliği daha sonra ayrıntılı olarak inceleyeceğiz.

Yansıtılmış ağ modu: Windows arayüzlerinin Linux'ta yansıtılması

Windows 11 22H2 veya üzeri sürümlere sahip bilgisayarlarda "yansıtılmış" ağ modunu etkinleştirebilirsiniz. WSL2'de model tamamen değişiyor: klasik NAT yerine, Linux, Windows ağ arayüzlerini yansıtılmış olarak "görüyor".

Bunu etkinleştirmek için dosyayı düzenlemeniz gerekiyor. .wslconfig kullanıcınızıniçinde olan %UserProfile%\.wslconfigYönetici ayrıcalıklarına sahip bir PowerShell'den şu komutla açabilirsiniz:

notepad $env:USERPROFILE\.wslconfig

İçeriye, yansıtmalı modu etkinleştirmek için [wsl2] bölümünü ekleyin (veya değiştirin).:

[wsl2]
networkingMode=mirrored

Dosya kaydedildikten sonra, değişikliklerin geçerli olması için WSL2'yi yeniden başlatmanız gerekir.Örneğin, şu şekilde:

wsl --shutdown

Yeniden başlattığınızda, WSL yeni aynalı ağ mimarisini kullanacaktır.Bu da beraberinde birçok önemli avantaj getiriyor:

  • Yerel IPv6 desteği ve kurumsal ağlar ve VPN'lerle geliştirilmiş entegrasyon.
  • Linux'tan Windows hizmetlerine bağlanma yeteneği 127.0.0.1 doğrudan (izin verilmemesine rağmen) ::1 (örneğin bunun için IPv6 loopback gibi)
  • Windows-Linux entegrasyonunda çoklu yayın desteği iyileştirildi.
  • Netsh portproxy komutuna gerek kalmadan LAN üzerinden WSL'ye doğrudan erişim.Windows makinesinin kendi IP adresini kullanarak

Bu modu etkinleştirmek, WSL2 NAT ile ilgili birçok klasik sorunu çözmektedir. Ayrıca, Windows 11'in güncel bir sürümünü kullanabileceğiniz çoğu modern geliştirme ve kendi sunucunuzda barındırma ortamında önerilen seçenektir.

WSL2'de DNS tünellemesi ve proxy kullanımı

Windows 11 22H2 ve sonraki sürümlerinde, WSL2'den isim çözümlemesi de önemli ölçüde elden geçirildi.Buradaki kilit nokta, tanımlanan iki işlevsellikte yatmaktadır. .wslconfig: dnsTunneling y autoProxy.

Seçimi dnsTunneling Bu özellik, [wsl2] bölümünde varsayılan olarak etkinleştirilmiştir. Bu, Linux DNS isteklerinin normal ağ paketleri olarak gönderilmek yerine sanallaştırma özelliği aracılığıyla işlenmesine olanak tanır. Bu, VPN'lerle ve ana bilgisayardaki karmaşık ağ yapılandırmalarıyla uyumluluğu büyük ölçüde artırır.

Onun parçası için, autoProxy=true WSL'yi Windows HTTP proxy ayarlarını kullanmaya zorlarSunucu kurumsal veya güvenlik proxy'sinin arkasındaysa, WSL2 ortam değişkenleriyle manuel olarak uğraşmanıza gerek kalmadan otomatik olarak proxy'yi devralır.

Örneğin, buna benzer bir şeyiniz olabilir. .wslconfig:

[wsl2]
dnsTunneling=true
autoProxy=true

Bu, WSL2 ağının ana bilgisayar yapılandırmasıyla tutarlı bir şekilde davranmasını sağlar.Özellikle sıkı ağ ve filtreleme politikalarına sahip şirketlerde oldukça kullanışlıdır.

Hyper-V Güvenlik Duvarı ve Güvenli Hizmetin Açığa Çıkması

Modern ortamlarda, WSL2 ağı ayrıca özel bir güvenlik duvarından da geçer.Windows 11 22H2 üzerinde WSL 2.0.9 sürümünden itibaren Hyper-V güvenlik duvarı özelliği varsayılan olarak etkinleştirilmiştir ve bu da sanal makine trafiği (WSL2 trafiği dahil) için ek bir filtreleme katmanı sağlar.

Eğer yansıtma modunda çalışıyorsanız ve WSL2 hizmetlerini kalıcı olarak yerel ağa (LAN) açmak istiyorsanız... (Örneğin, API'ler, kontrol panelleri veya kendi sunucunuzda barındırdığınız hizmetler) için güvenlik duvarı kurallarının buna izin verdiğinden emin olmanız gerekir.

Yönetici ayrıcalıklarına sahip PowerShell'den izlenebilecek mantıklı bir yaklaşım, özel ağlar için bir Hyper-V kuralı oluşturmaktır.:

  PhotoGIMP yaması Windows ve Mac'e nasıl yüklenir

New-NetFirewallHyperVRule -DisplayName "WSLPrivateInboundRule" -Profiles Private -Direction Inbound -Action Allow -VMCreatorId ((Get-NetFirewallHyperVVMCreator).VMCreatorId)

Herhangi bir nedenle söz konusu Hyper-V korumasını devre dışı bırakmak isterseniz (Daha az tavsiye edilen bir şey), şunları kullanabilirsiniz:

Set-NetFirewallHyperVVMSetting -Name ((Get-NetFirewallHyperVVMCreator).VMCreatorId) -Enabled False

Amaç, güvenlik duvarını mümkün olduğunca aktif tutmaktır.Kuralları yalnızca özel ağlarla ve gerçekten ihtiyaç duyduğunuz portlarla sınırlayın ve toplu devre dışı bırakmayı son çare olarak saklayın; her şey çalışmaya başladığı anda yapılandırmayı tekrar güçlendirmeyi hedefleyin.

WSL2 ağ mimarisi, X11 ve 172.16.0.0/12 aralıkları

WSL2 ağının detaylarını ortaya koyan klasik bir örnek, X11 üzerinden grafik uygulamalarının kullanılmasıdır.Örneğin, Windows'ta Xming'i başlatmak ve DISPLAY aracılığıyla Linux uygulamaları göndermek.

WSL1'den WSL2'ye yükseltme yaparken birçok kullanıcı X'in çalışmayı durdurduğunu fark eder. Çünkü ağ "paylaşımlı" olmaktan çıkar ve aralıkları şu şekilde olan sanal bir NAT ağına dönüşür: 172.16.0.0/12Bu durum, her Windows veya WSL yeniden başlatılmasından sonra da değişebilir.

WSL2'den Xming ile X'i tekrar çalışır hale getirmek için, genellikle kullanılan yöntem, Linux'un gördüğü Windows IP adresini elde etmektir. kullanma:

var olma

DISPLAY=$(grep nameserver /etc/resolv.conf | cut -d' ' -f2):0

Buna paralel olarak, söz konusu NAT alt ağından gelen X11 trafiğine izin vermek için Windows güvenlik duvarının ayarlanması gerekmektedir.Tipik bir yaklaşım, Xming kuralını aralığı ekleyerek düzenlemektir. 172.16.0.0/12 TCP+UDP 6000'de.

Birçoğu Xming kimlik doğrulamasını bu seçenekle devre dışı bırakıyor. -acBu, o ağdan gelen herhangi bir istemci X'e "kapıyı açar". Çalışıyor, ancak güvenlik açısından oldukça şüpheli, bu nedenle daha sınırlı çözümleri veya Windows 11'deki WSLg'yi (entegre GUI uygulamaları) kullanmayı düşünmekte fayda var.

wsl.conf ve .wslconfig: Gelişmiş WSL2 yapılandırması

WSL, hem sanal makinenin hem de her bir dağıtımın davranışını kontrol eden iki temel yapılandırma dosyası sunar.: /etc/wsl.conf (dağıtım yoluyla) ve %UserProfile%\.wslconfig (Tüm WSL2 dağıtımları için geçerli).

wsl.conf Linux dağıtımının içinde yaşar, /etc/wsl.confBu, söz konusu dağıtım için yerel seçenekleri yapılandırmak için kullanılır: otomatik bağlama, oluşturma hosts y resolv.confWindows, varsayılan kullanıcı, systemd vb. ile birlikte çalışabilirlik.

.wslconfig Bu dosya Linux dışında, Windows kullanıcı profiline kaydedilir. (C:\Users\<Usuario>\.wslconfig) ve WSL2'yi çalıştıran sanal makinenin global parametrelerini kontrol eder: bellek, işlemciler, çekirdek, ağ modu, güvenlik duvarı, DNS, sanal disk boyutu, GUI desteği vb.

Ayarlar değiştirilirken uygulanan "8 saniye kuralı" ilginç bir ayrıntı.Bu dosyalardan herhangi birini değiştirdiğinizde, WSL sanal makinesinin tamamen kapatıldığından emin olmalısınız. Dağıtım penceresini kapatsanız bile, birkaç saniye daha bellekte kalabilir.

Bir alt sistemi yeniden başlatmaya zorlamak için şunu kullanabilirsiniz::

  • wsl --list --running Aktif dağıtımların olup olmadığını kontrol etmek için
  • wsl --shutdown tüm dağıtımları aynı anda kapatmak
  • wsl --terminate <distroName> belirli bir dağıtımı durdurmak

Yapılandırma değişiklikleri yalnızca WSL kapatılıp yeniden başlatıldığında uygulanır.Birçok kişinin gözden kaçırdığı ve yaptıkları ayarlamaların "işe yaramadığını" düşündüğü bir şey.

Bölümlere göre ana wsl.conf seçenekleri

dosya wsl.conf Klasik .ini formatından esinlenilmiştir ve bölümler ile anahtarlar içerir.Ana bölümler şunlardır: [automount], [network], [interop], [user], [boot], [gpu] y [time].

En [automount] Linux'ta Windows sürücülerinin nasıl bağlanacağını siz kontrol edersiniz. (genellikle düşük) /mnt):

  • enabled (mantıksal değer, varsayılan değer doğru)Doğruysa, C:/, D:/ vb. otomatik olarak bağlanır. /mnt/c, /mnt/d...
  • mountFsTab (bool)Eğer doğruysa, işleme alınır. /etc/fstab Dağıtımı başlatırken.
  • root (zincir): Sürücülerin bağlanacağı kök dizin, örneğin /windir/ sahip olmak /windir/c.
  • options (virgülle ayrılmış liste): DrvFs'ye özgü parametreler, örneğin metadata, uid, gid, umask, fmask, dmask o case.

DrvFs, Windows ve Linux arasında köprü görevi gören dosya sistemidir.İzin kontrolü, meta veri ve büyük/küçük harf duyarlılığı ile WSL'den NTFS'ye erişmek üzere tasarlanmıştır.

Bölümünde [network] Ağ dosyalarının otomatik oluşturulmasını ayarlarsınız.:

  • generateHostsDoğruysa, WSL otomatik olarak oluşturur. /etc/hosts.
  • generateResolvConfEğer doğruysa, WSL oluşturur /etc/resolv.conf eski DNS ile.
  • hostnameDağıtımın kullanacağı ana bilgisayar adı.

bölüm [interop] Windows ile birlikte çalışabilirliği kontrol eder.:

  • enabledWSL üzerinden Windows işlemlerini başlatma özelliğini etkinleştirir veya devre dışı bırakır.
  • appendWindowsPath: Windows yollarının eklenip eklenmeyeceğine karar verir $PATH Linux.

En [user] Dağıtımı başlatırken varsayılan olarak kullanılacak kullanıcıyı belirtebilirsiniz.:

  • default: WSL'de varsayılan olarak başlatılacak kullanıcı adı.

bölüm [boot] Özellikle Windows 11 ve Server 2022'de kullanışlıdır. WSL içerisinde Docker gibi hizmetleri otomatik olarak başlatmak için:

  • command: WSL başlatılırken yürütülecek komut dizisi, örneğin service docker start.
  • protectBinfmt: systemd etkinleştirildiğinde systemd birimlerinin oluşturulmasını korur.

Ayrıca şu gibi bölümleriniz de var: [gpu] (Linux'tan Windows GPU'ya erişimi etkinleştirin) ve [time] Windows ile saat dilimini senkronize etmekBu, yaz saati uygulamasına geçildiğinde veya seyahat edildiğinde ortaya çıkabilecek sorunları önler.

.wslconfig: WSL2 sanal makine denetimi

WSL.conf her dağıtımın davranışını ince ayar yaparken, .wslconfig ise tüm WSL2 dağıtımları tarafından paylaşılan sanal makineyi ince ayar yapmanıza olanak tanır.Bu dosya yalnızca WSL2 olarak çalışan dağıtımlar tarafından dikkate alınır, WSL1 tarafından değil.

içinde .wslconfig Ana bölüm şudur: [wsl2]Anahtar parametreleri tanımladığınız yer:

  • kernel y kernelModulesWindows'tan özel bir Linux çekirdeğine ve modüllerine giden mutlak yollar.
  • memory: Sanal makine bellek sınırı (varsayılan olarak ana bilgisayar RAM'inin %50'si), örneğin 4GB.
  • processors: Sanal makineye atanan mantıksal işlemci sayısı.
  • localhostForwarding: WSL2'deki açık portlara Windows üzerinden erişime olanak tanır. localhost.
  • swap y swapFileSanal makine için takas dosyasının boyutu ve yolu.
  • guiApplications: GUI uygulama desteğini (WSLg) etkinleştirir veya devre dışı bırakır.
  • dnsProxyNAT modundayken, Linux DNS sunucusunun ana bilgisayarın NAT örneği mi yoksa Windows DNS'inin bir kopyası mı olacağına karar verir.
  • networkingModeBurada şunlar arasından seçim yapabilirsiniz: none, nat, bridged (modası geçmiş), mirrored o virtioproxy.
  • firewall, dnsTunneling y autoProxyWSL ağını Windows politikalarıyla daha iyi entegre etmek için ele aldığımız seçenekler.
  • defaultVhdSize: Dağıtımın dosya sisteminin depolandığı VHD'nin maksimum boyutu (varsayılan 1 TB).
  DHCP protokolüne ilişkin eksiksiz kılavuz: çalışma, avantajlar ve güvenlik

Ayrıca bir bölüm var [experimental] özelliklerin test aşamasında etkinleştirildiği yer gibi:

  • autoMemoryReclaimOtomatik bellek kurtarma ayarları (devre dışı, kademeli, dropCache).
  • sparseVhdAlan tasarrufu sağlamak için seyrek sanal disklerin oluşturulması.
  • bestEffortDnsParsing y dnsTunnelingIpAddressDNS tünellemesi için ince ayar.
  • ignoredPortsYansıtma modundayken, Linux uygulamalarının Windows'ta kullanımda olsalar bile kullanabileceği portlar.
  • hostAddressLoopbackBu özellik, sunucu ve konteynerin, sunucunun yerel IP adreslerini kullanarak yansıtma modunda bağlanmasına olanak tanır.

.wslconfig dosyasını doğru şekilde yapılandırmak, kaynakları aşırı tüketen bir sanal makine ile Windows sisteminiz ve ağınızla iyi çalışan optimize edilmiş bir ortam arasındaki farkı yaratır.Özellikle yoğun iş yükleriyle, konteynerlerle veya aynı anda birden fazla Linux dağıtımıyla çalışıyorsanız bu durum geçerlidir.

Tailscale ile kendi sunucunuzda barındırma için WSL2, Docker ve ağ iletişimi.

Çok pratik bir örnek olarak, WSL2'yi Windows sunucularında (hatta Windows Server 2025'te bile) kendi kendine barındırma platformu olarak kullanmak verilebilir.Ubuntu'yu WSL2 üzerinde, Docker Engine'i (Docker Desktop olmadan), Tailscale'i ve Caddy gibi bir ters proxy'yi birleştirerek n8n veya Supabase gibi hizmetleri kullanıma sunmak.

Amaç, sunuculardaki Docker Desktop sorunlarından kaçınarak WSL2 içinde istikrarlı bir Docker ortamı oluşturmaktır.Docker Engine'i doğrudan Ubuntu (WSL2) üzerine kurarken, konteyner ağı WSL2 ağına bağlıdır ve bu da .wslconfig dosyasında tanımlanan NAT veya yansıtma moduna bağlıdır.

WSL2 üzerine Tailscale yüklendiğinde, hizmetlerinizi mesh VPN üzerinden yayınlayabilirsiniz. Yönlendiricide port açmadan ve Caddy'yi ters proxy olarak kullanarak TLS sertifikalarını, rotaları ve konteynerler arasında hafif yük dengelemesini merkezileştirmek.

Temiz, öngörülebilir ve güvenli bir ağ sürdürmek için tavsiye edilir.:

  • Tek bir tutarlı ağ modu (NAT veya aynalı) seçin ve bunu belgeleyin.
  • Windows ve WSL2 arasında bağlantı noktası çakışmalarından kaçının., güvenerek ignoredPorts Eğer aynalı ekran kullanıyorsanız
  • Servis erişimini yalnızca Tailscale veya Caddy aracılığıyla kontrol edin.güvenlik duvarında portları "varsayılan olarak" açmak yerine
  • Docker, Tailscale ve Caddy'nin başlatılmasını otomatikleştirin. [boot] wsl.conf dosyasında üretime daha yakın bir ortama sahip olmak

Bu mimariyle WSL2, sadece bir geliştirme aracı olmaktan çıkıp oldukça ciddi bir kendi kendine barındırma platformu haline gelebilir.Sınırlamalarını (Hyper-V üzerinden sanallaştırma, ek ağ katmanı vb.) kabul edip dikkatlice yapılandırdığınız sürece.

Geliştirme ve test için WSL2 ağ iletişimi konusunda en iyi uygulamalar

İnce ayarların yanı sıra, WSL2 ağıyla rahatça çalışmanıza yardımcı olacak bir dizi kılavuz da bulunmaktadır. Sürekli IP adresleri, portlar ve güvenlik duvarlarıyla uğraşmadan.

Geliştirme hizmetleri için yüksek port numaraları (1024'ün üzeri) kullanın. Ayrıcalıklı veya yoğun kullanılan portlardan kaçının; bu, çakışmaları en aza indirir ve ek ayrıcalıklara duyulan ihtiyacı ortadan kaldırır.

Kod ve verilerin Linux dosya sistemi içinde bulunduğundan emin olun. (sen ~/ (veya dahili rotalar) doğrudan üzerinde çalışmak yerine /mnt/cÇünkü WSL'den NTFS'ye erişim daha yavaştır ve yoğun G/Ç gerektiren hizmetleri olumsuz etkileyebilir.

Komut dosyaları kullanarak ağ ayarlarını ve yönlendirme kurallarını otomatikleştirin. PowerShell ve Bash'te: örneğin, WSL2 başlatıldığında onu yapılandıran bir betik. netsh portproxy (NAT'ı kullanmaya devam ederseniz) veya yansıtma kullanırken güvenlik duvarı kurallarını kontrol edin.

IP adreslerini değiştirmeye güvenmekten kaçının. Dahili sanal anahtar tarafından oluşturulmuştur. Mümkün olduğunca, şunlarla çalışın: localhostana bilgisayar adları veya girişler /etc/hosts Hizmetleriniz için, IP değişikliğinin test altyapınızın yarısını bozmasını önlemek amacıyla.

Profesyonel veya yarı prodüksiyon ortamlarında, WSL'nin otomatik yönlendirme özelliğine körü körüne güvenmek en iyisi değildir.Nelerin nerede ve nasıl açıkta olduğunu tam olarak bilmek için portları, proxy'leri ve güvenlik duvarı kurallarını açıkça yapılandırın.

Doğru şekilde yapılandırıldığında, WSL2, gelişmiş geliştirme, API testleri, konteynerlerle çalışma ve dağıtılmış ortamların simülasyonu için mükemmel, izole edilmiş ancak esnek bir ağ sunar.Buradaki kilit nokta, ağ modlarını (NAT ve yansıtmalı), wsl.conf ve .wslconfig dosyalarını ve güvenlik duvarı ile yığınınızdaki araçlarla (Docker, Tailscale, ters proxy'ler) olan etkileşimi iyi bilmektir; böylece Windows ve Linux aynı makinede çakışan portlar olmadan veya güvenliği tehlikeye atmadan çalışabilir.