本文目录导读:

我来介绍几种批量修改DNS设置的脚本方法,支持Windows、macOS和Linux系统。
Windows系统 (PowerShell)
批量修改所有网络适配器的DNS
# 设置主DNS和备用DNS
$primaryDNS = "8.8.8.8"
$secondaryDNS = "8.8.4.4"
# 获取所有网络适配器
$adapters = Get-NetAdapter | Where-Object {$_.Status -eq "Up"}
foreach ($adapter in $adapters) {
Write-Host "正在修改适配器: $($adapter.Name)" -ForegroundColor Green
# 设置DNS服务器
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ServerAddresses ($primaryDNS, $secondaryDNS)
}
Write-Host "所有适配器DNS已修改完成" -ForegroundColor Yellow
针对特定适配器修改
# 只修改以太网和WiFi适配器
$targetAdapters = @("以太网", "WiFi", "本地连接")
foreach ($adapterName in $targetAdapters) {
$adapter = Get-NetAdapter -Name $adapterName -ErrorAction SilentlyContinue
if ($adapter) {
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ServerAddresses ("8.8.8.8", "8.8.4.4")
Write-Host "已修改 $adapterName 的DNS"
}
}
从CSV文件批量读取配置
# DNS配置CSV文件格式:
# AdapterName,PrimaryDNS,SecondaryDNS
# "以太网","8.8.8.8","8.8.4.4"
# "WiFi","1.1.1.1","1.0.0.1"
$csvPath = "C:\dns_config.csv"
$dnsConfigs = Import-Csv $csvPath
foreach ($config in $dnsConfigs) {
$adapter = Get-NetAdapter -Name $config.AdapterName -ErrorAction SilentlyContinue
if ($adapter) {
$dnsServers = @($config.PrimaryDNS)
if ($config.SecondaryDNS) {
$dnsServers += $config.SecondaryDNS
}
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ServerAddresses $dnsServers
Write-Host "已配置 $($config.AdapterName)"
}
}
Windows批处理脚本 (CMD)
@echo off
chcp 65001 >nul
set PRIMARY_DNS=8.8.8.8
set SECONDARY_DNS=8.8.4.4
echo 正在批量修改DNS设置...
for /f "tokens=*" %%a in ('netsh interface show interface ^| find "已连接"') do (
for /f "tokens=1-4 delims= " %%b in ("%%a") do (
set "ADAPTER_NAME=%%d"
call :SetDNS "%%d"
)
)
echo DNS修改完成!
pause
exit /b
:SetDNS
echo 正在修改适配器: %~1
netsh interface ip set dns "%~1" static %PRIMARY_DNS%
netsh interface ip add dns "%~1" %SECONDARY_DNS% index=2
goto :eof
macOS系统 (Bash)
#!/bin/bash
# DNS服务器配置
PRIMARY_DNS="8.8.8.8"
SECONDARY_DNS="8.8.4.4"
# 获取所有网络服务
services=$(networksetup -listallnetworkservices | grep -v "An asterisk")
for service in $services; do
echo "正在修改服务: $service"
# 检查服务是否启用
if networksetup -getinfo "$service" > /dev/null 2>&1; then
networksetup -setdnsservers "$service" $PRIMARY_DNS $SECONDARY_DNS
echo "✓ $service DNS已更新"
else
echo "✗ $service 不可用,跳过"
fi
done
echo "所有服务DNS配置完成"
Linux系统 (Bash)
#!/bin/bash
# DNS配置文件路径
DNS_CONFIG="/etc/resolv.conf"
BACKUP_FILE="/etc/resolv.conf.backup.$(date +%Y%m%d_%H%M%S)"
# 新的DNS服务器
PRIMARY_DNS="8.8.8.8"
SECONDARY_DNS="8.8.4.4"
echo "备份原DNS配置..."
cp $DNS_CONFIG $BACKUP_FILE
echo "批量修改DNS配置..."
# 方法1: 直接修改resolv.conf
cat > $DNS_CONFIG << EOF
# Generated by DNS batch script
nameserver $PRIMARY_DNS
nameserver $SECONDARY_DNS
options rotate
options timeout:1
EOF
echo "已更新DNS配置"
echo "原配置备份至: $BACKUP_FILE"
# 方法2: 使用nmcli (NetworkManager)
if command -v nmcli &> /dev/null; then
echo "使用NetworkManager修改DNS..."
connections=$(nmcli -t -f NAME connection show --active)
for conn in $connections; do
nmcli connection modify "$conn" ipv4.dns "$PRIMARY_DNS $SECONDARY_DNS"
nmcli connection up "$conn"
echo "已修改连接: $conn"
done
fi
远程批量修改 (跨网络)
PowerShell远程执行
# 计算机列表
$computers = @(
"PC-001",
"PC-002",
"PC-003"
)
$credential = Get-Credential
foreach ($computer in $computers) {
try {
Invoke-Command -ComputerName $computer -Credential $credential -ScriptBlock {
$adapters = Get-NetAdapter | Where-Object {$_.Status -eq "Up"}
foreach ($adapter in $adapters) {
Set-DnsClientServerAddress -InterfaceIndex $adapter.ifIndex -ServerAddresses ("8.8.8.8", "8.8.4.4")
}
}
Write-Host "$computer 完成" -ForegroundColor Green
}
catch {
Write-Host "$computer 失败: $_" -ForegroundColor Red
}
}
使用配置文件批量管理
JSON配置文件示例
{
"dns_servers": {
"primary": "8.8.8.8",
"secondary": "8.8.4.4"
},
"clients": [
{
"hostname": "PC-001",
"interface": "eth0"
},
{
"hostname": "PC-002",
"interface": "WiFi"
}
]
}
PowerShell读取JSON配置
$config = Get-Content "dns_config.json" | ConvertFrom-Json
foreach ($client in $config.clients) {
# 执行修改操作
Set-DnsClientServerAddress -InterfaceAlias $client.interface -ServerAddresses ($config.dns_servers.primary, $config.dns_servers.secondary)
}
注意事项
- 管理员权限:Windows需要以管理员身份运行
- 备份配置:修改前备份原DNS设置
- 测试验证:修改后测试DNS解析:
nslookup google.com
- 网络兼容性:不同网络环境可能要求特定DNS
- 批量范围:根据实际需求控制修改范围
选择适合你环境和需求的脚本方法即可实现DNS的批量修改。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播