我正在尝试通过 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