我正在阅读这作为使用 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。