我有一个名为 的 Debian 服务器neptune
,它有一个静态 IP,192.168.1.10
提供 SMB、Intranet 和 SSH 服务。在我的 Windows 计算机上,它可以正常解析,但在我的 Mac 上,它与其主机名一起出现在“共享”下,我可以使用它。但是,我无法使用主机名通过 SSH 进入它,也无法通过浏览器中的主机名访问它。我尝试过重新启动我的 Mac 并更新其 IP 地址,但没有成功。
答案1
您缺乏基本的网络技能。要通过名称连接到某个对象,您需要一个 DNS 服务器,并在该 DNS 服务器中注册 IP 地址。
您所看到的只不过是网络中以不同的名称和域名广播的一堆协议。
从常识上讲,也许您缺少本地域。是的。尝试连接到您喜欢的以 .local 结尾的主机名;例如:如果您的主机名是 machine,请尝试 ssh 到 machine.local。
为什么我认为这是问题所在?因为您说您有一个带有 SMB 和额外服务的 Debian 服务器,所以它可能安装了 Avahi,而 Avahi 通常广播 .local 域。有关更多信息,请查看此处:http://avahi.org/wiki/AvahiAndUnicastDotLocal
编辑:由于您正在运行 DNS 服务器,因此您必须使用来自网络的记录填充 DNS。我不知道您定义了什么 DNS 域区域,但考虑到您正在运行 BIND,您必须以这种方式放置记录:
192.168.1.10 IN A neptune
之后,请仔细检查您的所有计算机是否都在使用您的 DNS 服务器。在 Windows 和 OS X 计算机中,它位于“网络偏好设置”中。只需将您的 DNS 服务器设置为主服务器,将另一个(通常来自您的 ISP)设置为故障转移 DNS。
然后您应该尝试连接neptune.yourdomain.com
并查看是否获得预期的结果。
nslookup
如果没有,请使用和工具启动调试过程dig
。DNS 解析失败时发生的一个常见情况是缓存错误,这种情况在 OS X 机器上经常发生,甚至在我的计算机上也是如此。因此,我不断在终端上发出此命令来清理缓存:
sudo killall mDNSResponder
让我们看看您的问题现在是否解决了。
答案2
据我所知,这是正常现象。如果您想让它工作,您可以设置自己的 DNS 服务器,或者在文件中添加条目hosts
。后一种选择最简单,您只需将以下内容添加到/private/etc/hosts
。
192.168.1.10 neptune
您应该能够使用以下命令对其进行编辑sudo nano /private/etc/hosts
答案3
我之前(最近,自上次启动以来)能够通过 ssh 连接到 Mac(从我的 Ubuntu 机器)。
我将通过以下方式获取 Mac 上的 IP:
ifconfig -a | grep -iw inet
“通常”,我会获得一个有效的 IP 地址,该地址与远程登录“共享”系统首选项中列出的 IP 地址一致。
但这次我只得到了 127.0.0.1(即 localhost),并且系统偏好设置仅列出了我无法访问的主机名。
我重新启动,然后我就能获得一个可用的 IP 地址。然后我就能通过 ssh 连接到这个可用的 IP 地址。(也可以连接到主机名 :-)。
尽管我非常希望能够通过脚本来绕过路由表和防火墙,甚至调试 OS X 内核,但我最终只是 scp 了该文件。
在这种情况下,我确实划清了界限,不使用 scp 而不是拇指驱动器。我有我的骄傲 (:-)。