diff --git a/windows/win-network-boost.ps1 b/windows/win-network-boost.ps1 index dbbc796..e58cd4a 100644 --- a/windows/win-network-boost.ps1 +++ b/windows/win-network-boost.ps1 @@ -22,16 +22,51 @@ netsh int tcp set global chimney=enabled >$null netsh int tcp set global initialRto=2000 >$null Write-Host " OK" -# 4. DNS — сохраняем текущий, только сбрасываем кэш -Write-Host "[4/5] DNS cache flush..." -ForegroundColor Yellow -$ifaces = Get-NetAdapter | Where-Object {$_.Status -eq "Up"} -ipconfig /flushdns >$null -foreach ($iface in $ifaces) { - $dns = (Get-DnsClientServerAddress -InterfaceIndex $iface.InterfaceIndex -AddressFamily IPv4).ServerAddresses -join ", " - if ($dns) { Write-Host " $($iface.Name): $dns (сохранён)" } - else { Write-Host " $($iface.Name): DHCP DNS" } +# 4. DNS — интерактивный выбор +Write-Host "[4/5] DNS..." -ForegroundColor Yellow +Write-Host "" +Write-Host " [1] Cloudflare (1.1.1.1 / 1.0.0.1)" +Write-Host " [2] Google (8.8.8.8 / 8.8.4.4)" +Write-Host " [3] Quad9 (9.9.9.9 / 149.112.112.112)" +Write-Host " [4] AdGuard (94.140.14.14 / 94.140.15.15)" +Write-Host " [5] Свой DNS (ввести вручную)" +Write-Host " [6] Не менять (оставить текущий)" +Write-Host "" +$choice = Read-Host " Выбор [1-6]" + +$dns_servers = @() +switch ($choice) { + "1" { $dns_servers = @("1.1.1.1", "1.0.0.1"); $dns_name = "Cloudflare" } + "2" { $dns_servers = @("8.8.8.8", "8.8.4.4"); $dns_name = "Google" } + "3" { $dns_servers = @("9.9.9.9", "149.112.112.112"); $dns_name = "Quad9" } + "4" { $dns_servers = @("94.140.14.14", "94.140.15.15"); $dns_name = "AdGuard" } + "5" { + $custom = Read-Host " Введи DNS (основной,резервный через запятую)" + $dns_servers = $custom -split "," | ForEach-Object { $_.Trim() } + $dns_name = "Свой" + } + "6" { $dns_name = "не менять" } + default { Write-Host " Неверный выбор — оставляю текущий" -ForegroundColor Red; $dns_name = "не менять" } } +$ifaces = Get-NetAdapter | Where-Object {$_.Status -eq "Up"} + +if ($dns_servers.Count -gt 0) { + foreach ($iface in $ifaces) { + Set-DnsClientServerAddress -InterfaceIndex $iface.InterfaceIndex -ServerAddresses $dns_servers + Write-Host " $($iface.Name) → $($dns_servers -join ', ') ($dns_name)" + } +} else { + foreach ($iface in $ifaces) { + $dns = (Get-DnsClientServerAddress -InterfaceIndex $iface.InterfaceIndex -AddressFamily IPv4).ServerAddresses -join ", " + if ($dns) { Write-Host " $($iface.Name): $dns (сохранён)" } + else { Write-Host " $($iface.Name): DHCP DNS (сохранён)" } + } +} + +ipconfig /flushdns >$null +Write-Host " Кэш DNS сброшен" + # 5. RSS на сетевых адаптерах Write-Host "[5/5] RSS (Receive Side Scaling)..." -ForegroundColor Yellow foreach ($iface in $ifaces) { @@ -48,7 +83,7 @@ Write-Host "Что сделано:" Write-Host " - Network throttling OFF (снято ограничение)" Write-Host " - Nagle OFF (меньше задержка TCP)" Write-Host " - TCP autotuning normal + RSS + Chimney" -Write-Host " - DNS: сохранён текущий, кэш сброшен" +Write-Host " - DNS: по выбору, кэш сброшен" Write-Host " - RSS по ядрам" Write-Host "" Write-Host "Для полного эффекта — перезагрузи ПК." -ForegroundColor Yellow