无法从 Ubuntu 16.04 LTS 访问 Windows 10 共享

无法从 Ubuntu 16.04 LTS 访问 Windows 10 共享

我正在尝试将 Ubuntu 16.04 LTS VM 上的一个点连接/安装到 Windows 10 主机上的共享,但没有成功。目标是让我可以在 Ubuntu(VM) 上下载文件并将其传输到 Windows 主机。Windows 共享可以从同一网络上的其他 Windows 主机访问,但不能从 Ubuntu VM 访问,即使有网络连接,因为我可以 ping 通(VM 配置为“桥接”模式)。我尝试运行:

sudo mount -t cifs -o username=username //ip_address/Windows_Share /mount/point/Ubuntu

这返回一个错误指示,表明主机已关闭,但事实并非如此,因为其他 Windows 计算机可以访问其上运行的共享。我读过一些关于它的帖子,有人提到 Ubuntu 和 Windows 10 使用的 SMB 版本存在冲突,现在禁用了 SMB1。所以他们建议运行以下命令进行检查:

smbclient -L <windows_ip> -U <windows_user> -d 256

我确实遇到了一个错误:

协议协商失败:NT_STATUS_CONNECTION_RESET

然后我运行:

smbclient -L <windows_ip> -U <windows_user> -m SMB2

还有另一个错误:

TCP 上的 NetBIOS 已禁用--没有可用的工作组

有人可以建议/建议如何在 Ubuntu 上安装 Windows 共享吗?

答案1

听起来你走对了路。如果问题与 SMB1 有关,以下方法将解决你的问题。

首先复制 smb.conf

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

复印后

sudo gedit /etc/samba/smb.conf

如果你不喜欢 gedit,可以随意使用 vi/vim/nano

在该文件中,在 [global] 部分添加以下内容

client min protocol = SMB2
client max protocol = SMB3

保存对文件的编辑后。重新启动 SMB

sudo service smbd restart

如果这不起作用,请包含错误。

答案2

好的,很抱歉这么晚才回来。修复方法基本上是这样的:

sudo mount -o vers=3.0,username=<your_username>,uid=<your_user_id>,gid=<your_group_id>,forceuid,forcegid, //<ip_address>/<path_to_share> /<mount>/<point>/<local_system>

请注意,这次我跳过了“-t(--type)”选项,因为如果未指定此选项,“mount”将尝试猜测要使用哪个系统,并且老实说,考虑到我已经阅读了大量有关 Windows 10 共享协议的内容,我选择让“mount”为我发挥它的魔力。;-)

以下是“mount 手册页”的摘录:

“如果没有给出 -t 选项,或者指定了自动类型,mount 将尝试猜测所需的类型。Mount 使用 blkid 库来猜测文件系统类型;如果没有找到任何熟悉的内容,mount 将尝试读取文件 /etc/filesystems,或者,如果该文件不存在,则读取 /proc/filesystems。将尝试列出的所有文件系统类型,但标有“nodev”的文件系统类型除外(例如,devpts、proc 和 nfs)。如果 /etc/filesystems 以单个 * 结尾,mount 随后将读取 /proc/filesystems。在尝试期间,所有文件系统类型都将以静默方式挂载。”

此外,由于“mount”只能以 root 身份运行,但写入此挂载点的其他程序不能以 root 身份运行,因此您需要指定要授予挂载位置写入权限(所有权)的用户和组,因此使用:uid=<your_user_id>,gid=<your_group_id>,forceuid,forcegid,

完成!@xguru,谢谢你的帮助!:)

相关内容