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, özellikle ağ ile ilgili her konuda Linux'un Windows ile entegrasyonunu tamamen değiştirdi : Artık kendi ağ yığınına, 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'nin ağ yapılandırmasını, NAT ve yansıtma modlarını, .wslconfig ve wsl.conf kullanımını ve bunların güvenlik duvarları, VPN'ler, Docker ve Tailscale gibi araçlarla nasıl etkileşim kurduğunu anlamak, baş ağrılarından kaçınmanın anahtarıdır. Bu kurulumun nasıl çalıştığını, hizmetlerin Windows ve LAN'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 önce güvenli hale getirmek için hangi gelişmiş yapılandırma seçeneklerine sahip olduğunuzu adım adım göreceğiz.

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 WSL1'de olduğu gibi kararlı olmadığı veya yerel ağdan doğrudan erişilemediği anlamına gelir: 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 ihtiyaç duyduğunuz durum ve Linux'tan bakıldığında Windows ana bilgisayarının IP adresine ihtiyaç duyduğunuz durum. Her biri farklı bir komutla ele alınır.

Senaryo 1: Windows'tan, ana bilgisayardaki bir uygulamanın (örneğin, bir istemci, tarayıcı veya test aracı) Linux içinde çalışan bir hizmete bağlanabilmesi için WSL2 dağıtımının IP adresini öğrenmek istiyorsunuz. Bunu yapmak için Windows'ta (CMD veya PowerShell) 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, örneğin bir WSL2 uygulamasının Windows üzerinde yerel olarak çalışan bir sunucuya (Node.js, SQL Server, Caddy, vb.) bağlanabilmesi için Windows ana bilgisayarının IP adresini bilmeniz gerekir. 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 da Linux'tan bakıldığında Windows ana bilgisayarının 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 burada işler 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 path 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:

  Telekomünikasyonda Taşıyıcı Nedir?

app.run(host='0.0.0.0')

Bu değişiklik erişilebilirliği artırıyor ancak güvenlik konusunda dikkatli olunmasını gerektiriyor , çünkü yalnızca cihazın kendisinden değil, yerel ağınızdan da bağlantılara 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ımların artık LAN'dan doğrudan erişilebilir olmamasıdır . WSL1'de, Windows sisteminiz 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 LAN'da otomatik olarak duyurulmaz . Eski davranışa benzer bir şey elde etmek için, NAT modunda, tıpkı 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ştirirsiniz , ö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 , Windows güvenlik duvarı izin verdiği ve bir sanal makinenin hizmetini, doğrudan ana bilgisayarı değil, açığa çıkardığınızdan emin olduğunuz sürece, WSL2 üzerinde çalışan bir hizmeti yerel ağdaki herhangi bir bilgisayardan erişilebilir hale getirebilirsiniz .

IPv6 ve modern ağ özellikleri

WSL2, özellikle modern ortamlarda, VPN'lerde ve kurumsal ağlarda önemli olan IPv6 ile de çalışabilir . Adresleri yönetmek için Linux'taki 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ğinde asıl kalite sıçraması, Windows 11 22H2 ve sonraki sürümlerinde bulunan ve daha sonra ayrıntılı olarak inceleyeceğimiz aynalı ağ modunda gerçekleşiyor.

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

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

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 komutla:

wsl --shutdown

WSL'yi yeniden başlattığınızda, birçok önemli avantaj sağlayan yeni aynalı ağ mimarisini kullanacaktır:

  • 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, klasik WSL2 NAT sorunlarının çoğunu çözer ve güncellenmiş bir Windows 11 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 ; bu da özellikle katı ağ ve filtreleme politikalarına sahip şirketler için faydalı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'de WSL 2.0.9'dan itibaren, Hyper-V güvenlik duvarı özelliği varsayılan olarak etkinleştirilir ve VM trafiği (WSL2 trafiği dahil) için ek bir filtreleme katmanı ekler.

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

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 :

  Windows 11'in gizli özellikleri ve ViVeTool ile bunların kilidini nasıl açabilirsiniz?

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

Eğer herhangi bir nedenle bu belirli Hyper-V korumasını devre dışı bırakmak isterseniz (ki bu daha az tavsiye edilir), şunu kullanabilirsiniz:

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

Amaç, güvenlik duvarını mümkün olduğunca aktif tutmak , kuralları özel ağlarla ve yalnızca gerçekten ihtiyaç duyduğunuz portlarla sınırlamak ve toplu devre dışı bırakmayı son çare olarak saklamak ve her şey çalışır duruma gelir gelmez yapılandırmayı tekrar güçlendirmektir.

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 grafiksel uygulamaların kullanılmasıdır ; örneğin, Windows'ta Xming'i başlatmak ve DISPLAY aracılığıyla Linux uygulamalarını 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 şu komutla elde etmektir :

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.

İlginç bir ayrıntı da ayarları değiştirirken geçerli olan "8 saniye kuralı" : Bu dosyalardan herhangi birini değiştirdiğinizde, WSL sanal makinesinin gerçekten kapandığından emin olmalısınız. Dağıtım penceresini kapatsanız bile, birkaç saniye daha bellekte kalabilir.

Alt sistemin yeniden başlatılmasını 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

WSL kapatılıp yeniden başlatıldığında yapılandırma değişiklikleri gerçekten uygulanır ; birçok kişi bunu gözden kaçırır ve ayarlarının "çalışmadığını" düşünür.

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, WSL'den NTFS'ye izin kontrolü, meta veri ve büyük/küçük harf duyarlılığı ile erişim sağlamak üzere tasarlanmış bir dosya sistemidir .

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 dosyası her dağıtımın davranışını ince ayarlarken, .wslconfig dosyası tüm WSL2 dağıtımları tarafından paylaşılan sanal makineyi ince ayarlamanıza olanak tanır . Bu dosya yalnızca WSL2 olarak çalışan dağıtımlar için geçerlidir, WSL1 için geçerli değildir.

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).
  Windows'ta Çoklu Görev: İpuçları, Özellikler ve Gelişmiş Araçlar

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 , özellikle ağır iş yükleri, konteynerler veya aynı anda birden fazla dağıtımla çalışıyorsanız, kaynakları aşırı tüketen bir sanal makine ile Windows ve ağınızla iyi çalışan optimize edilmiş bir ortam arasındaki farkı yaratır .

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

Çok pratik bir örnek, Windows sunucularında (hatta Windows Server 2025'te bile) WSL2'yi kendi kendine barındırma platformu olarak kullanmaktır ; bu, WSL2 üzerinde Ubuntu, Docker Engine (Docker Desktop olmadan), Tailscale ve Caddy gibi bir ters proxy'yi birleştirerek n8n veya Supabase gibi hizmetleri ortaya çıkarmayı sağlar.

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 kurarak, konteyner ağı WSL2 ağına dayanır; bu da .wslconfig dosyasında tanımlanan NAT veya yansıtma moduna bağlıdır.

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

Temiz, öngörülebilir ve güvenli bir ağ sürdürmek için aşağıdakiler 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, sınırlamalarını (Hyper-V üzerinden sanallaştırma, ek ağ katmanı vb.) kabul edip dikkatlice yapılandırdığınız takdirde oldukça ciddi bir kendi kendine barındırma platformu haline gelebilir.

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

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

Geliştirme servisleri için yüksek port numaraları (1024'ün üzerinde) kullanın ve ayrıcalıklı veya yoğun kullanılan sistem portlarından 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ı üretim ortamlarında, WSL'nin otomatik yönlendirmesine körü körüne güvenmek en iyisi değildir . Nelerin nerede 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, konteyner çalışmaları 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 aynalı), wsl.conf ve .wslconfig dosyalarını ve güvenlik duvarınız ve yığınınızdaki araçlarla (Docker, Tailscale, ters proxy'ler) etkileşimini iyi bilmektir; böylece Windows ve Linux, port çakışmaları veya güvenliği tehlikeye atmadan aynı makinede çalışabilir.