Медленный Wi-Fi в Windows: полное руководство по диагностике и оптимизации
Пошаговое руководство на основе реального случая: диагностика и исправление медленного или нестабильного Wi-Fi в Windows — замеры, управление питанием, настройки адаптера, TCP/IP, фоновый трафик, band steering и сторона роутера.
Прочитали: 6 · Помогло: 1 · обновлено 9 августа 2026 г.
Смотреть
Размер видеофайла: 83 KB — на медленных соединениях загрузка может занять некоторое время.
Шаг за шагом
- 1
Genel Bakış
Windows'ta Yavaş Wi-Fi: Uçtan Uca Teşhis ve Optimizasyon Rehberi
Vaka: ASUS dizüstü (Windows 11 Pro), Realtek 8852CE WiFi 6E adaptör, Huawei HG8145V5 GPON router.
Şikâyet: "Bu laptopta internet yavaş, aynı router'a bağlı ikinci laptop çok daha hızlı."
Tarih: 07.08.2026
Bu rehber, o vakada baştan sona ne yapıldığını adım adım anlatır. Komutların yanında
neden çalıştırıldığı da yazılıdır — başka bir makinede tekrarlanabilsin diye.
Sonuç özeti: Kazancın tamamı laptop tarafından geldi. İndirme ortalaması 199 → 263 Mbps çıktı, ama asıl kazanım hızda değil kararlılıkta: ölçümler arası 3.14 kat fark 1.08 kata indi. Kök neden router'ın hızı değil, laptopun bantlar arasında kaymasıydı.
• Altın kurallar
• Hazırlık
• Adım 1 — Baseline ölçüm
• Adım 2 — Verileri okuma: teşhis
• Adım 3 — Güç yönetimi
• Adım 4 — Adaptör gelişmiş özellikleri
• Adım 5 — TCP/IP katmanı
• Adım 6 — Arka plan trafiği
• Adım 7 — Kök nedeni yakalamak
• Adım 8 — Router tarafı
• Adım 9 — Doğrulama
• Bu vakada öğrenilen dersler
• Komut referansı
- 2
1. Altın kurallar
Bu iş sırasında kendine dayatman gereken kurallar. Vakada bunlara uyulduğu için
hiçbir şey kırılmadı.
• 1: Değiştirmeden önce oku ve kaydet — Geri alamayacağın değişiklik yapma. Her ayarın eski değeri yazılı olmalı.
• 2: Önce ölç, sonra değiştir — Baseline yoksa "iyileşti" diyemezsin.
• 3: Tek seferde tek değişken — İki ayarı birlikte değiştirip bozarsan hangisi olduğunu bilemezsin.
• 4: Geri yükleme noktası oluştur — Ücretsiz sigorta.
• 5: Ölçüm koşullarını sabitle — Aynı sunucu, aynı konum, aynı bant. Yoksa gürültüyü kazanç sanırsın.
• 6: Hata alınca dur, yorumla — Atlayıp devam etmek, sonraki tüm ölçümleri şüpheli hale getirir.
• 7: Kendini dışarıda bırakma — Uzaktan yönettiğin bağlantının ayarını değiştirirken kurtarma yolun olsun.
- 3
2. Hazırlık
2.1 Yönetici yetkisi
Neredeyse tüm yazma işlemleri yönetici ister. Kontrol:
$id=[Security.Principal.WindowsIdentity]::GetCurrent() (New-Object Security.Principal.WindowsPrincipal($id)).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
`False` dönerse terminali yönetici olarak yeniden başlat. Bu vakada ilk oturum yetkisizdi;
`Checkpoint-Computer` "Access denied", `Get-NetAdapterPowerManagement` ise yanıltıcı bir
"A device attached to the system is not functioning" hatası verdi — bu aslında yetki hatasıydı.
2.2 Konum servisleri
Windows 11'de bu şart. Kapalıyken `netsh wlan show interfaces` hiçbir şey döndürmez:
Network shell commands need location permission to access WLAN information.
Bant, kanal, sinyal %, RSSI, link hızı — teşhisin çekirdek verileri bu komuttan gelir.
`Ayarlar > Gizlilik ve güvenlik > Konum` → aç.
2.3 Geri yükleme noktası
Checkpoint-Computer -Description "Wi-Fi tuning baseline" -RestorePointType MODIFY_SETTINGS Get-ComputerRestorePoint | Select-Object SequenceNumber,Description,CreationTime
Sessizce başarısız olabilir. Mutlaka ikinci komutla doğrula. Sistem Koruması kapalıysa
nokta oluşmaz — o zaman önce `Ayarlar > Sistem > Hakkında > Sistem koruması`'ndan aç.
Windows varsayılan olarak 24 saatte bir nokta oluşturur. Son nokta yeniyse yenisi oluşmaz.
2.4 Log dosyası aç
Her değişiklik için şu sütunları tut:
| Ayar | Eski değer | Yeni değer | Uygulama komutu | Geri alma komutu |
Bu tablo sonunda geri alma script'ine dönüşecek.
- 4
3. Adım 1 — Baseline ölçüm
Hiçbir şey değiştirmeden ölç. Bu rakamlar sonun referansı.
3.1 Hız testi
winget install --id Ookla.Speedtest.CLI --scope user --accept-source-agreements --accept-package-agreements
PATH yenilenmez, tam yolla çalıştır:
$exe="$env:LOCALAPPDATA\Microsoft\WinGet\Packages\Ookla.Speedtest.CLI_Microsoft.Winget.Source_8wekyb3d8bbwe\speedtest.exe" & $exe --accept-license --accept-gdpr -f json | ConvertFrom-Json
En az 3 kez çalıştır. Tek ölçüm hiçbir şey söylemez.
⚠️ Kritik hata tuzağı: Serbest bırakırsan her seferinde farklı sunucu seçer ve varyansın kaynağını ayırt edemezsin. Bu vakada baseline üç farklı sunucuya gitti (275.5 / 87.8 / 233.8 Mbps) ve bu 3 kat farkın ne kadarı sunucudan, ne kadarı Wi-Fi'dan belli olmadı. Doğrusu: sunucu listesini al, birini seç, hep ona bağlan.
& $exe -L # sunucu listesi & $exe -s 70970 -f json # sabit sunucu
3.2 Gecikme, jitter, paket kaybı
foreach ($t in '192.168.100.1','1.1.1.1','8.8.8.8') { "=== $t ==="; ping -n 50 $t | Select-Object -Last 4 }
Üç hedefin anlamı farklı:
• Router IP: Sadece Wi-Fi hattı. Burada kayıp/gecikme varsa sorun kesin Wi-Fi'da.
• 1.1.1.1: Wi-Fi + ISP'nin yakın peering'i
• 8.8.8.8: Wi-Fi + ISP + uzak yol
Vakada: router 1 ms / %0 kayıp → Wi-Fi hattı temizdi. 8.8.8.8'in 75 ms olması ISP
yönlendirmesiydi, laptopla ilgisi yoktu.
Ortalamaya değil, `Maximum` değerine bak. Ortalama iyi ama tepe yüksekse
(vakada router'a 1 ms ort / 16 ms max) bu genelde güç yönetimi imzasıdır — adaptör
paketler arasında uykuya dalıyordur.
3.3 Wi-Fi link durumu
netsh wlan show interfaces
Bu komutun çıktısı teşhisin merkezi:
SSID : Elirehim AP BSSID : 7c:00:4d:1b:88:b4 <- hangi radyoya bağlısın Band : 5 GHz Channel : 36 Radio type : 802.11ac <- ax değilse router Wi-Fi 6 değil Authentication : WPA2-Personal Cipher : CCMP Receive rate (Mbps) : 585 Signal : 74% Rssi : -71 <- EN ÖNEMLİ TEK SAYI
3.4 RSSI nasıl okunur
• −30…−50 dBm: Mükemmel — En yüksek MCS, tam hız
• −50…−60 dBm: İyi — Yüksek MCS
• −60…−70 dBm: Orta — MCS düşer, hız yarılanabilir
• −70…−80 dBm: Zayıf — Düşük MCS, kopmalar
• −80 dBm altı: Kullanılamaz — —
"Signal %" yüzdesine güvenme, RSSI'ya bak. Yüzde üreticiye göre farklı hesaplanır.
Vakada "%74" iyi görünüyordu ama arkasındaki −71 dBm zayıftı.
3.5 Adaptör ve sürücü
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,LinkSpeed,MacAddress,ifIndex netsh wlan show drivers
`netsh wlan show drivers` sana adaptörün teorik tavanını verir:
Radio types supported : 802.11b 802.11g 802.11n 802.11ac 802.11ax 802.11a Number of supported bands : 3 (2.4 / 5 / 6 GHz)
Bunu `netsh wlan show interfaces`'teki gerçek `Radio type` ile karşılaştır.
Vakada adaptör `ax` + 6 GHz destekliyordu ama bağlantı `802.11ac`'deydi →
darboğaz router.
3.6 Komşu ağ taraması
netsh wlan show networks mode=bssid
İki kritik veri:
• Channel Utilization — havanın ne kadar dolu olduğu. %2-10 = boş, %50+ = kalabalık.
• Görünen ağ sayısı — komşu yoğunluğu.
Vakada: görünen tek ağ kendi router'ıydı ve doluluk %2. Bu, "kanal kalabalık,
kanal değiştir" tavsiyesini baştan sildi. Girişim yoktu; düşük hızın tek sebebi mesafeydi.
💡 Tarama anlık sonuç verir. Router çift bantlıysa bir seferinde 2.4, diğerinde 5 GHz BSSID'sini görebilirsin. Birkaç kez çalıştır.
- 5
4. Adım 2 — Verileri okuma: teşhis
Ölçümler bitti. Şimdi düşün. Kod yazmadan önce şu soruları cevapla:
Soru 1: Sorun Wi-Fi'da mı, internette mi?
• Router'a ping temizse (kayıp yok, düşük gecikme) → Wi-Fi hattı sağlam
• Speedtest düşük ama link hızı yüksekse → darboğaz ISP veya router'ın WAN'ı
Vakada link 585 Mbps, throughput 254 Mbps → Wi-Fi darboğaz değildi, ISP tavanıydı.
Soru 2: Varyans mı, düşük ortalama mı?
Bu ayrım her şeyi değiştirir.
• Düşük ama kararlı → kapasite sorunu (ISP, mesafe, donanım)
• Zıplayan → bir şey değişiyor: bant kayması, güç yönetimi, arka plan trafiği
Vakada 87.8 ↔ 275.5 Mbps zıplaması vardı. Şikâyet aslında "yavaş" değil "kararsız"dı.
Soru 3: Teorik tavan ne?
• 802.11n: 2x2, 40 MHz — 300 Mbps
• 802.11ac: 2x2, 80 MHz — 867 Mbps
• 802.11ac: 2x2, 160 MHz — 1733 Mbps
• 802.11ax: 2x2, 80 MHz — 1201 Mbps
Link hızın tavanın neresinde? Vakada 585/520 Mbps, 867'lik ac tavanının altında →
MCS7 civarı, MCS9 değil → RSSI yetersiz. MCS9 için ~−55 dBm gerekir.
- 6
5. Adım 3 — Güç yönetimi
Wi-Fi yavaşlığının en yaygın yazılım sebebi budur. Adaptör enerji tasarrufu için
uykuya dalar, uyanması gecikme yaratır.
5.1 Mevcut durumu oku
Get-NetAdapterPowerManagement -Name 'Wi-Fi'
Çıktıdaki alanların çoğu `Unsupported` olabilir — o zaman o ayarlar zaten devre dışıdır.
Vakada:
ArpOffload : Unsupported <- zaten kapalı NSOffload : Unsupported D0PacketCoalescing : Disabled <- zaten hedef değerde SelectiveSuspend : Unsupported
5.2 "Bilgisayarın bu aygıtı kapatmasına izin ver" — kapat
Bu, Aygıt Yöneticisi'ndeki o meşhur onay kutusu. Registry'de `PnPCapabilities`:
$key='HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0001' # GÜVENLİK: doğru adaptör mü? (Get-ItemProperty $key).DriverDesc # eski değeri kaydet (Get-ItemProperty $key -Name PnPCapabilities -ErrorAction SilentlyContinue).PnPCapabilities # uygula New-ItemProperty -Path $key -Name PnPCapabilities -Value 24 -PropertyType DWord -Force
⚠️ `0001` her makinede farklı adaptördür. Yazmadan önce `DriverDesc` ile doğrula. Yanlış anahtara yazarsan Ethernet'ini veya Bluetooth'unu bozarsın. Doğru anahtarı bulmak için: ```powershell $net='HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}' Get-ChildItem $net | ForEach-Object { $p=Get-ItemProperty $.PSPath -ErrorAction SilentlyContinue if ($p.DriverDesc -match 'Wi-Fi|Wireless|WiFi') { "$($.PSChildName) = $($p.DriverDesc)" } } ```
Değer anlamı: `24` (0x18) = güç yönetimi kapalı. Kayıt yoksa varsayılan = açık.
Geri almak için değeri sil, `0` yazma.
Etkili olması için adaptör yeniden başlatılmalı (Adım 9).
5.3 powercfg — kablosuz güç tasarrufu
Klasik tavsiye şudur:
powercfg /setacvalueindex SCHEME_CURRENT 19cbb8fa-5279-450e-9fac-8a3d5fea2145 12bbebe6-58d6-4636-95bb-3217ef867c1a 0
⚠️ Modern Standby makinelerde bu alt grup yoktur. Kontrol: ```powershell powercfg /a ``` `Standby (S0 Low Power Idle)` yazıyorsa Microsoft bu ayarı kaldırmıştır. `-ATTRIB_HIDE` ile açmayı denesen de gelmez. Vakada tam olarak bu oldu — yerine `PnPCapabilities` kullanıldı.
5.4 Güç planı
Modern Standby makinelerde `powercfg /list` sadece `Balanced` gösterir. Diğerleri
gizlenmiştir ama oluşturulabilir:
powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 # Ultimate Performance powercfg -duplicatescheme 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c # High Performance powercfg /setactive 175ba1eb-c0bc-4204-aed1-6a6cc85736ce
💡 `/list` bunları hâlâ göstermeyebilir ama `/query` ile var olduklarını görürsün ve `/setactive` çalışır.
⚠️ Dizüstüde Ultimate Performance pil ömrünü belirgin düşürür ve Wi-Fi'a katkısı genelde sıfıra yakındır. Asıl işi `PnPCapabilities` yapar. Prizde değilsen atla.
5.5 USB selective suspend
$g = '381b4222-f694-41f0-9685-ff5bb260df2e' # Balanced powercfg /setacvalueindex $g 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0 powercfg /setdcvalueindex $g 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0 powercfg /setactive $g
⚠️ Tuzak: Yeni bir güç planı oluşturup aktif ettiğinde, o plan kendi USB ayarını taşır. Vakada Balanced'a uygulandı, sonra Ultimate aktif edildi ve Ultimate'ta ayar hâlâ `Enabled`'dı. Aktif olan plana da uygula ve doğrula.
Sadece harici USB Wi-Fi dongle kullanıyorsan anlamlı; dahili PCIe adaptörde etkisizdir.
- 7
6. Adım 4 — Adaptör gelişmiş özellikleri
Get-NetAdapterAdvancedProperty -Name 'Wi-Fi' | Select-Object DisplayName,DisplayValue,RegistryKeyword | Sort-Object DisplayName
Önce hangi ayarların var olduğunu gör. İnternetteki rehberler Intel adaptör varsayar;
Realtek/Qualcomm/MediaTek çok daha az ayar açar.
Vakada Realtek 8852CE sadece 13 özellik açtı ve klasik listenin çoğu hiç yoktu:
• Preferred Band: ✅ var — zaten `5G first`
• Channel Width / Bandwidth: ✅ var — zaten `Auto`
• 802.11n/ac/ax Mode: ✅ var — zaten en yüksek
• Roaming Aggressiveness: ✅ var — zaten `Medium`
• Transmit Power: ❌ yok
• MIMO Power Save Mode: ❌ yok
• Fat Channel Intolerant: ❌ yok
• Throughput Booster: ❌ yok
• Packet Coalescing: ❌ yok
• ARP/NS Offload: ❌ yok
• Large Send Offload v2: ❌ yok
• Interrupt Moderation: ❌ yok
Ders: "Şu 10 ayarı değiştir" diyen rehberlerin çoğu senin donanımında uygulanamaz.
Önce envanteri çıkar.
Geçerli değerleri görmek
Bir ayarı değiştirmeden önce hangi değerleri kabul ettiğine bak:
$p = Get-NetAdapterAdvancedProperty -Name 'Wi-Fi' -RegistryKeyword 'WifiBandwidth_phy0' $p.DisplayValue $p.ValidDisplayValues
Vakada `Bandwidth` sadece `20MHz Only | Auto` kabul ediyordu — yani "80/160 MHz'e sabitle"
tavsiyesi bu donanımda imkânsızdı, `Auto` zaten en iyisiydi.
Değiştirme
Set-NetAdapterAdvancedProperty -Name 'Wi-Fi' -RegistryKeyword 'WifiProtocol_2g' ` -DisplayValue 'Disabled' -NoRestart
`-NoRestart` ile birden fazla ayarı yapıp sonunda tek seferde yeniden başlat.
- 8
7. Adım 5 — TCP/IP katmanı
7.1 Mevcut durumu oku
netsh int tcp show global netsh int tcp show supplemental
Hedef değerler:
• Receive Window Auto-Tuning: `normal` — ✅ zaten normal
• Receive-Side Scaling (RSS): `enabled` — ✅ zaten enabled
• Congestion Provider: `cubic` — ✅ zaten cubic
• ECN Capability: `disabled` — ✅ zaten disabled
Windows 11'de bu dördü zaten doğrudur. Vakada hiçbiri değiştirilmedi. "TCP tweak" rehberlerinin çoğu Windows 7 dönemindendir ve bugün gereksizdir. Yine de oku ve doğrula — biri bozmuş olabilir.
`show global`'da `Add-On Congestion Control Provider : default` görürsen paniğe kapılma;
gerçek değeri `show supplemental` gösterir (`cubic`).
7.2 MTU — ampirik bulma
Bu, gerçekten fayda sağlayabilecek nadir TCP ayarlarından biri.
ping -f -l 1472 1.1.1.1
• `-f` = parçalama (Don't Fragment)
• `-l 1472` = veri boyutu. MTU = veri + 28 (20 IP + 8 ICMP başlığı)
İkili arama yap:
foreach ($sz in 1472,1464,1452,1420) { $r = ping -f -l $sz -n 2 1.1.1.1 | Out-String "$sz (MTU $($sz+28)) -> $(if($r -match 'Reply from' -and $r -notmatch 'fragmented'){'GECTI'}else{'BASARISIZ'})" }
Geçen en büyük değeri bul, 28 ekle.
💡 Router'a ve internete ayrı ayrı test et. Vakada router'a 1500 geçiyordu ama internete sadece 1492 geçti. Aradaki 8 byte fark = PPPoE. Adaptör 1500'de kalmıştı.
netsh interface ipv4 set subinterface "Wi-Fi" mtu=1492 store=persistent
Yaygın MTU değerleri:
• Ethernet / DHCP: 1500
• PPPoE: 1492
• PPPoE + bazı VPN: 1400-1460
7.3 DNS
Ölç, tahmin etme:
$hosts='google.com','cloudflare.com','github.com','wikipedia.org' foreach ($dns in '1.1.1.1','8.8.8.8','9.9.9.9','192.168.100.1') { $tot=0 foreach ($h in $hosts) { Clear-DnsClientCache $sw=[Diagnostics.Stopwatch]::StartNew() Resolve-DnsName -Name $h -Server $dns -Type A -DnsOnly -ErrorAction SilentlyContinue | Out-Null $sw.Stop(); $tot+=$sw.ElapsedMilliseconds } "{0,-16} ort={1:N1} ms" -f $dns, ($tot/$hosts.Count) }
⚠️ Bu ölçümdeki mutlak rakamlar `Clear-DnsClientCache` yükünden şişer (vakada 600-750 ms çıktı). Sadece sıralamaya bak, mutlak değere değil.
DNS değiştirme:
Set-DnsClientServerAddress -InterfaceAlias 'Wi-Fi' -ServerAddresses '1.1.1.1','1.0.0.1' ipconfig /flushdns
DNS hızı sayfa açılma süresini etkiler, indirme hızını etkilemez. Speedtest sonucunu
değiştirmesini bekleme.
7.4 QoS rezerve bant genişliği
$q='HKLM:\SOFTWARE\Policies\Microsoft\Windows\Psched' if (-not (Test-Path $q)) { New-Item -Path $q -Force | Out-Null } New-ItemProperty -Path $q -Name NonBestEffortLimit -Value 0 -PropertyType DWord -Force
Dürüst olalım: bu ayarın "Windows bandının %20'sini çalıyor" efsanesi yanlıştır. Windows o %20'yi ancak bir uygulama QoS talep ederse ayırır. Zararsız ama beklenti yaratma.
- 9
8. Adım 6 — Arka plan trafiği
8.1 Delivery Optimization (P2P güncelleme paylaşımı)
$do='HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization' if (-not (Test-Path $do)) { New-Item -Path $do -Force | Out-Null } New-ItemProperty -Path $do -Name DODownloadMode -Value 0 -PropertyType DWord -Force
`0` = P2P tamamen kapalı. Windows güncellemelerini başkalarına dağıtmayı durdurur.
8.2 Metered işareti
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\DefaultMediaCost' | Select-Object Ethernet,WiFi
`1` = Unrestricted (metered değil) ✅ · `2` = Fixed · `4` = Variable
8.3 Bant genişliği tüketen süreçleri bul
Get-NetTCPConnection -State Established | Where-Object { $_.RemoteAddress -notmatch '^(127\.|::1|0\.0\.0\.0)' } | Group-Object OwningProcess | Sort-Object Count -Descending | Select-Object -First 15 | ForEach-Object { $p = Get-Process -Id $_.Name -ErrorAction SilentlyContinue "{0,-30} baglanti={1}" -f $(if($p){$p.ProcessName}else{"PID $($_.Name)"}), $_.Count }
Vakada Steam 15 bağlantıyla tepedeydi. **Arka planda oyun güncellemesi indiren bir
istemci, tüm hız ölçümlerini bozar.** Ölçüm öncesi kapat veya en azından not et.
8.4 Gereksiz protokol bağlamaları
Get-NetAdapterBinding -Name 'Wi-Fi' | Select-Object DisplayName,ComponentID,Enabled
Ev ağında kapatılabilecekler:
Disable-NetAdapterBinding -Name 'Wi-Fi' -ComponentID ms_lldp # LLDP Disable-NetAdapterBinding -Name 'Wi-Fi' -ComponentID ms_rspndr # LLTD Responder Disable-NetAdapterBinding -Name 'Wi-Fi' -ComponentID ms_lltdio # LLTD Mapper
Asla kapatma: `mstcpip` (IPv4), `mstcpip6` (IPv6), `ms_pacer` (QoS Scheduler). Hız etkisi ihmal edilebilir; bunlar temizlik amaçlıdır, mucize bekleme.
- 10
9. Adım 7 — Kök nedeni yakalamak
Bu vakanın en önemli bölümü. Buraya kadar yapılanların hepsi doğruydu ama
asıl sorunu çözmedi.
9.1 Belirti
Değişikliklerden sonraki ilk doğrulama ölçümü baseline'dan kötü çıktı:
Run 1 : DL 178.7 | UL 66.1 Mbps | %3.2 paket kaybı Run 2 : DL 57.7 | UL 51.6 Mbps Run 3 : {"error":"Cannot open socket"} <- tamamen başarısız
9.2 Refleks: paniğe kapılıp geri alma
Yanlış olurdu. Önce ölçümün geçerli olup olmadığına bak.
netsh wlan show interfaces | Select-String 'BSSID|Band|Channel|Radio type|Receive rate'
AP BSSID : 7c:00:4d:1b:88:b0 <- b4 değil b0! Band : 2.4 GHz Channel : 3 Radio type : 802.11n Receive rate (Mbps) : 144.4 <- 585 değil
9.3 Kök neden
Router tek SSID ile iki bantta birden yayın yapıyordu (band steering):
• `7c:00:4d:1b:88:b4` → 5 GHz, kanal 36, 802.11ac, 585 Mbps, RSSI −71
• `7c:00:4d:1b:88:b0` → 2.4 GHz, kanal 3, 802.11n, 144 Mbps, RSSI −66
BSSID'lerin son karakteri farklı, gerisi aynı → aynı router'ın iki radyosu.
İstemci daha güçlü ama daha yavaş olan 2.4 GHz'i seçiyordu. Windows'un
"Preferred Band = 5G first" ayarı bunu engellemeye yetmiyordu, çünkü sinyal farkı
5 dB'ydi.
Baseline'daki 87.8 ↔ 275.5 Mbps zıplamasının açıklaması buydu. İkinci laptopun
hızlı olmasının sebebi de büyük ihtimalle 5 GHz'de kalmasıydı.
9.4 Çözüm: bandı sabitle
# 2.4 GHz radyosunu kapat -> istemci 5 GHz'de kalmak zorunda Set-NetAdapterAdvancedProperty -Name 'Wi-Fi' -RegistryKeyword 'WifiProtocol_2g' ` -DisplayValue 'Disabled' -NoRestart Restart-NetAdapter -Name 'Wi-Fi' -Confirm:$false
Alternatifler:
• İstemcide 2.4 GHz'i kapat: Deterministik, evdeki başka cihazı etkilemez — Uzak odada 2.4 GHz yedeği yok
• Router'da SSID'leri ayır (`-2G` / `-5G`): Kalıcı, temiz, yedek korunur — Evdeki tüm 2.4 GHz cihazlar yeniden bağlanmalı
• Router'da band steering'i kapat: Kolay — Garantisi yok — istemci yine sinyale göre seçer
Vakada birinci yöntem seçildi: laptop tek sorundu, evi rahatsız etmeye gerek yoktu.
9.5 Ders
Ölçüm sonucu kötüleştiğinde ilk soru "hangi ayarı geri alayım" değil, "ölçüm geçerli miydi" olmalı. Bant kaydığı için geçersizdi. Ayarları geri almaya başlasaydım doğru değişiklikleri sileceğim.
- 11
10. Adım 8 — Router tarafı
Laptop tarafı bitti. Şimdi router.
10.1 Modeli tespit et (giriş yapmadan)
$r = Invoke-WebRequest -Uri 'http://192.168.100.1' -UseBasicParsing [regex]::Match($r.Content,"ProductName\s*=\s*'([^']+)'").Groups[1].Value
Vakada `HG8145V5` döndü.
⚠️ Sayfa içeriğinde marka adı aramak yanıltıcıdır. İlk denemede "ZTE" eşleşti ama o, sayfadaki `DNZTELECOM2WIFI` markalama listesinden geliyordu. Cihaz Huawei'ydi. `ProductName` değişkeni ve `hwlogo_*` görsel adları kesin kanıttı.
10.2 Ayarları oku ve karşılaştır
Huawei HG8145V5'te yol: `Advanced > WLAN > ...`
• 2.4G / 5G Basic: SSID, Authentication Mode, Encryption Mode, WPS
• 2.4G / 5G Advanced: TX Power, Regulatory Domain, Channel, Channel Width, Mode, Band Steering
10.3 En önemli bulgu: TKIP
Authentication Mode : WPA/WPA2 PreSharedKey Encryption Mode : TKIP&AES <- SORUN
TKIP, 802.11n/ac ile birlikte kullanılamaz. Standart bunu yasaklar. Karışık
`TKIP&AES` modunda AP kendi BSS'ini kısıtlayabilir. Ayrıca TKIP kriptografik olarak
kırılmıştır.
Düzeltme: `Encryption Mode` → `AES` → `Apply`
💡 Bu firmware güvenlik ayarını iki radyo arasında paylaşıyordu — 2.4 GHz'e uygulanan AES, 5 GHz'de de göründü. Sayfayı sıfırdan yükleyip doğrula.
⚠️ Dürüst beklenti: Vakada bu değişiklik ölçülebilir hız kazancı vermedi, çünkü istemci zaten CCMP (AES) ile anlaşıyordu. Doğru ve gerekli bir düzeltme, ama hız çözümü değil.
10.4 Sık verilen ama YANLIŞ olabilecek tavsiyeler
Bu vakada üç "standart" tavsiye cihaz görülünce çöktü:
• "Kanal genişliğini 80 MHz'e sabitle": Zayıf sinyalde zararlı. 80 MHz kanal, 20 MHz'e göre alt-taşıyıcı başına ~6 dB daha az SNR verir. RSSI −76'da `Auto` doğru olan — sinyal kötüleşince daralabiliyor.
• "Kanal 149/157'ye geç": Regulatory Domain `United Kingdom` idi. ETSI'de 5 GHz yalnız 36-64 ve DFS'li 100-140; 149-165 yok.
• "20/40 Coexistence'ı kapat": Bu firmware'de böyle bir ayar yok.
Ders: Cihazı görmeden tavsiye verme. Gördükten sonra tavsiyeni geri almaya hazır ol.
10.5 Band Steering — kapatmalı mı?
Duruma bağlı, otomatik "evet" değil:
• İstemci zaten adaptör seviyesinde bir banda kilitliyse → kapatmanın faydası yok
• Evde çok cihaz varsa → kapatmak onları 2.4 GHz'e itebilir
• Tek sorunlu cihaz varsa → istemci tarafında çözmek daha temiz
Vakada açık bırakıldı, çünkü laptop zaten kilitliydi ve diğer 10 cihaza etkisi
belirsizdi.
10.6 Kontrol edilecek diğer şeyler
Security > IPv4 Filtering -> kural var mı Security > MAC Filtering -> bu cihaz engelli/limitli mi Application > QoS -> cihaz bazlı hız limiti var mı WLAN Advanced > TX Power -> %100 mü WLAN Advanced > Regulatory Domain -> konumunla uyuşuyor mu
Vakada hiçbirinde limit yoktu → 254 Mbps tavanı router kaynaklı değildi.
⚠️ Regulatory Domain konumunla uyuşmuyorsa (vakada Bakü'de `United Kingdom`), bu bir spektrum mevzuatı konusudur. Doğru ülkeyi seçmek doğru yapılandırmadır, ama TX gücü kazanmak için rastgele ülke seçmek yasal sorun yaratır.
10.7 Router arayüzünde çalışırken
• Tek oturum kuralı: Huawei ONT'ler aynı anda tek admin oturumuna izin verir.
Başka bir sekmeden/cihazdan girmek mevcut oturumu düşürür.
• Oturum zaman aşımı: ~5 dakika boşta kalınca kendini kapatır.
• Giriş kilidi: Birkaç başarısız denemeden sonra 1 dakika kilitlenir.
• Bağlı olduğun bandı en son değiştir. Önce kullanmadığın bantta dene —
bazı firmware'ler `Apply`'da tüm cihazı yeniden başlatır.
- 12
11. Adım 9 — Doğrulama
11.1 Adaptörü yeniden başlat
Restart-NetAdapter -Name 'Wi-Fi' -Confirm:$false foreach ($i in 1..30) { Start-Sleep -Seconds 2 if ((Get-NetAdapter -Name 'Wi-Fi').Status -eq 'Up' -and (Get-NetIPConfiguration -InterfaceAlias 'Wi-Fi').IPv4Address.IPAddress) { "Baglandi ($($i*2) sn)"; break } }
`PnPCapabilities` gibi registry değişiklikleri ancak bundan sonra etkili olur.
11.2 Ölçümü tekrarla — koşulları sabitleyerek
$exe="$env:LOCALAPPDATA\Microsoft\WinGet\Packages\Ookla.Speedtest.CLI_Microsoft.Winget.Source_8wekyb3d8bbwe\speedtest.exe" foreach($i in 1..4){ $band = (netsh wlan show interfaces | Select-String 'Band\s+:').ToString().Split(':')[1].Trim() $rssi = (netsh wlan show interfaces | Select-String 'Rssi').ToString().Split(':')[1].Trim() $j = & $exe -s 70970 -f json | ConvertFrom-Json "Run {0} [{1}, RSSI {2}] : DL {3,6:N1} | UL {4,6:N1} | loss {5}" -f ` $i,$band,$rssi,($j.download.bandwidth*8/1MB),($j.upload.bandwidth*8/1MB),$j.packetLoss }
Her ölçümde bandı ve RSSI'yı da kaydet. Vakada bu olmasaydı bant kaymasını asla yakalayamazdım.
11.3 Tek değişkenli test: IPv6
Disable-NetAdapterBinding -Name 'Wi-Fi' -ComponentID ms_tcpip6 # 3 ölçüm al Enable-NetAdapterBinding -Name 'Wi-Fi' -ComponentID ms_tcpip6
Vakada: kapalı 259.7 / 183.5 · açık 254.3 / 180.5 → %2 fark = gürültü → geri açıldı.
%5'in altındaki farkı kazanç sayma. Wi-Fi ölçümlerinin doğal varyansı bundan büyük.
11.4 Sonucu dürüst yorumla
Vakanın gerçek tablosu:
• Download ort.: 199.0 Mbps — 263.0 Mbps — +32%
• DL varyans: 3.14x — 1.08x — asıl kazanım
• Upload ort.: 143.5 Mbps — 185.3 Mbps — +29%
• Router ping max: 16 ms — 4 ms — −75%
• Paket kaybı: 0% — 0% — —
Ortalamadaki artışın büyük kısmı "bazen 88 Mbps'e düşme"nin bitmesinden geliyor.
Tavan yükselmedi, taban yükseldi.
- 13
12. Bu vakada öğrenilen dersler
12.1 Yöntemsel
• Şikâyeti sorgula. "Yavaş" denildi, gerçek sorun "kararsız"dı. Teşhis bu ayrımla değişti.
• Ölçüm bozulduğunda önce ölçümü sorgula, ayarları değil.
• Her ölçüme bağlam ekle (bant, RSSI, sunucu). Bağlamsız sayı işe yaramaz.
• Envanter çıkarmadan tavsiye uygulama. Ayarların yarısı donanımında yok olabilir.
• Gördükten sonra tavsiyeni geri almaya hazır ol. Bu vakada 4 tavsiye çöpe gitti.
12.2 Teknik
• Windows 11'de TCP ayarları zaten doğrudur. "TCP optimizer" rehberleri güncelliğini yitirdi.
• Modern Standby, güç yönetimi rehberlerinin yarısını geçersiz kılar. `powercfg /a` ile kontrol et.
• MTU ampirik bulunmalı. PPPoE'de 1492, ve bunu router'a değil internete ping'leyerek bulursun.
• RSSI tek en önemli sayıdır. "Signal %" yanıltıcıdır.
• Zayıf sinyalde geniş kanal zararlıdır. 80 MHz her zaman daha iyi değildir.
• Aynı SSID'nin iki bantta yayını en sinsi performans sorunudur ve `netsh wlan show interfaces`
çıktısındaki BSSID son karakterinden anlaşılır.
• TKIP, 11n/ac ile uyumsuzdur — router'da `TKIP&AES` görürsen `AES` yap.
12.3 Beklenti yönetimi
Yazılım ayarları fiziği yenemez. Bu vakada nihai darboğazlar:
• Router Wi-Fi 5: `Radio type: 802.11ac`, adaptör `ax` destekliyor — Router değişimi
• RSSI −71…−77: Kanal %2 dolu, tek ağ görünür → girişim yok, sebep mesafe — Konum değişikliği
• ISP ~260 Mbps: Link 520 Mbps, throughput 263'te tavan — Paket yükseltme
Yazılım tarafında yapılacak iş bittiğinde bunu açıkça söyle. Daha fazla "tweak"
aramak zaman kaybıdır.
- 14
13. Komut referansı
Teşhis (salt okunur, güvenli)
netsh wlan show interfaces # link durumu, RSSI, bant, BSSID netsh wlan show drivers # adaptörün teorik yetenekleri netsh wlan show networks mode=bssid # komşu ağlar, kanal doluluğu netsh int tcp show global # TCP ayarları netsh int tcp show supplemental # congestion provider netsh interface ipv4 show subinterface # MTU Get-NetAdapter # adaptör listesi Get-NetAdapterAdvancedProperty -Name 'Wi-Fi' # gelişmiş özellikler Get-NetAdapterPowerManagement -Name 'Wi-Fi' # güç yönetimi Get-NetAdapterBinding -Name 'Wi-Fi' # protokol bağlamaları Get-NetIPConfiguration # IP, gateway, DNS powercfg /a # uyku yetenekleri (Modern Standby?) powercfg /getactivescheme # aktif güç planı
Ölçüm
ping -n 50 <hedef> # gecikme, jitter, kayıp ping -f -l <boyut> <hedef> # MTU keşfi speedtest -L # sunucu listesi speedtest -s <id> -f json # sabit sunucuda test Resolve-DnsName -Name <host> -Server <dns> # DNS süresi
Değiştirme (yönetici gerekir)
Set-NetAdapterAdvancedProperty -Name 'Wi-Fi' -RegistryKeyword <kw> -DisplayValue <val> -NoRestart Disable-NetAdapterBinding -Name 'Wi-Fi' -ComponentID <id> Enable-NetAdapterBinding -Name 'Wi-Fi' -ComponentID <id> Set-DnsClientServerAddress -InterfaceAlias 'Wi-Fi' -ServerAddresses '1.1.1.1','1.0.0.1' netsh interface ipv4 set subinterface "Wi-Fi" mtu=<n> store=persistent Restart-NetAdapter -Name 'Wi-Fi' -Confirm:$false
Geri alma
Checkpoint-Computer -Description "..." -RestorePointType MODIFY_SETTINGS Get-ComputerRestorePoint Restore-Computer -RestorePoint <SequenceNumber> # yeniden başlatır
- 15
Ek: Geri alma script'i yazarken
Bütün değişiklikleri tek script'te topla. Dikkat edilecekler:
1. Türkçe karakter varsa dosyayı UTF-8 BOM ile kaydet.
PowerShell 5.1, BOM'suz UTF-8'i ANSI sanar ve Türkçe karakterlerde sözdizimi hatası verir.
$txt = [System.IO.File]::ReadAllText($path, [System.Text.Encoding]::UTF8) [System.IO.File]::WriteAllText($path, $txt, (New-Object System.Text.UTF8Encoding($true)))
2. Çalıştırmadan sözdizimini doğrula:
$err=$null [System.Management.Automation.PSParser]::Tokenize((Get-Content $path -Raw),[ref]$err) | Out-Null if ($err.Count) { $err | ForEach-Object { "satir $($_.Token.StartLine): $($_.Message)" } } else { "OK" }
3. Registry'ye yazmadan önce hedefi doğrula:
$d = (Get-ItemProperty $key).DriverDesc if ($d -notmatch 'Realtek 8852CE') { throw "Yanlis adaptor: $d" }
4. "Değer yoktu" ile "değer 0'dı" farkını koru.
Yoksa `Remove-ItemProperty` kullan, `0` yazma — anlamları farklıdır.
5. Router değişikliklerinin script'le geri alınamayacağını yorumda belirt.
- 16
İlgili dosyalar
• `network-tuning-log.md` — bu vakanın tüm ham verileri, eski/yeni değerler
• `rollback-network.ps1` — tüm değişiklikleri geri alan çalıştırılabilir script
• `wifi-optimization-guide-EN.md` — bu rehberin İngilizce sürümü
• `wifi-optimization-guide-RU.md` — bu rehberin Rusça sürümü
Нужные вам файлы
Всё здесь безопасно скачивать и использовать бесплатно.
rollback-network.ps1
9 KB
Это было полезно?
Вход не требуется — это просто помогает понять, о чём писать больше.
Застряли на шаге? Спросите здесь
Спрашивайте о чём угодно — нет слишком простых вопросов.