# ========================================================= # MAX 网络工具箱 - DNS 修复 # 清除 DNS 缓存 / 重置网络栈 / 更换 DNS 服务器 # ========================================================= $Common = "C:\Setup\windows\lib\common.ps1" if (Test-Path $Common) { . $Common } Show-AdminWarn Write-Header "DNS 修复" # ========================================================= try { Write-Section "刷新 DNS 缓存" Write-Info "正在执行 ipconfig /flushdns ..." ipconfig /flushdns Write-OK "DNS 缓存已刷新" Write-Line Write-Section "重置 Winsock" Write-Info "正在执行 netsh winsock reset ..." netsh winsock reset Write-OK "Winsock 已重置" Write-Line Write-Section "重置 TCP/IP 栈" Write-Info "正在执行 netsh int ip reset ..." netsh int ip reset Write-OK "TCP/IP 栈已重置" Write-Line Write-Section "选择 DNS 服务器" Write-Info "1. AliDNS (223.5.5.5) + DNSPod (119.29.29.29)" Write-Info "2. Cloudflare (1.1.1.1) + Google (8.8.8.8)" Write-Info "3. DHCP 自动获取 DNS" Write-Host "" $Choice = Read-Host " 请选择 (1-3)" Write-Section "设置网卡 DNS" $Adapters = Get-NetAdapter | Where-Object Status -eq "Up" if (-not $Adapters) { Write-Warn "未找到活动的网络适配器" } else { foreach ($Adapter in $Adapters) { try { switch ($Choice) { "1" { Write-Info "设置 $($Adapter.Name):223.5.5.5, 119.29.29.29" Set-DnsClientServerAddress -InterfaceAlias $Adapter.Name -ServerAddresses "223.5.5.5","119.29.29.29" Write-OK "$($Adapter.Name) DNS 已设置为 AliDNS + DNSPod" } "2" { Write-Info "设置 $($Adapter.Name):1.1.1.1, 8.8.8.8" Set-DnsClientServerAddress -InterfaceAlias $Adapter.Name -ServerAddresses "1.1.1.1","8.8.8.8" Write-OK "$($Adapter.Name) DNS 已设置为 Cloudflare + Google" } "3" { Write-Info "重置 $($Adapter.Name) 为 DHCP 自动获取" Set-DnsClientServerAddress -InterfaceAlias $Adapter.Name -ResetServerAddresses Write-OK "$($Adapter.Name) DNS 已重置为 DHCP" } default { Write-Warn "无效选项,跳过 $($Adapter.Name)" } } } catch { Write-Err "设置 $($Adapter.Name) 失败" Write-Muted $_.Exception.Message } } } Write-Line Write-OK "DNS 修复完成" Write-Info "建议重启计算机以使更改完全生效" } catch { Write-Err "DNS 修复过程中出现错误" Write-Muted $_.Exception.Message } Pause-Max