无法解析家庭网络上的主机名“raspberrypi”

无法解析家庭网络上的主机名“raspberrypi”

我在 2015 年 5 月 5 日运行 Raspbian 的 Raspberry Pi B+ 上安装并配置了 (?) Samba,但我无法 ping 或连接到其主机名。我可以通过其 IP 地址连接,但我在测试 Samba 共享时发现了这个问题。

我发现了这个问题,无法将主机名解析为 ip,很好地解释了基础知识,但我似乎遇到了某种问题。

我可以检查或更改哪些文件或设置才能使主机名解析在树莓派上正常工作?

Samba 可以正常工作,但我认为存在权限问题,需要解决。那么,Samba 的名称解析可能存在问题吗?

我在测试的时候是从以下机器进行测试的:

  • Windows 7 笔记本电脑
  • Android 手机使用 PingTools
  • 运行自定义以太网堆栈的伪自定义硬件(Crestron MPS-200)
  • NetGear WNDR3800

所有设备都无法 ping “raspberrypi” 以将其名称解析为其 IP 地址。WNDR3800 可以查看 raspi,并查看其名称,而重新启动路由器后,我无法使名称解析正常工作。

#raspberrypiIRC 频道询问时,有个人想讨论 WINS 服务器。我家里没有 WINS 服务器,但办公室里有一台,我会在办公室继续进行测试/故障排除。

这是我设置 Samba 所遵循的指南: 如何将 Raspberry Pi 变成低功耗网络存储设备

我在下山的路上碰到了树上的每一个树枝,因此,虽然这是一本制作精良、用意良好的指南,但我认为它已经过时了,不适合再推荐给任何人。

更新 1

我把 Pi 带到工作场所进行测试,根据建议的答案在配置文件中添加行,但仍然得到相同的结果。

我补充道:

NetBIOS name = raspberrypi

因为/etc/samba/smb.conf甚至没有 NetBIOS 名称部分。我认为这是值得注意的,因为默认配置似乎已准备好取消注释所有内容。

我按照说明在文件wins前面添加了:[NOTFOUND=return]/etc/nsswitch.conf

Make sure that the file /etc/nsswitch.conf contains a line like:
   hosts:          files mdns4_minimal dns mdns4 wins [NOTFOUND=return]
where the important part is that you have wins before the NOTFOUND part. 

该文件中的当前行内容为:

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

进行更改后,我关闭了 raspi,然后重新打开电源。它们没有达到预期的效果。我无法 ping “raspberrypi” 并将其解析为 IP 地址。

nmblookup 似乎不是 Windows 命令。但如果我在 raspi 上使用它,它会返回 raspi 的 IP 地址。

从 raspi 中,如果我 ping “raspberrypi”,我将得到名称解析,尽管到环回适配器:127.0.1.1

更新 2

我几乎放弃了通过名称访问它的尝试。毕竟,即使不通过名称访问它,我可能也没什么问题。我更愿意使用名称,但如果 Linux 的仇恨情绪如此强烈,我想我会尝试其他方法。

我又开始测试实际的 Samba 网络。结果发现这又要另当别论了。但是当我在 Windows 资源管理器中查看时,我看到 RASPBERRYPI 出现在网络下的列表中!

类似这样的

我点击它并最终找到了error 0x80070035这是网络上非常流行的术语。尽管我还没有找到任何与 Linux 相关的内容。

raspi网络错误

如果我点击诊断按钮,我会得到以下信息:

raspi 网络错误 2

最终我得到了这个:

raspi 网络错误 3

最后结果如下:

raspi 网络错误 4

答案1

这实际上分为两个部分:

1.首先,在文件的部分/etc/samba/smb.conf[global],前两行必须是:

 workgroup = WORKGROUP
 NetBIOS name = TheNameOfYourPi

(如果您的工作组名称不是 WORKGROUP,请相应地更改第一个语句)。

  1. 确保文件/etc/nsswitch.conf包含如下行:

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

其中重要的部分是winsNOTFOUND 部分之前的部分。

相关内容