Samba文件共享¶
Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.
概述¶
Samba 是在 Linux 系统上构建文件共享和访问控制服务的常用工具,利用 SMB 协议实现局域网内不同设备之间的文件互访。通过在本地部署 Samba,可以方便地向 Windows、Linux 或 macOS 客户端提供共享目录,实现跨平台的文件传输与协作。
本文档介绍在 Quectel Pi(M1 / L1)Debian 系统下配置 Samba 文件共享服务,使 Windows 电脑能直接访问设备的共享文件夹。
准备工作¶
确认设备环境:
设备(M1 或 L1)可正常联网
Windows 主机和设备处于同一局域网内
M1 在 GNOME 图形环境下验证。L1 已在 Weston 图形环境下完成验证,Samba 文件共享不依赖 GNOME 桌面。
检查网络连通:
在终端执行
ping 8.8.8.8,若能看到返回的时间信息,则说明网络正常。
登录开发板(L1 专属):
若本地调试环境已可用,也可通过 ADB 进入系统;本文以串口进入为例。
串口连接方式可参考:debug_uart.md
L1 默认使用
root用户登录,默认无密码。
安装 Samba 服务¶
Samba 是 Debian/Linux 上用于和 Windows 系统共享文件的服务程序。
更新软件包列表:
sudo apt-get update
💡 若开发板当前无法直接访问 Debian 软件源,可先在主机下载
arm64的.deb安装包,再拷贝到开发板后使用dpkg -i安装;至少需要准备samba-common、samba-common-bin、samba、smbclient,若版本不一致,还需一并补齐对应版本的依赖库。
安装 Samba 及客户端工具:
sudo apt-get install samba
sudo apt-get install smbclient
💡
samba:服务器端软件,用于提供共享服务;smbclient:客户端工具,可用于测试连接是否成功。
确认 Samba 安装成功:
smbd --version
smbclient --version
sudo samba -V
创建共享文件夹¶
💡 本文以用户
q为示例说明 Samba 共享配置。若系统中尚未创建该用户,可改为已有用户(如root),或先创建普通用户后再继续配置。
创建共享目录:
mkdir -p /home/q/share
创建测试文件:
touch /home/q/share/test.txt
修改权限:
chmod -R 777 /home/q/share
配置 Samba 服务¶
打开配置文件:
sudo vim /etc/samba/smb.conf
sudo nano /etc/samba/smb.conf
滚动到文件末尾,添加以下内容:
[myshare]
comment = My Shared Folder
browseable = yes
path = /home/q/share
create mask = 0777
directory mask = 0777
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——允许客户端在此目录中创建、修改和删除文件。
💡 M1 中
public = yes;L1 中public = no且guest ok = no。请根据实际需求选择。若需允许匿名访问,可使用public = yes(M1 方式);若需禁止匿名/访客访问,建议保留public = no, guest ok = no(L1 方式)。
设置 Samba 用户和密码¶
Samba 的登录用户需要单独设置密码。以系统用户 q 为例:
sudo smbpasswd -a q
需输入两次密码确认(此密码将在 Windows 访问时使用)。
💡 若使用
root作为 Samba 登录用户(L1 默认场景),可将上述命令替换为:sudo smbpasswd -a root。
重启 Samba 服务使配置生效¶
sudo systemctl restart smbd
设置 Samba 开机自动启动:
sudo systemctl enable smbd
添加防火墙规则¶
#添加放行端口
sudo iptables -A INPUT -p tcp -m tcp --dport 445 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 139 -j ACCEPT
#设置客户端IP允许通过防火墙
sudo iptables -A INPUT -p icmp --icmp-type echo-request -s 192.xx.xx.xx -j ACCEPT
#保存规则
sudo sh -c 'iptables-save > /etc/iptables/rules.v4'
查看设备 IP 地址¶
hostname -I
实际使用时,请以开发板当前查询到的 IP 地址为准。
在设备上访问 Windows 共享文件夹¶
除在 Windows 电脑上访问设备的共享目录外,也可以反向从设备访问 Windows 电脑上已共享的文件夹。
Windows 端创建共享目录¶
在 Windows 电脑上新建一个用于共享的文件夹,例如:
device_share
右键该文件夹,选择"属性" → “共享” → “高级共享”。
勾选"共享此文件夹",共享名设置为:
L1 设备:建议为
l1_shareM1 设备:建议为
m1_share
m1_share (M1)
l1_share (L1)
点击"权限",为需要访问该共享目录的 Windows 用户添加读取或写入权限。
切换到"安全"选项卡,确认该 Windows 用户在 NTFS 权限中也具备对应的读取或写入权限。
💡 Windows 共享权限和"安全"权限需要同时允许访问,否则设备侧可能能够看到共享名,但无法进入目录或创建文件。
Windows 端确认网络与防火墙¶
确认 Windows 电脑与设备在同一可达网络内。本文实测 Windows 主机 IP 为
10.66.84.17(M1 环境示例)。在 Windows 的"高级共享设置"中开启:
网络发现
文件和打印机共享
确认 Windows 防火墙允许"文件和打印机共享(SMB-In)"。
设备端检查连通性¶
在设备终端中执行以下命令,确认能访问 Windows 主机的 SMB 服务端口(请将 <Windows主机IP> 替换为实际 IP,M1 实测为 10.66.84.17):
# 查看设备当前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_open 或 139_open,表示设备到 Windows SMB 服务端口可达。
设备端使用命令行访问¶
使用 smbclient 查看 Windows 主机上的共享列表:
smbclient -L //<Windows主机IP> -U 'DOMAIN\username'
示例(以 M1 实测 Windows IP 10.66.84.17 为例):
smbclient -L //10.66.84.17 -U 'QUECTEL\username'
按提示输入该 Windows 用户的登录密码。若认证成功,可在输出中看到共享目录名称,例如:
m1_share Disk
访问指定共享目录并列出文件:
smbclient //<Windows主机IP>/<共享名> -U 'DOMAIN\username' -c 'ls'
示例(以 M1 为例):
smbclient //10.66.84.17/m1_share -U 'QUECTEL\username' -c 'ls'
本文实测设备可正常列出 Windows 主机共享列表,并可进入对应共享目录。
设备端使用图形界面访问(M1 专属)¶
💡 此方式适用于 M1 GNOME 图形环境。L1 Weston 环境下请使用命令行方式访问。
Quectel Pi M1 Debian 图形环境中可通过文件管理器访问 Windows 共享目录。在文件管理器地址栏输入:
smb://10.66.84.17/m1_share
随后按界面提示输入 Windows 用户名、域或工作组、密码即可访问共享目录。
Windows 电脑访问设备共享文件夹¶
按下"Win+R"打开运行窗口。
输入设备的共享访问路径,例如:
\\<开发板IP>\myshare
\\10.66.84.182\myshare
输入用户名和密码,即可看到共享文件夹的内容。
用户名:Samba 配置中
valid users指定的用户(M1 为q)密码:执行
smbpasswd -a <用户名>时设置的密码
访问成功后,即可看到之前创建的测试文件
test.txt。