Samba文件共享

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


概述

Samba 是在 Linux 系统上构建文件共享和访问控制服务的常用工具,利用 SMB 协议实现局域网内不同设备之间的文件互访。通过在本地部署 Samba,可以方便地向 Windows、Linux 或 macOS 客户端提供共享目录,实现跨平台的文件传输与协作。

本文档介绍在 Quectel Pi M2 Debian 系统下配置 Samba 文件共享服务,使 Windows 电脑能直接访问设备的共享文件夹。

准备工作

  1. 确认设备环境:

    • Quectel Pi M2 已启动 Debian 系统

    • Windows 主机和设备处于同一局域网内,且网络可互通

    • M2 在 GNOME 图形环境下验证。Samba 文件共享不依赖 GNOME 桌面。

  2. 检查网络连通。在设备端执行以下命令查看当前 IP 地址:

hostname -I
ping <开发板IP>

安装 Samba 服务

Samba 是 Debian/Linux 上用于和 Windows 系统共享文件的服务程序。

  1. 更新软件包列表:

sudo apt-get update
  1. 安装 Samba 及客户端工具:

sudo apt-get install -y samba smbclient

💡 samba:服务器端软件,用于提供共享服务;smbclient:客户端工具,可用于测试连接是否成功。

  1. 确认 Samba 安装成功:

smbd --version
smbclient --version

创建共享文件夹

💡 本文以用户 q 为示例说明 Samba 共享配置。若系统中尚未创建该用户,可改为已有用户(如 root),或先创建普通用户后再继续配置。

  1. 创建共享目录:

mkdir -p /home/q/share
  1. 创建测试文件:

touch /home/q/share/test.txt
  1. 修改权限:

sudo chown -R q:q /home/q/share
chmod -R 775 /home/q/share

配置 Samba 服务

  1. 打开配置文件:

sudo vim /etc/samba/smb.conf
sudo nano /etc/samba/smb.conf
  1. 滚动到文件末尾,添加以下内容:

[myshare]
comment = My Shared Folder
browseable = yes
path = /home/q/share
create mask = 0664
directory mask = 0775
valid users = q
force user = q
force group = q
public = no
guest ok = no
writable = yes
available = yes

💡 [myshare]——Windows 客户端访问时看到的共享名称。path——共享目录的实际路径。create mask / directory mask——新建文件/文件夹的默认权限。valid users——允许访问 Samba 服务器的合法用户,此处示例用户为 q,实际使用时请替换为开发板上的真实用户。writable = yes——允许客户端在此目录中创建、修改和删除文件。

💡 若需允许匿名访问,可使用 public = yes;若需禁止匿名/访客访问,建议保留 public = no, guest ok = no

  1. 检查 Samba 配置文件语法:

testparm

设置 Samba 用户和密码

Samba 的登录用户必须是系统中已经存在的用户,并需要单独设置 Samba 访问密码。以系统用户 q 为例:

sudo smbpasswd -a q

需输入两次密码确认(此密码将在 Windows 访问时使用)。

重启 Samba 服务使配置生效

sudo systemctl restart smbd
sudo systemctl status smbd --no-pager -l

设置 Samba 开机自动启动:

sudo systemctl enable smbd

检查端口监听

Samba 主要使用 TCP 445 端口。服务启动后,可执行以下命令确认端口是否处于监听状态:

ss -tulnp | grep -E ':445|:139'

若设备启用了防火墙,请按实际防火墙工具放行 TCP 445 端口。未启用防火墙时,无需额外添加规则。

查看设备 IP 地址

Windows 访问设备共享目录前,需要先获取设备 IP 地址:

hostname -I

实际使用时,请以开发板当前查询到的 IP 地址为准。

Windows 电脑访问设备共享文件夹

  1. 在 Quectel Pi M2 设备端执行以下命令,获取开发板 IP 地址:

hostname -I
  1. 在 Windows 主机打开 命令提示符,执行以下命令连接共享目录:

net use \\<开发板IP>\myshare /delete
net use \\<开发板IP>\myshare /user:q
explorer \\<开发板IP>\myshare
  1. 访问成功后,即可看到之前创建的测试文件 test.txt

💡 若 Windows 提示无法访问,可先执行 ping <开发板IP> 确认网络可达;若提示凭据冲突,可在 Windows "凭据管理器"中删除该设备相关凭据后重新连接。

在设备上访问 Windows 共享文件夹

除在 Windows 电脑上访问设备的共享目录外,也可以反向从设备访问 Windows 电脑上已共享的文件夹。

Windows 端创建共享目录

  1. 在 Windows 电脑上新建一个用于共享的文件夹,例如:

device_share
  1. 右键该文件夹,选择"属性" → “共享” → “高级共享”。

  2. 勾选"共享此文件夹",共享名设置为:

m2_share
  1. 点击"权限",为需要访问该共享目录的 Windows 用户添加读取或写入权限。

  2. 切换到"安全"选项卡,确认该 Windows 用户在 NTFS 权限中也具备对应的读取或写入权限。

💡 Windows 共享权限和"安全"权限需要同时允许访问,否则设备侧可能能够看到共享名,但无法进入目录或创建文件。

Windows 端确认网络与防火墙

  1. 确认 Windows 电脑与设备在同一可达网络内。

  2. 在 Windows 的"高级共享设置"中开启:

    • 网络发现

    • 文件和打印机共享

  3. 确认 Windows 防火墙允许"文件和打印机共享(SMB-In)"。

设备端检查连通性

在设备终端中执行以下命令,确认能访问 Windows 主机的 SMB 服务端口(请将 <Windows主机IP> 替换为实际 IP):

# 查看设备当前IP地址
hostname -I

# 测试Windows主机网络连通性
ping -c 3 <Windows主机IP>

# 测试SMB端口连通性
timeout 3 bash -c 'cat < /dev/null > /dev/tcp/<Windows主机IP>/445' && echo 445_open || echo 445_failed
timeout 3 bash -c 'cat < /dev/null > /dev/tcp/<Windows主机IP>/139' && echo 139_open || echo 139_failed

若输出 445_open139_open,表示设备到 Windows SMB 服务端口可达。

设备端使用命令行访问

使用 smbclient 查看 Windows 主机上的共享列表:

smbclient -L //<Windows主机IP> -U 'DOMAIN\username'

按提示输入该 Windows 用户的登录密码。若认证成功,可在输出中看到共享目录名称,例如:

m2_share        Disk

访问指定共享目录并列出文件:

smbclient //<Windows主机IP>/<共享名> -U 'DOMAIN\username' -c 'ls'

本文实测设备可正常列出 Windows 主机共享列表,并可进入对应共享目录。

设备端使用图形界面访问

💡 此方式适用于 GNOME 图形环境。

Quectel Pi M2 Debian 图形环境中可通过文件管理器访问 Windows 共享目录。在文件管理器地址栏输入:

smb://<Windows主机IP>/<共享名>

随后按界面提示输入 Windows 用户名、域或工作组、密码即可访问共享目录。