姑且算是前言?

众所周知。。。sftp传文件有点慢。。。ftp传文件有点麻烦。。。稍微折中一下。。。用smb传文件应该是不错的选择,就像局域网那样直接把服务器的某个目录映射到本地岂不美哉~
//而且局域网里的nas直接用这个不是也挺好的嘛
但是咱最开始觉得windows配置SMB还比较简单。。。Linux的话。。。毕竟人家SMB好像是微软自家的东西。。。Linux上用起来多少还是得折腾下的。。。。但是事实证明比配置一个ftp服务端还省事。。。。

资源准备

首先,假定你有一台运行着Debian 9的vps,且服务商和你的运营商都没有封闭所需的端口,其次知道下述操作可能不会对你的vps有效。最主要的是知道一些基础命令的用法。。。。。
所用软件:【Samba】(smb服务端)
推荐使用apt直接进行安装:
# apt update -y && apt install samba* -y
至于编译什么的。。。让觉得编译很酷的人自己去编译好了。。。反正官网上面有。。。(某初雪向来是能apt绝对不动手编译的人quq)
然后就完成安装啦~~

进行配置

配置的话,主要有两个部分,一个是配置共享目录,一个是配置用户,这里也分开讲好了

配置共享目录

首先呢,samba的配置文件如果是apt安装的,那么默认会在
/etc/samba/smb.conf
如果是编译出来的。。。自己去找配置文件吧(。。。咱也不知道。。。应该是你自己指定的位置。。。
首先先创建打算用来共享的文件夹,比如:
# mkdir -p /yuki/smb
然后给这个目录和它的父级目录授予读写权限(请勿使用chmod 666,文件夹需要运行权限才能进去
比如# chmod 777 /yuki /yuki/smb
把配置文件备份下
# cp /etc/samba/smb.conf /etc/samba/_smb.con
使用你喜欢的编辑器比如nano来对配置文件进行编辑
# nano /etc/samba/smb.conf
然后我们会看到一大堆文本。。。。具体每一行都是什么意思咱就不详细的介绍了,这里我们直接转到最后一行然后添加这些内容
[] ##共享名称,使用英文。如yuki
comment = ##随便写点什么注释,用英文。如 yuki smb
path = ##到你要共享的文件夹的路径,如/yuki/smb 表示共享/yuki/smb目录,这里需要注意yuki和smb目录都需要有读写权,因此推荐直接配置这两个文件夹777权限
browseable = yes ##可浏览
writable = yes ##可写
guest ok = no ##禁止匿名用户

绿色部分是注释,不要写进去,写进去的配置文件应该是长这个样子的

然后按 Ctrl+X 然后输入 Y回车 保存+退出(如果vim不是你的常用编辑器你还非用vim打开了的话,不要问咱怎么退出,老老实实用和咱一样用nano就好了)
然后重启一下smb服务器看看配置有没有报错,如果报错了请按照上面的步骤重新检查一下
# smbd restart或者
//不要听其他乱七八糟的blog不知道从哪里复制的# service smb restart
只要没报错就是配置ok了,不过要注意的是这里并不会判断共享目录的权限是否正常。

设置用户

首先得在系统里创建一个用户(虽然直接使用你现在登陆的账户也不是不行。。。),总之首先从添加用户开始说好了。。。
# adduser [用户名]
然后根据提示输入对应的密码(可以额外操作一下禁止这个用户登陆控制台,不过这里不介绍这个操作)
然后使用# smbpasswd -a [用户名]来把刚才创建的用户添加到smb的用户列表里并设置密码(事后如果要改密码也是这个命令)
保险起见,最后再尝试重启一下smb服务器确保各项设置都没问题
# smbd restart
没有提示就证明完成了

给Windows映射一下

这个过程比较简单,首先打开【计算机】或者叫做【我的电脑】什么的,你会看到这样的资源管理器界面

然后按下左上角的计算机并点击映射网络驱动器

在新出来的窗口里填写这些东西:

比如\yuki233.com\smb(各位就不用试图连接咱的了。。。这个地址没有用),然后按照提示输入用户名和密码即可。如果连接不上去。。。可以参考一下下面那一小节。。。。

说在最后

smb的话速度确实会快很多,不过由于种种原因并不一定能稳定的运行在互联网环境上,比如国内运营商对445端口的封闭之类的操作都会导致无法正常使用,此外,由于不像SSH/SFTP/FTP那样可以用证书或者密钥或者SSL对通信加密,因此安全性上也许也有待进一步考量,不过这些就不是本文需要考虑的部分啦,顺带一提,由于按照本文进行操作产生的一切损失咱都一概不负责哦~