调试提示:

调试提示:

解决了:确保 libnss-mdns 已安装!

我在使用 .local 主机名从上网本通过 SSH 连接到台式机时遇到了麻烦。有时,我必须重置我使用的路由器,这会重置它提供给我的设备的地址,所以不久前我设置了 Avahi 来解决这个问题*。/etc/avahi/services/ssh.service 文件是从文档中复制的标准文件:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<!-- See avahi.service(5) for more information about this configuration file -->
<service-group>
    <name replace-wildcards="yes">%h</name>
       <service>
            <type>_ssh._tcp</type>
            <port>22</port>
       </service>
 </service-group>

这曾经工作正常,但是现在由于某种原因,当我尝试从上网本 ssh 到桌面时,我收到以下错误消息(请注意,我在此输出中更改了我的电脑的主机名):

user@netbook>> ssh pc.local -vvv
OpenSSH_6.2p2 Ubuntu-6ubuntu0.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/username/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
ssh: Could not resolve hostname pc.local: Name or service not known

当我手动输入 IP 地址时,我可以从上网本通过 SSH 连接到 PC,并且当我正确设置 /etc/hosts 时(这样 PC 上的守护进程就可以正常工作),只有当我尝试使用 .local 地址时,它才会停止工作。即使使用 .local 主机名,反向 SSH(PC->上网本)也可以正常工作。Avahi 似乎也运行正常:

user@netbook>> avahi-browse -a -t+  
+  wlan0 IPv6 netbook                                  SSH Remote Terminal       local
+  wlan0 IPv6 netbook [<MAC address>]       Workstation                       local
+  wlan0 IPv6 netbook                                  Remote Disk Management local
+  wlan0 IPv4 netbook                                  SSH Remote Terminal       local
+  wlan0 IPv4 netbook [<MAC address>]       Workstation                       local
+  wlan0 IPv4 netbook                                  Remote Disk Management local
+  wlan0 IPv4 pc                                          SSH Remote Terminal       local
+  wlan0 IPv4 pc [<MAC address>]               Workstation                       local
+  wlan0 IPv4 pc                                          Remote Disk Management local
+  wlan0 IPv6 pc                                          SSH Remote Terminal       local
+  wlan0 IPv6 pc [<MAC address>]               Workstation                      local
+  wlan0 IPv6 pc                                          Remote Disk Management local

上网本运行的是 Lubuntu 13.10;请注意,我最近确实换成了 Lubuntu,我只记得在 Lubuntu 上看到了这个错误,在普通的 Ubuntu 上没有看到。我的台式机运行的是 Ubuntu 13.10。

任何帮助,将不胜感激!

*我知道可以将我的路由器设置为永久地为两个设备提供设置地址,如果我无法解决这个问题,我会这样做,但我宁愿尝试解决这个问题,而不是绕过它。

ETA:使用 .local 主机名从上网本 ping PC 不起作用(未知主机)。

编辑 2:内容/etc/nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd:         compat
group:          compat
shadow:         compat
hosts:          files mdns4_minimal dns [NOTFOUND=return] mdns4
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis

答案1

嗯,*.local还没解决。

很快客户端机器(笔记本)

  1. 安装avahi-dnsconfd

    sudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils
    

    avahi-dnsconfd听取出版意见并将其传递给resolvconf

  2. 安装libnss-mdns (缺少此库,安装它可以解决问题)

    sudo apt-get install libnss-mdns
    

    nss-mdns 是 GNU C 库 (glibc) 的 GNU 名称服务切换 (NSS) 功能的插件,它通过多播 DNS(使用 Zeroconf,又名 Apple Bonjour / Apple Rendezvous)提供主机名解析,有效地允许常见的 Unix/Linux 程序在临时 mDNS 域 .local 中进行名称解析

  3. 查看/etc/nsswitch.conf

    hosts:     files wins mdns4_minimal dns [NOTFOUND=return] mdns4
    

    如果您有一个配置了解析的 DNS 服务器,则它应该在mdns4_minimalmdns4之前[NOTFOUND=return]和 之前。dns*.local

    wins如果您没有使用 winbind/samba 来解析 Windows 共享主机名,请删除。

  4. 重启


调试提示:

  • 客户端机器(笔记本)

    1. 检查avahi-dnsconfd服务状态

      $ service avahi-dnsconfd status
      avahi-dnsconfd start/running, process 1548
      
    2. 运行avahi-discover,您的桌面应该列在 IPv4→本地→工作站中

      屏幕截图中的示例mx5是我的 PC,其中salah-Aspire-5738有另一台机器。

      在此处输入图片描述

    3. 查看 Avahi 是否可以解析主机名

      avahi-resolve -4 --name yourdesktop.local
      
    4. Ping 测试

      $ ping salah-Aspire-5738.local
      PING salah-Aspire-5738.local (192.168.1.3) 56(84) bytes of data.
      64 bytes from salah-Aspire-5738.local (192.168.1.3): icmp_seq=1 ttl=64 time=2.69 ms
      
  • 服务器(台式机),以防avahi-discover客户端机器中没有列出服务器条目。

    1. 确认已avahi-daemon安装

      sudo apt-get install avahi-daemon avahi-dnsconfd avahi-discover avahi-utils
      

      avahi-daemon提供服务发布。

    2. 检查其服务状态

      $ service avahi-daemon status
      avahi-daemon start/running, process 1517
      
    3. 默认avahi发布_workstation._tcp服务。检查avahi-discover本地使用,如果没有列出,请尝试启用它/etc/avahi/avahi-daemon.conf(删除#

      publish-workstation=yes
      

      然后重新启动守护进程:

      sudo service avahi-daemon restart
      

      再检查一遍。

相关内容