能否在不中断现有连接的情况下添加/修改DNS服务器并使新连接生效?
能否在不中断现有连接的情况下添加/修改DNS服务器并使新连接生效?
当然可以!完全不用冒着中断现有SSH连接的风险重启网卡,下面针对不同操作系统给你具体的操作方法,保证现有连接不受影响,新连接立刻用上新DNS:
Linux 系统
- 临时生效(重启后恢复原设置):直接编辑
/etc/resolv.conf文件,添加或替换成你的新DNS服务器地址,格式为nameserver 你的DNS地址(比如nameserver 8.8.8.8)。保存后,新发起的连接就会自动用新DNS解析域名了。 - 持久生效(重启后仍保留设置):如果你的系统用
systemd-resolved,可以用命令resolvectl dns <你的网卡名> <DNS地址>(比如resolvectl dns eth0 8.8.8.8),这个命令会直接更新DNS配置,且不会中断现有连接。要是用NetworkManager,建议先临时改resolv.conf应急,之后再通过图形界面或者nmcli工具修改持久化配置(避免直接执行nmcli con up/down导致断连)。
Windows 系统
打开管理员权限的命令提示符,执行以下命令:
netsh interface ipv4 add dnsserver "你的网卡名称" address=你的DNS地址 index=1
比如你的网卡叫“以太网”,DNS用谷歌的,就是:
netsh interface ipv4 add dnsserver "以太网" address=8.8.8.8 index=1
index=1表示把这个DNS设为优先解析,执行完后新连接马上就会用新DNS,现有连接完全不受影响。
macOS 系统
打开终端,执行命令:
networksetup -setdnsservers "你的网络接口名" 你的DNS地址1 你的DNS地址2
比如用Wi-Fi连接,DNS设为谷歌的两个地址:
networksetup -setdnsservers "Wi-Fi" 8.8.8.8 8.8.4.4
执行后新发起的连接就会使用新DNS解析域名,已经建立的SSH等连接因为已经完成了域名到IP的解析,会继续正常通信,不会中断。
顺便提一句:现有连接之所以不受影响,是因为它们在建立时已经完成了DNS解析,后续通信都是基于IP地址的,和DNS服务器没有关系啦~
备注:内容来源于stack exchange,提问作者FriendFX
相关产品推荐
相关产品推荐

