大约 3 周前,我在连接 samba/cifs 共享时遇到错误,我有 4 台机器,一台使用 Windows,2 台使用 Fedora 24,一台使用 Fedora 22。我在两台 Fedora 24 机器上有共享,如果我尝试例如,通过 thunar 从一台 f24 机器连接到另一台机器时出现错误No route to host.
。我还在我的 fedora 22 机器上配置了一个单行脚本,使用以下命令连接到 f24 机器:
# mount -t cifs -o username=****,password=**** '\\192.168.1.1\share' remote/
它在很长一段时间内都像魅力一样工作,但最近它因以下错误而失败:
[ 91.981816] CIFS VFS: Error connecting to socket. Aborting operation.
[ 91.981960] CIFS VFS: cifs_mount failed w/return code = -113
Unable to find suitable address.
我还尝试从一台 f24 机器连接到另一台机器,我得到(在两台机器上,尝试相互连接):
Unable to find suitable address.
但是,如果我尝试在同一台目标计算机中使用相同的命令进行连接,它可以正常工作,并且可以正确安装。
Windows 机器根本无法连接。为什么会发生这种情况?我怎样才能解决这个问题?这对我来说是新的,因为直到 2-3 周前一切都工作正常。我也可以通过 ssh 访问其中任何一个,没有任何问题,问题完全出在 samba/cifs 上。
答案1
如果有人在使用最新更新(截至今天)的 Fedora 24 机器上遇到同样的问题,问题似乎根本不在于 samba,而是防火墙设置中的错误或配置错误。当尝试在 smbclient (-d3) 上使用 3 级调试模式进行连接时,我收到以下消息:
Connecting to 192.168.1.1 at port 445
Connecting to 192.168.1.1 at port 139
Connection to 192.168.1.1 failed (Error NT_STATUS_HOST_UNREACHABLE)
因此,出于好奇,我访问了服务器的防火墙实用程序,发现这些端口已经打开(名为samba
和samba-client
),因此我尝试使用良好的 ol'disable-reenable 来查看它是否有效,并收到以下错误:
INVALID_HELPER:“nf_conntrack_netbios_ns”在内核中不可用。
因此,显然某些更新导致我的防火墙规则丢失或混乱,因此我继续手动打开指定的端口(445 和 139),现在它按预期工作。
答案2
我认为问题在于 mount 命令的构造。尝试用这个:
mount -t cifs //192.168.1.1/share mount_point/ -o username=****,password=****
如果 192.168.1.1 中的共享配置配置良好,这应该可以工作。如果这不起作用,您可以在客户端计算机中使用 smbclient 来调试问题,而无需使用 mount,使用类似以下内容(在其中一台客户端计算机中执行):
smbclient //192.168.1.1/share -U username
它会提示你输入用户名密码,如果出错它会给你更详细的错误信息。