我使用此资源更改了树莓派上的主机名:如何更改 Raspberry Pi(或其他 Linux 设备)的主机名。
当我使用 ssh 客户端上的主机名连接到我的 pi 上的 ssh 服务器时,它找不到主机。
如果我使用 IP,它会连接到 pi。然后我登录并显示
user@newhostname
。
设备的 IP 是动态的,我希望它保持这种状态。每次分配新 IP 时,我的设备都必须将其 IP 与主机名关联。也许这种情况没有发生?
答案1
我假设您是在谈论解析 LAN 内的服务器名称。要实现此功能,您必须至少具备以下其中之一:
您自己的 LAN 内部(或在配套 LAN 上,也为您的 LAN 执行此项工作)的一个正常工作的 DNS。
客户端 /etc/hosts 文件中的条目,关联名称和 IP 地址。
ssh 服务器上有一个正在运行的 samba 服务器,您已在其中设置了服务器的 NetBIOS 名称。这样就可以通过 Microsoft 特定协议看到您。
最后,您可以使用多播,即 Apple 称之为 Bonjour。
这些可能性中的每一个都反映在您的文件 /et/nsswitch.conf 中,在以下行中:
hosts: files dns mdns4 mdns4_minimal wins
这决定了这些不同服务的使用顺序;上面的顺序最适合我的 LAN,因为我确实有一个本地 DNS 服务器,但您的可能有所不同。
最简单的解决方案很可能是涉及 samba 的解决方案:安装 samba 服务器,
sudo apt-get install samba
对于 Debian 和衍生产品,请进行相应更改,如果不是 Debian 和 Co.,则编辑文件/etc/samba/smb.conf,并设置线条
workgroup = WORKGROUP
NetBIOS name = YourPCNetBIOSName
反映适合您的电脑的数据,然后重新启动 samba 服务,
sudo service samba restart
对于 Debian 及其衍生产品,现在您的 ssh 客户端将能够通过上面指定的名称 YourPCNetBIOSName 找到 ssh 服务器,前提是 ssh 客户端做有胜利自己的选择/etc/nsswitch.conf文件。
您可能还希望启用 mdns,以便能够与 Apple 的 PC 交互。经过多次尝试,我发现 Debian 及其衍生产品上默认未安装库 libnss-mdns,因此,为了能够使用多播域名服务 (mdns),您必须先安装它:
sudo apt-get install libnss-mdns
此时,您也可以解决 Apple 电脑的问题。