macOS Big Sur 11.6及以上版本如何通过命令行设置DNS服务器
macOS 设置DNS命令报错解决方案
报错根因
sudo: networksetup: command not found 并非苹果在新版本系统中移除了该工具,而是sudo运行时的PATH环境变量默认未包含/usr/sbin目录,networksetup默认存放于该路径下。
方案1:补全路径使用原命令
直接补全绝对路径即可执行原有设置逻辑,无需更换命令:
sudo /usr/sbin/networksetup -setdnsservers "$interface" "${servers[@]}"
方案2:使用scutil命令实现等效操作
如果需要使用原生的底层命令替代,可通过scutil完成DNS设置:
- 第一步:查询所有可用网络服务名称,确认需要设置的接口参数
/usr/sbin/networksetup -listallnetworkservices
- 第二步:执行DNS设置,示例设置DNS为114.114.114.114、8.8.8.8,将
$interface替换为上一步查询到的对应网络服务名称即可
sudo scutil << EOF d.init d.add ServerAddresses * 114.114.114.114 8.8.8.8 set /State/Network/Service/$interface/DNS EOF
- 第三步:验证DNS配置生效
scutil --dns | grep 'nameserver\[[0-9]*\]'
内容的提问来源于stack exchange,提问作者balupton
相关产品推荐
相关产品推荐

