每当我在 Windows 7 上的 cygwin 中运行 ssh 时,我都会收到错误:
ssh: Could not resolve hostname ... Non-recoverable failure in name resolution
lost connection
如果我在错误发生后立即尝试相同的命令,它会正常运行。如果我等待太久才再次尝试,我会再次收到错误。
我在 XP 上没有遇到过这种情况。有人知道为什么 ssh 总是第一次失败吗?
答案1
我在 Virtualbox 中运行 Windows 7 和 Cygwin,也遇到了同样的问题。我遇到的原因是盲目地在 Virtualbox 中启用了 nat dns“解析器模式”(https://www.virtualbox.org/manual/ch09.html#nat_host_resolver_proxy) 来试图解决一些不相关的事情。
在解决第三个问题时,我注意到 dig 的输出中有一些有趣的东西。
$ dig <dns_server_ip> <network_server_name> ANY
...
;; Warning: Message parser reports malformed message packet.
...
其中 dns_server_ip 是 Virtualbox NAT 适配器提供的 DNS,10.0.2.3。
立即修复是在 Windows 客户机中手动设置 DNS 条目。我还暂时禁用了主机解析器模式(应该会有同样的效果)。