在我的华硕路由器上安装 Merlin 380.70 后,我无法通过 cifs 挂载 USB 连接的 smb 共享。我不断收到不同的安装错误:6 和 22 是最常见的。我尝试将 smb 版本更改为 1.0、2.0 和 3.0。尝试设置 sec=ntlm。到目前为止还没有任何效果。我的坐骑是这样的:
sudo mount -t cifs //ip/share/ -o 用户名=John,domain=WORKGROUP,sec=ntlm,vers=1.0 /mnt/share
这表明没有这样的设备或地址。我尝试通过 ssh 查找 smb.conf 文件以查找完整路径,但找不到该文件。我感觉新固件对共享有不同的命名约定。有任何想法吗?
答案1
好的,我用 google 搜索了您正在运行的软件,并在 SourceForge 的自述文件中找到了以下内容:
- 已更改:Samba 协议支持现在可以设置为 SMBv1、SMBv2 或 SMBv1 + SMBv2(新默认设置)。这将导致所有型号的性能下降,但会更安全。理想情况下,人们应该将其更改为仅 SMBv2,然后重新启动所有客户端设备以开始仅使用新协议。如果性能比安全对您更重要,那么您可以将其切换回 SMBv1,这是旧的默认行为。
这告诉我,asuswrt-merlin 设备可能正在使用 SMBv1,而 Samba v3.6 却无法很好地处理。要使用 SMB v1,您需要在 smb.conf 中的 workgroup= 下更改以下设置
ntlmssp_client:force_old_spnego = 无 ntlmssp_client:client_ntlmv2_auth = 无客户端 ntlmv2 auth = 无客户端使用 spnego = 无
您可能还需要这个:
客户端明文身份验证=是
但可能不会。我需要上面四行 Linux 才能通过 SMB 连接到 OpenIndiana 盒子。以 ntlmssp_client 开头的行可能不需要,但它们已经在文件中,并且只要它们相同,这些行的多个副本就不会造成损害。您可以尝试看看将其中一个或另一个设置为 yes 是否有效。如果您将 Asuswrt-merlin 配置更改为 SMBv2,它可能会起作用,但我并不肯定。
答案2
这是原来的答案。基本上,它是如何判断设备是否可以使用 Microsoft 的 SMB/CIFS 协议进行访问:
我假设您正在谈论连接到华硕路由器的 USB 设备。第一步是确保华硕路由器上正确的 TCP 端口仍然打开。测试这一点的最简单方法是使用 telnet 或 netcat (nc)。
对于 telnet 来说,它是:
telnet 192.168.1.1 139
telnet 192.168.1.1 445
(tcp 端口 139 和 445 用于 CIFS)。如果端口未打开,您会得到以下结果:
root@JarMini:~# telnet 192.168.1.1 139
Trying 192.168.1.1...
telnet: Unable to connect to remote host: Connection refused
root@JarMini:~#
这是端口打开时您将得到的结果。
root@JarMini:~# telnet 192.168.1.1 445
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
^]
telnet> close
Connection closed.
注意:如果您已连接,则必须输入Ctrl-]来“中断”telnet 会话(或者多次按 Enter 键,SMB 守护程序可能会断开您的连接)。显然,“较新”版本的 SMB 不需要端口 139。 (我关于端口 139 的信息可能有点过时了。)
Netcat (nc) 稍微简单一些:
root@JarMini:~# nc -zv 192.168.1.1 445
Connection to 192.168.1.1 445 port [tcp/microsoft-ds] succeeded!
root@JarMini:~# nc -zv 192.168.1.1 139
nc: connect to 192.168.1.1 port 139 (tcp) failed: Connection refused
不幸的是,Netcat 有多个版本。 Ubuntu(及其衍生版本)使用 netcat-openbsd,这就是我所使用的。其他 Linux 系统可能有不同的 netcat 和不同的选项。因此,telnet 更安全,但稍微混乱一些。
此测试的目的是判断问题是否出在 SMB 配置上,或者设备根本没有侦听 SMB 请求。
中间的网络设备可能存在问题,但这似乎不太可能。
如果您感兴趣,我上面测试的设备是 Mac,我可以通过 CIFS 从 Linux 机器连接到它。
TheTwilightZone jmitchel # uname -a
Linux TheTwilightZone 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:30:51 UTC 2017 i686 i686 i686 GNU/Linux