smbmount 无法解析主机名的地址

smbmount 无法解析主机名的地址

我正在阅读作为使用 samba 从 Linux 访问 Windows 网络的指南。

我想要通过网络访问的机器名为HP,以下命令可以正常工作:

smbclient -L HP
smbclient //HP/D

但是,当我想安装它时,我得到:

$ smbmount //HP/D /media/hp/d/
安装错误:无法解析 HP 的地址:没有与主机名关联的地址
未指定 IP 地址且未找到主机名

这个错误看起来很奇怪,如果无法解决HP,smbclient 是如何读取它的?!

更新

我不想手动指定 IP 地址,因为它们往往会时不时地发生变化。

答案1

这很奇怪……通常 smbmount 可以自行找出名称。但是,由于它不能,您可以使用 nmblookup 找出哪些解析方法有效,然后将其用作 mount 命令的一部分。例如,如果您使用 WINS 服务器:

$ nmblookup -R -U 172.16.1.3 Haruhi
querying Haruhi on 172.16.1.3
172.16.1.3 Haruhi<00>

然后你可以用一些简单的 shell 工作来提取它:

$ nmblookup -R -U 172.16.1.3 Haruhi | grep 'Haruhi<00>' | cut -d' ' -f1
172.16.1.3

这样你就可以把它们放在一起:

smbmount //HP/D /media/hp/d/ -o ip=`nmblookup -R -U 172.16.1.3 HP | grep 'HP<00>' | cut -d' ' -f1`

因此您没有列出 IP。

答案2

在 Debian 以及其他平台上,安装 winbind:

apt-get install winbind

并检查“/etc/nsswitch.conf”的“hosts”行中是否有“wins”,如下所示:

hosts: files dns wins

第二个可能已经为您完成了。

该包创建文件 /lib/libnss_wins.so

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/integrate-ms-networks.html#id2668413

然后您只需将条目添加到 /etc/fstab 文件中即可。

答案3

假设您已设置 winbind,则在主机名后附加 .local 对我来说是可行的。例如:sudo smbmount //mycomputername.local/storage /media/storage/

答案4

您可以使用选项开关指定 IP 地址,将其添加到末尾:

-o ip=111.111.111.111

显然要用适当的服务器 IP 替换该 IP。

相关内容