当尝试使用 ssh 从终端连接到我的树莓派时:连接永远挂起。ssh [email protected]
当我 ping 时[电子邮件受保护],我得到ping: cannot resolve [email protected]: Unknown host
我可以使用 IP 地址进行 ping 和 ssh 操作:ssh [email protected]
不确定我是否需要配置笔记本电脑网络设置 (macOS) 或树莓派设置 (Debian) 才能通过主机名进行连接。
答案1
当您为主机指定主机名时,只有该主机知道它。任何其他主机根本不知道主机名(及其对应的 IP 地址)。名称服务(如 DNS、NIS 等)略有不同,它们通过网络“分发”这些知识。但就我们的目的而言,只有主机本人知道其主机名。
话虽如此:您想要从一个系统(让我们称之为“yourpc”)连接到另一个系统(“pi”)。为此,“yourpc”必须知道哪个 IP 地址对应于该名称“pi”。在没有任何名称服务的情况下,有一种方法可以启发“yourpc”,即:将主机名及其对应的IP地址输入到文件中/etc/hosts
。事实上这就是这个文件的具体目的。
典型的/etc/hosts
文件如下所示:
# Place comments after octothorpe signs, like in shell scripts
10.1.1.1 host1
10.1.1.2 host2
10.1.1.3 host3 # an inline comment is also possible
# you can also specify "aliases" - multiple names under which the host is also known
10.1.1.4 host4 myraspberrypi
...
作为事后的想法并感谢@Archemar 的建议:
用户名与 IP 级别无关。在这个级别,我们只处理主机(或者更确切地说,它们的接口)、网络和类似的实体。用户或他们的名字永远不会在此级别进入此图片。
使用上面的示例主机文件,以下内容都是相同的:
ssh [email protected]
ssh someuser@host4
ssh someuser@myraspberrypi