无法通过主机名ssh进入Ubuntu服务器

我刚刚在一个闲置的旧机器上安装了Ubuntu 12.04服务器,并通过以太网连接到我的路由器。按照指示设置了openssh-server以实现远程访问,但是我无法使用主机名从我的笔记本电脑ssh进入它。
奇怪的是,我可以使用IP地址ssh进入它。为了方便起见,我真的很想解决这个问题。我注意到有一些类似的问题,但似乎所有这些人都对如何解决问题有一些想法,并且提出了稍微更具体、技术性的版本的问题。
作为一个完全初学者的家庭网络,我会非常感激如果有人告诉我接下来该怎么做。

可能是重复的问题:如何通过主机名访问同一网络中的主机? - Jorge Castro
2个回答

除非在中央位置配置主机名,否则您的笔记本电脑无法知道您在Ubuntu服务器上配置的主机名。
因此,如果在安装Ubuntu服务器时将其命名为“bonkers”,则可以理解为在笔记本电脑上键入“ssh bonkers”将不起作用,因为笔记本电脑不知道该主机名。
可能的解决方案:
在你的笔记本电脑上(你没有说它运行的是哪个操作系统?),在/etc/hosts文件中为你的Ubuntu服务器的IP地址添加一行,类似这样(使用你的Ubuntu服务器的实际IP):
10.15.30.41 ubuntu-server 然后你可以执行ssh ubuntu-server命令,应该可以正常工作。请注意,hosts文件的位置取决于你的笔记本电脑使用的操作系统;例如,我不确定Windows上的位置在哪里。
在你的Ubuntu服务器上安装avahi-daemon软件包。这将利用mDNS协议在你的本地网络上“广播”其主机名。一旦安装并运行起来,你应该能够通过ssh ubuntu-server.local(注意.local域名)访问服务器。同样,如果你的笔记本电脑运行的是Windows,我无法确定它是否支持mDNS;我知道Ubuntu(以及任何其他安装了avahi-daemon的Linux)和Mac OS X默认支持它。

1设置DNS也是一个选择,但这有点像用手榴弹对付一只马蝇。(而且并非总是可行的)。 - jackweirdy

我遇到了类似的问题,尝试安装了Avahi-daemon来解决它,正如roadmr所建议的,但似乎没有任何结果。然后我输入了...
host myhostname

终端回答我说:
myhostname.lan has address 192.168.1.68
Host myhostname.lan not found: 3(NXDOMAIN)

在宾机中,我使用了主机名myhostname.lan,并且它正常工作。但当我通过DHCP连接时,使用分配的IP时它就无法工作...

我还发现,即使安装了avahi-daemon,"host"命令也无法使用host <system>或host <system>.local。然而,我可以通过ssh <system>.local来实现连接。所以我猜测host命令在mDNS/avahi方面不起作用。 - bgoodr