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

Jef*_*ing 6 networking ssh hostname macos

我正在尝试通过 SSH 连接到在网络上运行 Debian 的 Eee PC 笔记本电脑,其中主机名通过 DHCP 服务器自动注册到 DNS。Eee PC 笔记本电脑已经没电并进入睡眠状态,现在当它再次启动时,除了nslookup程序外,Mac 看不到它。

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
Run Code Online (Sandbox Code Playgroud)

现在,这ssh epc是我通常访问 Eee PC 的方式,但由于某种原因,我认为 OS X 的某些部分尽管机器在线但我不知道如何缓存无响应。我什至不确定如何以任何程度的确定性解决这个问题,我怀疑重启会解决这个问题,但由于缺乏无停机解决方案,我只是使用 IP 地址(仍然可以在mac with nslookup epc,这是最令人费解的部分)。

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

网络上的其他非 Apple 机器似乎不会受到这种行为的影响。

有谁知道为什么会发生这种情况,或者有关于如何解决这种行为的想法?

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

pol*_*ial 4

您遇到过过于热心的 OS X DNS 缓存。下次你看到这个时,你可以刷新它:

# sudo dscacheutil -flushcache
Run Code Online (Sandbox Code Playgroud)

这应该可以解决 SSH 等问题。