在我的华硕路由器上安装 Merlin 380.70 后,我无法通过 cifs 安装 USB 连接的 smb 共享。我不断收到不同的安装错误:6 和 22 是最常见的。我尝试将 smb 版本更改为 1.0、2.0 和 3.0。尝试设置 sec=ntlm。到目前为止没有任何效果。我的坐骑是这样的:
sudo mount -t cifs //ip/share/ -o username=John,domain=WORKGROUP,sec=ntlm,vers=1.0 /mnt/share
其中没有显示这样的设备或地址。我尝试 ssh'ing 来查找我的 smb.conf 文件以查找完整路径,但找不到该文件。我感觉新固件对共享有不同的命名约定。有任何想法吗?
好的,我用谷歌搜索了你正在运行的软件,并在 SourceForge 的 README 文件中找到了这个:
这告诉我 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,它可能会起作用,但我并不肯定。
这是原来的答案。基本上,它是如何使用 Microsoft 的 SMB/CIFS 协议来判断设备是否可访问:
我假设您正在谈论连接到华硕路由器的 USB 设备。第一步是确保在华硕路由器上仍然打开正确的 tcp 端口。最简单的测试方法是使用 telnet 或 netcat (nc)。
对于 telnet,它将是:
(tcp 端口 139 和 445 是用于 CIFS 的端口)。如果端口未打开,您会得到以下结果:
如果端口打开,这就是您将得到的。
注意:如果您已连接,则必须键入Ctrl-]以“中断”远程登录会话(或者只需多次按 Enter 键,SMB 守护程序可能会断开您的连接)。显然,“较新”版本的 SMB 不需要端口 139。(我在 139 端口上的信息可能有点过时了。)
Netcat (nc) 稍微简单一些:
不幸的是,有几个版本的 Netcat。Ubuntu(和衍生产品)使用我使用的 netcat-openbsd。其他 linux 系统可能有不同的 netcat 和不同的选项。因此,如果稍微麻烦一点,telnet 会更安全。
此测试的原因是判断问题是 SMB 配置还是设备根本没有侦听 SMB 请求。
中间的网络设备可能存在问题,但这似乎不太可能。
如果您有兴趣,我上面测试的设备是 Mac,我可以从 Linux 机器通过 CIFS 连接到它。