OS X 上奇怪的 NS 行为 — 无法连接到 SSH 服务器

OS X 上奇怪的 NS 行为 — 无法连接到 SSH 服务器

我正在尝试通过 SSH 连接到运行 Debian 的 Eee PC 笔记本电脑,该网络上的主机名通过 DHCP 服务器自动向 DNS 注册。Eee PC 笔记本电脑电量耗尽并进入睡眠状态,现在再次启动时,Mac 无法识别它,只能看到程序nslookup

gaz:~ jeff$ ssh epc
ssh: Could not resolve hostname epc: nodename nor servname provided, or not known
gaz:~ jeff$ nslookup epc
Server:     192.168.2.20
Address:    192.168.2.20#53

Name:   epc.osnetwork
Address: 192.168.2.139

gaz:~ jeff$ ssh epc.osnetwork
ssh: Could not resolve hostname epc.osnetwork: nodename nor servname provided, or not known

现在,ssh epc这是我通常访问 Eee PC 的方式,但出于某种原因,我认为 OS X 的某些部分正在缓存无响应,尽管机器处于在线状态,但我不知道如何解决。我甚至不确定如何以任何程度的确定性解决这个问题,我怀疑重新启动可以解决这个问题,但由于缺乏无停机解决方案,我一直使用 IP 地址(仍然可以在 Mac 上使用 获取nslookup epc,这是最令人困惑的部分)。

如果我通过 SSH 连接到另一台在 Eee PC 宕机时没有尝试连接它的 Mac,那台 Mac 就可以毫无问题地通过 SSH 连接到它,但是当我返回到原来的 Mac 时,它仍然无法访问主机名。

网络上的其他非 Apple 机器似乎没有受到此行为的影响。

有谁知道为什么会发生这种情况,或者知道如何解决此问题?

[编辑] 我发现半小时后回来再试一次是可行的,但我仍然想知道为什么会发生这种情况以及如何纠正它。

答案1

您遇到了过于热心的 OS X DNS 缓存。下次您看到此信息时,可以将其清除:

# sudo dscacheutil -flushcache

这应该可以修复 SSH 等问题。

答案2

Mavericks 和 Yosemite(从 10.4 开始)中的命令是:

sudo killall -HUP mDNSResponder

来源:https://support.apple.com/en-us/HT202516

相关内容