本文介绍阿猪遇到的一例Ubuntu下无法通过局域网正常访问华为Pad的故障,并记录阿猪的解决办法。

一、问题

  华为Pad的“共享至电脑”功能允许用户通过局域网访问、管理设备中的文件,无需借助USB数据线,是一个比较实用的功能。它的原理是在华为Pad中开启SMB服务,然后局域网中的设备通过SMB协议访问该设备中的文件。

  按照网上的教程,在nautilus文件管理器中依次点击“其他位置” - “Windows网络” - “WORKGROUP” - <华为设备的网络名称>,然后在弹出的认证窗口中输入用户名和密码,就可以访问华为Pad中的文件了。你也可以在“其他位置”这一步直接在底部输入smb://<华为设备的局域网ip>

  但是阿猪在访问时遇到报错挂载Windows共享失败:由软件导致的连接断开,无法访问华为Pad中的文件。

Ubuntu访问SMB报错

二、解决方法

1、创建smb.conf配置文件

  查看你的Ubuntu中是否存在/etc/samba/smb.conf这个文件,如果存在请跳过此步骤。如果不存在,可以参照下列命令创建一个smb.conf配置文件。

1
2
sudu mkdir /etc/samba # 在/etc路径下创建一个名为samba的目录
sudo cp /usr/share/doc/nautilus-share/examples/smb.conf /etc/samba/ # 将示例文件复制到/etc/samba路径

  阿猪在这一步走了弯路。网上的回答中很多都提到修改/etc/samba/smb.conf这个文件,但是阿猪的Ubuntu中并没有这个文件,甚至连/etc/samba这个目录都没有。起初阿猪猜测可能是Linux的发型版本不同,所以文件的路径有差异。接着阿猪在硬盘中搜索到了/usr/share/doc/nautilus-share/examples/smb.conf这个文件,但是尝试修改后并没有解决问题。

  后来阿猪通过在网上查阅资料了解到/usr/share/doc/这个路径通常是应用程序存放帮助文档的地方,再结合/usr/share/doc/nautilus-share/examples/smb.conf路径中的examples字样,阿猪猜测这应该只是一个示例文件,并不是真正的配置文件。于是阿猪尝试继续在硬盘中寻找帮助文档,果然找到了/usr/share/doc/nautilus-share/README.Debian这个帮助文档。

2、修改smb.conf配置文件

  阿猪在网上查阅资料时看到一种说法,称新版的Ubuntu升级了SMB协议,导致旧版本的协议无法使用。(参考链接

  结合参考链接中给出的方案以及阿猪找到的帮助文档,阿猪对smb.conf配置文件进行了修改。

  首先以sudo权限使用VIM文本编辑器打开smb.conf配置文件。

1
sudo vi /etc/samba/smb.conf # 阿猪的Ubuntu24.04是vi,不是vim

  然后在[global]之后的随意一行添加如下内容:

1
2
client min protocol = CORE
server min protocol = CORE # 如果只是访问其他电脑的文件,Ubuntu不用作SMB服务器,则不需要添加这一行

  或者

1
2
client min protocol = NT1
server min protocol = NT1 # 如果只是访问其他电脑的文件,Ubuntu不用作SMB服务器,则不需要添加这一行

  此时再次尝试访问华为Pad,可以看到已经能正常读写华为Pad中的文件了。

Ubuntu通过SMB访问华为Pad