如何通过 SAMBA 连接到(Windows)文件服务器时解决 CentOS 中的 NT_STATUS_HOST_UNREACHABLE

如何通过 SAMBA 连接到(Windows)文件服务器时解决 CentOS 中的 NT_STATUS_HOST_UNREACHABLE

我正在使用 CentOS,我需要连接到在 Windows 上运行的文件服务器。我的朋友告诉我,我需要安装 SAMBA 才能做到这一点。所以我安装了 Samba,当我尝试检查安装是否成功时,这个命令

smbclient //[主机名]/[共享名] -U [用户名]

给了我这个

连接到 XXX.XXX.XXX.XXX:XXX 超时 连接到 XXX.XXX.XXX.XXX 错误 (没有到主机的路由) 连接到 XXX.XXX.XXX.XXX 失败 (错误 NT_STATUS_HOST_UNREACHABLE)

我该如何解决?

以下是我安装 SAMBA 的分步说明。请检查我是否遗漏了什么。

  1. 使用以下命令检查 SAMBA 是否已安装:$ rpm -q samba

  2. 如果尚未安装 SAMBA。输入以下命令以获得 root 访问权限 $ su –

  3. 然后您将被要求输入您的密码。

  4. 使用以下命令下载并安装 Linux SAMBA 包:yum install samba

  5. 按照以下步骤配置 Linux 防火墙,使其允许 SAMBA 流量。a. 单击系统 >> 管理 > 安全级别和防火墙 b. 在提供的文本框中输入 root 密码 c. 在“防火墙选项”选项卡中,选中 SAMBA > 组合框。d. 应用并按确定。

  6. 配置 SAMBA 配置文件。在终端中,您应该具有 root 访问权限(按照第 2 点所述操作)并输入以下命令。

    gedit /etc/samba/smb.conf
    

这将打开 smb.conf 并且可以进行任何修改。

找到配置文件中包含工作组的部分。编辑该部分,将值更改为“工作组”

   workgroup = workgroup

并添加此部分 [NetApps]

path = /data/network-applications 
  writeable = yes
  browseable = yes
valid users = administrator Save all the changes.
  1. 创建 SAMBA 用户 a. 您必须通过执行第 2 项中的命令获得 root 权限。 b. 添加管理员作为用户 smbpasswd -a > 管理员
    c. 然后它会要求您输入该帐户的密码。 d. 要了解配置是否有任何错误,请使用此命令 Testparm

  2. 启动 SAMBA 和 NetBios 服务 a. 启动 SAMBA 和 NetBios 服务 /etc/init.d/smb {start|stop|restart|reload|status|condrestart}

  3. 从 CentOS 访问 Windows 共享 a. 执行第 2 步获取 root 权限。 b. 下载并安装 samba-client $ Yum install > samba-client

答案1

我是从 samba 服务器的角度来写这篇文章的。

如果您无法使用 GUI 或者更喜欢在命令行中执行操作,则可以将步骤 5 替换为:

首先,确定 samba 正在监听哪些端口。可以使用以下命令完成此操作:

netstat -tulpn | egrep “samba|smbd|nmbd|winbind”

你会看到类似这样的内容:

tcp 0 0 127.0.0.1:139 0.0.0.0:* 监听 43270/smbd
tcp 0 0 10.0.0.1:139 0.0.0.0:* 监听 43270/smbd
tcp 0 0 10.0.0.1:88 0.0.0.0:* 监听 43273/samba
tcp 0 0 127.0.0.1:88 0.0.0.0:* 监听 43273/samba
tcp 0 0 127.0.0.1:445 0.0.0.0:* 监听 43270/smbd
tcp 0 0 10.0.0.1:445 0.0.0.0:* 监听43270/小松

上述示例显示,服务正在本地主机 (127.0.0.1) 和 IP 为 10.0.0.1 的接口上监听 - 每个都在列出的端口上(139、88、445 等)。有关 samba 端口使用情况的更多信息,请参见此处:https://wiki.samba.org/index.php/Samba_port_usage

记下端口和相关的 tcp/udp,然后在 /etc/sysconfig/iptables 中添加打开这些端口和协议的行(在编辑之前备份 iptables 可能是个好主意)。

如果我们取上面示例中输出的第一行,则需要在 iptables 中打开 TCP 端口 139。这可以通过将以下文本行添加到 /etc/sysconfig/iptables 来实现:

-A 输入 -m 状态 --状态新 -m tcp -p tcp --dport 139 -j 接受

假设你想打开 UDP 端口 137,你可以在 /etc/sysconfig/iptables 中添加以下文本行

-A 输入-m 状态 --状态新-m udp -p ucp --dport 137 -j 接受

您需要继续添加需要打开的其他端口的线路。

然后保存更改并重新启动 IPtables(service iptables restart)。

希望有所帮助。

相关内容