smb协议简单配置
背景
本来使用ftp协议在手机和电脑之间方便的传输文件,可是有些时候比如视频,或者想要编辑手机上的文件,只能 先下载下来处理,然后再上传回去。深深感到ftp协议的不便,于是了解到smb协议,这种协议可以让windows电脑之间访问修改,甚至运行手机的储存,抛开速度不谈使用体验犹如本地存储。
smb文件协议
SMB(Server Message Block)文件协议是一种网络文件共享协议,最初由IBM在1983年开发,用于在局域网(LAN)中共享文件、打印机、串行端口和通信资源。后来,微软对其进行了扩展和改进,并将其集成到Windows操作系统中,成为Windows网络文件共享的核心协议。
优势
- 跨平台支持 :SMB协议不仅支持Windows,还可以通过Samba等软件在Unix/Linux系统上实现,从而实现跨平台文件共享。
- 安全性 :SMB协议支持用户认证和访问控制列表(ACL),可以确保只有授权用户才能访问共享资源。
- 文件锁定 :SMB支持文件锁定机制,防止多个用户同时修改同一个文件,避免数据损坏。
- 高效传输 :SMB协议经过多次优化,支持批量读取和写入操作,提高了文件传输效率。
- 丰富功能 :除了基本的文件共享,SMB还支持打印机共享、命名管道、邮件槽等功能,提供了丰富的网络资源共享能力。
此次配置通过在安卓手机中的termux配置samba 服务来实现手机与电脑的文件共享
安装samba
通过pkg直接安装samda:
1 |
|
配置samba
我们通过命令:
1 |
|
创建一个存放samba配置文件的文件夹
1 |
|
创建并编辑samba的配置文件
我们在其中添加以下内容:
1 |
|
[global]
:全局设置部分,适用于所有共享资源。workgroup = WORKGROUP
:- 含义 :指定Samba服务器所属的工作组名称。
- 作用 :在网络浏览器中显示Samba服务器的工作组,便于网络中的其他计算机发现和访问。
security = user
:- 含义 :设置Samba的安全模式。
- 作用 :
user
模式表示用户级安全,每个用户必须提供用户名和密码才能访问共享资源。其他可选值包括share
(共享级安全)、domain
(域级安全)和ads
(Active Directory安全)。
passdb backend = tdbsam
:- 含义 :指定Samba使用的密码数据库后端。
- 作用 :
tdbsam
表示使用TDB(Trivial Database)作为密码数据库。其他可选值包括ldapsam
(LDAP后端)、mysql
(MySQL后端)等。
smb ports = 4445
:- 含义 :指定Samba服务器监听的端口号。
- 作用 :默认情况下,Samba使用端口445和139。通过设置
smb ports
,可以更改Samba监听的端口号。在此示例中,Samba将监听端口4445。 - 这里由于termux的服务没有root权限无法监听1024以下的端口,所以我们这里指定监听4445
[storage]
:- 含义 :定义一个共享资源的名称。在网络中,这个共享资源将显示为
storage
。 - 作用 :用户在访问Samba服务器时,会看到一个名为
storage
的共享文件夹。
- 含义 :定义一个共享资源的名称。在网络中,这个共享资源将显示为
path = /data/data/com.termux/files/home/storage/shared
:- 含义 :指定共享资源在服务器上的实际路径。
- 作用 :这个路径指向服务器上的一个目录,即
/data/data/com.termux/files/home/storage/shared
。当用户访问storage
共享资源时,他们实际上访问的是这个目录。
writable = yes
:- 含义 :指定共享资源是否可写。
- 作用 :
yes
表示用户可以在这个共享目录中创建、修改和删除文件。如果设置为no
,则共享目录为只读,用户只能查看文件,不能进行写操作。
如果你想要同时映射多个目录,我们可以仿照[storage]再添加一个存储。样例如下:
1 |
|
那么当你通过访问的时候,就可以同时看见两个共享目录:
注意:如果smbd 服务启动失败,可以去路径:/data/data/com.termux/files/usr/var/log/samba/log.smbd
查看日志
添加用户
现在我们配置好了smb还需要添加用户才能够登录smb服务
我们再终端中输入:
1 |
|
然后输入两次密码确认,就创建好用户了
同时为了windows访问时省略端口号,我们讲445的端口映射到4445:
1 |
|
第一条命令:将所有进入本机、目标端口为 445 的 TCP 数据包重定向到端口 4445。
第二条命令:将所有本机生成、目标端口为 445 的 TCP 数据包重定向到端口 4445。
最后我们只需要通过命令:
1 |
|
来开启smbd服务就ok了。
如果想要关闭smbd可以通过:
1 |
|
添加公共文件夹
如果不希望密码登录,希望创建一个可以与别人共享的网络位置,可以通过public参数实现:
1 |
|
win11 添加smb站点
在目录地址输入 \\+ip
尝试能否连接到手机
正常的话会弹出让你输入用户名和密码登录,成功的话就说明smb服务正常运行。
也可以通过添加一个网络位置来将其固定到主页面:
需要注意的是
这里还需要在后面写明你要添加哪个位置,然后只需要点击下一步最后输入用户名密码登录即可。