我有两台服务器,其中一台似乎配置了一些“开箱即用”的东西,以允许“ssh servername.local”工作。我非常喜欢这个,并对其进行了研究,但我没有发现它们的配置有任何区别。
server1:(通过名称进行 ssh作品)
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 server1
server2:(通过名称进行 ssh不起作用)
$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 server2
server1.local 连接正常,server2.local 收到以下响应:
ssh: Could not resolve hostname server2.local: Name or service not known
我没有设置任何 DNS,并且两个服务器的 revolv.conf 文件是相同的。
server2 运行的是 ubuntu server 9.04 32 位(jaunty),server1 运行的是 ubuntu桌面9.10 64 位(业力)。
有人能告诉我应该去哪里看看有什么不同,以及为什么它对一个有效而对另一个无效吗?
答案1
Avahi 需要在两台机器上运行。它是提供 mDNS 服务的守护进程。
root@rilindo-desktop:~# ps -ef | grep avahi avahi 903 1 0 Jan01 ? 00:00:05 avahi-daemon: 正在注册 [rilindo-desktop.local] avahi 904 903 0 Jan01 ? 00:00:00 avahi-daemon: chroot helper root 18206 15276 0 11:23 pts/2 00:00:00 grep avahi
假设端口 5353 没有在机器上被过滤/阻止,您将需要验证 avahi 的配置。
答案2
您能检查两台机器和主机上的 /etc/nsswitch.conf 吗:设置?它们都一样吗?
答案3
还要检查 /etc/resolv.conf 中的“搜索”行
答案4
由于不依赖随机命名协议,您是否不能在服务器上设置静态 IP,然后将其各自的条目添加到其他机器的 hosts 文件中?例如
在服务器1上
192.168.1.200 server2
在服务器2上
192.168.1.100 server1
虽然 avahi 和其他 zeroconf 工具很有用,但您并不总是想要依赖它们。