如何使用主机名而不是 IP 连接到 Samba 服务器?

如何使用主机名而不是 IP 连接到 Samba 服务器?

我是 Linux 的新手,最近组建了一个媒体服务器,存放我所有的电影,运行 Ubuntu 12.04。

按照教程和论坛的操作后,我可以通过主机名和 IP 成功 ping 通我的 Windows 桌面盒和媒体服务器 Ubuntu 盒,反之亦然。

我已经配置了 Samba,在我的媒体服务器上设置了一个名为 Movies 的共享。我还使用我的 Linux 用户名、Windows 用户名和我的 Linux 密码在 Samba 上设置了一个帐户。

我的 Ubuntu 盒现在可以在我的 win7 盒上的网络树上看到,电影共享也是如此。但是,当我尝试从 win7 盒访问电影共享时,我没有权限这样做。

我注意到,通过使用我为 Ubuntu 媒体服务器发布的静态 IP 地址,我可以轻松访问共享。

然而,我希望能够解决这个问题并使用我的 Ubuntu 媒体服务器盒的主机名访问共享。

如果我的设置有点不清楚,请抱歉!

答案1

有几个问题可能会导致这种情况:

  1. 在 Samba 配置文件中启用 Netbios

    在您的/etc/samba/smb.conf文件中,在 WORKGROUP 行后添加以下内容:
    netbios name = PC_NAME其中 PC_NAME 是您的 PC 的名称,它将显示在网络中。然后重置 samba 服务sudo service smbd restart

  2. 没有静态IP

    需要设置静态 IP,以便网络上的其他 PC 能够看到您。这也取决于您的路由器和网络配置。

  3. 主机名长度应小于 15 个字符

    如果您的主机名长度超过 15 个字符,在某些情况下会出现错误。输入hostname以查看您的主机名。要更改它,您可以:

    sudo sysctl kernel.hostname=NAME

    或者您可以编辑该/etc/hostname文件并重新启动。

  4. /etc/samba/smb.conf文件中,查找以下内容:

    # What naming service and in what order should we use to resolve host names
    # to IP addresses
    ;   name resolve order = lmhosts host wins bcast
    

    取消注释该行name resolve order并确保它bcast是列表中的第一个,之后应如下所示:

    name resolve order = bcast lmhosts host wins

    然后按照我上面提到的重新启动 Samba 服务。

这一切都假设问题出在 Ubuntu 上,您已经安装了 Samba,并且您没有通过 Active Directory 工作。

在许多情况下,它也是 Windows。您需要执行诸如刷新 DNS 和注册之类的操作。在 Windows 上的终端 (cmd) 中执行以下操作:

ipconfig /flushdns
ipconfig /registerdns

之后您需要重启 PC。之后,请检查您是否可以通过net view在 Windows 中执行的操作来查看 Ubuntu PC。

答案2

就我而言,我必须重新启动 nmbd 服务

sudo systemctl restart nmbd

答案3

对我来说,这是因为我的 ubuntu 将主机名绑定到 IPv6 地址,如果您继续遇到问题,下面的文章值得一试。

http://telsonalva.blogspot.in/2016/07/how-to-access-samba-share-in-linux-by.html

这对我有用

相关内容