本文使用玩客云安装Armbian搭建vsftp使用ftp备份宝塔网站教程
使用玩客云刷Armbian也可以使用其他或x86的centos或Ubuntu搭建vsftp备份(什么系统都差不多安装命令差不多)(可以参考流程其他系统只vsftp安装步骤不一样)
这里用宝塔的FTP存储空间应用实现网站备份
安装Armbian
为了使内容更加清晰易懂,我将教程分成了多个部分。
安装Armbian可以参考以下文章
安装Armbian之后我们先要给磁盘分区。
磁盘分区
可以参考以下文章
之后开始安装vsftp
安装vsftp
使用apt install vsftpd
安装vsftp
apt install vsftpd
![图片[1]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719133753-1024x574.png)
之后配置vsftp
使用nano /etc/vsftpd.conf
配置vsftp文件
nano /etc/vsftpd.conf
# 示例配置文件 /etc/vsftpd.conf
#
# 默认编译的设置非常谨慎。这个示例文件稍微放宽了一些设置,使FTP守护进程更易用。
# 请参阅 vsftpd.conf.5 以了解所有编译时的默认设置。
#
# 注意:这个示例文件不是vsftpd选项的详尽列表。
# 请阅读 vsftpd.conf.5 手册页以全面了解vsftpd的功能。
#
#
# 以独立方式运行?vsftpd 可以从inetd启动或作为从initscript启动的独立守护进程运行。
listen=NO
#
# 此指令启用在IPv6套接字上监听。默认情况下,在IPv6“任意”地址(::)上监听将接受来自IPv6和IPv4客户端的连接。不必同时监听IPv4和IPv6套接字。如果需要这样做(可能是因为需要监听特定地址),那么必须运行两个配置文件的vsftpd副本。
listen_ipv6=YES
#
# 允许匿名FTP?(默认禁用)。
anonymous_enable=NO
#
# 取消注释此行以允许本地用户登录。
local_enable=YES
#
# 取消注释此行以启用任何形式的FTP写入命令。
write_enable=YES
#
# 本地用户的默认umask是077。您可能希望将其更改为022,如果您的用户期望如此(022是大多数其他ftpd使用的)。
#local_umask=022
#
# 取消注释此行以允许匿名FTP用户上传文件。这只有在全局写入启用的情况下才有效。此外,您显然需要创建一个FTP用户可写的目录。
#anon_upload_enable=YES
#
# 取消注释此行以允许匿名FTP用户创建新目录。
#anon_mkdir_write_enable=YES
#
# 激活目录消息 - 当远程用户进入某个目录时给出的消息。
dirmessage_enable=YES
#
# 如果启用,vsftpd将使用您的本地时区显示目录列表。默认是显示GMT。MDTM FTP命令返回的时间也受此选项影响。
use_localtime=YES
#
# 激活上传/下载日志记录。
xferlog_enable=YES
#
# 确保PORT传输连接从端口20(ftp-data)发起。
connect_from_port_20=YES
#
# 如果需要,可以安排上传的匿名文件由不同用户拥有。注意!不建议使用“root”作为上传文件的所有者!
#chown_uploads=YES
#chown_username=whoever
#
# 如果需要,可以覆盖日志文件的位置。默认如下所示。
#xferlog_file=/var/log/vsftpd.log
#
# 如果需要,可以将日志文件设为标准的ftpd xferlog格式。注意,在这种情况下,默认日志文件位置为/var/log/xferlog。
#xferlog_std_format=YES
#
# 可以更改空闲会话超时时间的默认值。
#idle_session_timeout=600
#
# 可以更改数据连接超时时间的默认值。
#data_connection_timeout=120
#
# 建议在系统上定义一个唯一的用户,FTP服务器可以使用该用户作为完全隔离和无特权用户。
#nopriv_user=ftpsecure
#
# 启用此选项,服务器将识别异步ABOR请求。不推荐出于安全原因(代码比较复杂)。不启用它,可能会让旧的FTP客户端感到困惑。
#async_abor_enable=YES
#
# 默认情况下,服务器将假装允许ASCII模式,但实际上忽略该请求。打开下面的选项,可以让服务器在ASCII模式下对文件进行实际的ASCII处理。
# 注意,在某些FTP服务器上,ASCII支持允许通过命令“SIZE /big/file”在ASCII模式下进行拒绝服务攻击(DoS)。vsftpd预见到了这种攻击,并始终是安全的,报告原始文件的大小。
# ASCII处理是协议中的一个糟糕特性。
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# 可以完全自定义登录横幅字符串:
#ftpd_banner=欢迎使用blah FTP服务。
#
# 可以指定一个文件,包含不允许的匿名电子邮件地址。显然对于对抗某些DoS攻击有用。
#deny_email_enable=YES
# (默认如下)
#banned_email_file=/etc/vsftpd.banned_emails
#
# 可以将本地用户限制在他们的主目录中。使用chroot_local_user或chroot_list_enable前请参阅FAQ以了解可能的风险。
chroot_local_user=YES
#
# 可以指定一个明确的本地用户列表,将其chroot()到他们的主目录。如果chroot_local_user为YES,则此列表成为不进行chroot()的用户列表。
# (警告!chroot可能非常危险。如果使用chroot,请确保用户对chroot顶级目录没有写权限)
#chroot_list_enable=YES
# (默认如下)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# 可以激活内置ls的“-R”选项。默认情况下禁用,以避免远程用户能够对大型站点造成过度I/O。然而,一些损坏的FTP客户端如“ncftp”和“mirror”假定存在“-R”选项,因此有强烈的理由启用它。
#ls_recurse_enable=YES
#
# 自定义
#
# 默认情况下,vsftpd的一些设置不符合文件系统布局。
#
# 此选项应该是一个空目录的名称。此外,FTP用户不应具有此目录的写权限。此目录在vsftpd不需要文件系统访问时用作安全的chroot()监狱。
secure_chroot_dir=/var/run/vsftpd/empty
#
# 此字符串是vsftpd将使用的PAM服务的名称。
pam_service_name=vsftpd
#
# 此选项指定用于SSL加密连接的RSA证书的位置。
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
#
# 取消注释此行以指示vsftpd使用utf8文件系统。
#utf8_filesystem=YES
这里我们只需要修改这几个地方
启用本地用户登录:local_enable=YES
![图片[2]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719140215-1024x563.png)
启用写入权限:write_enable=YES
![图片[3]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719140248-1024x563.png)
启用chroot,限制用户在其主目录:chroot_local_user=YES
![图片[4]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719140517-1024x568.png)
设置本地用户的根目录:local_root=/mnt/data
(
![图片[5]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719141037-1024x567.png)
确保使用本地时间:use_localtime=YES
![图片[6]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719141157-1024x574.png)
启用上传/下载日志:xferlog_enable=YES
![图片[7]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719141220-1024x560.png)
允许写入操作:需要将 write_enable=YES
取消注释,来允许 FTP 用户进行写操作。
![图片[8]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719214101.png)
修改确认完成
Ctrl + O
保存
Ctrl + X
退出编辑
懒的话可以参考我的配置:
扩充下网站用户创作不易理解下(⑅˃◡˂⑅)
重启 vsftpd 服务
修改完成后,重启 vsftpd
服务以使配置生效:
systemctl restart vsftpd
![图片[9]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719141456.png)
之后本地完成
创建 FTP 用户(第1条是创建用户第2条是修改密码)(这里最好不要照抄根据自己设置用户名和密码其中不要设置root第2个密码和系统root互不相关如果我们也可以选择adduser cfbk创建用户 passwd cfbk设置用户密码这里用户登录就是cfbk用户名了)(
adduser ftpuser
passwd ftpuser
设置用户的 home 目录和权限(看下一条的说明这条代码同理要替换)
sudo mkdir /mnt/disk/ftpuser
sudo chown ftpuser:ftpuser /mnt/disk/ftpuser
确保 /mnt/disk
权限正确(我这里显示的是我环境下的部署如果挂载的跟我的不同要修改下面对应的 还有我这里显示用户名使用的是ftpuser如果你更改了其他的那么要改对应的下面两条如果当时设置成了cfbk那么下面这两条就要chown cfbk:cfbk /mnt/disk/cfbk理解也简单就是替换呗)
sudo chown root:root /mnt/disk
sudo chmod 755 /mnt/disk
sudo chown ftpuser:ftpuser /mnt/disk/ftpuser
sudo chmod 755 /mnt/disk/ftpuser
修改完成后,重启 vsftpd
服务以使配置生效:
systemctl restart vsftpd
这里使用WinSCP连接测试
可以查看以下文章使用
输入ip连接这里文件协议选择ftp来测试搭建的是否可用(一般来说应该穿透之后拿穿透ip来试不管了先试试本地能不能用后续穿透之后测试同理)
![图片[10]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719215158.png)
点击登录后显示需要凭证输入用户名(是刚刚创建的用户登录)
![图片[11]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719215209.png)
接着输入设置的密码
![图片[12]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719215239.png)
这里我们可以看到连接成功并且进入到了目录这个就搭建成功了
![图片[13]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240719215333.png)
穿透
使用穿透工具或公网映射到公网这里不多解释(这里是不是应该来个广告?◝୧⍤⃝🍉)
穿透要穿透21端口但是经测试貌似21端口不太能用?(如21端口连接失败那么就穿透22端口使用sftp)
那么我们就要穿透22端口这个测试是可以的
两个端口一个是 ftp<21>协议一个是sftp<22>协议,后面在设置连接的时候会讲两种怎么用区别可以看这里
安装备份工具
宝塔>软件商店>搜索(FTP存储空间)
![图片[14]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240720163718-1024x508.png)
我们打开这个插件
1.我们要选的是是否使用sftp这个上面说到过因为穿透我这里测试21端口有可能连不上(如连接不上或不正常那么穿透22接口勾选sftp<21端口就不要了可以从穿透列表删除了>)简单来说使用21端口就是ftp那么不勾选使用22端口是sftp要勾选上这个才能连接上
2.Host 这个填写穿透对应的ip和域名如我这里穿透的是22端口到了穿透那头外网给了我一个域名:如ftp.cfbk.top端口:6688那么我这里就应该填写ftp.cfbk.top:6688
3.用户名这里我们要填我们上面设置出来的用户名
4.密码同理
5.存储位置
- 如果是21端口那么是直接显示根目录的存储位置不用特别改,用默认的也行要改自己路径也行(他的系统路径是/mnt/disk/ftpuser/bt_backup/备份的网站)同理我修改bt_backup为cfbk那么路径是/mnt/disk/ftpuser/cfbk/备份网站
- 如果是22端口那么这个就要填相对路径像上面所说那么我这里存储的位置需要直接改成整个系统的相对路径/mnt/disk/ftpuser/bt_backup/一定是整个系统的相对路径比如说不想使用宝塔这个bt_backup下面的目录存储网站备份那么也可以把相对路径改成/mnt/disk/ftpuser/cfbk/就这样在系统的相对路径(基本大差22端口要相对路径在前面添加上系统的根路径就可以/mnt/disk/用户名/)
![图片[15]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240720165404.png)
使用sftp
![图片[16]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240721135756.png)
设置完成之后点击保存连接
如连接成功如图所示
![图片[17]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240721135922.png)
之后我们来的计划任务添加计划
- 任务类型:备份网站
- 任务名称:自定义
- 备份周期:可以根据选择备份我这里一天一次
- 备份网站:要选择要备份的网站我这里选择我的站点选择备份到ftp空间
- 设置要保留的最新5个备份
- 可以选择不拆分
- 备份通知这里我设置我的飞书通知这个要在宝塔设置界面添加通知方式
- 排除任务不添
![图片[18]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240721131752-1024x610.png)
点击添加任务
这里我们再新建一个备份数据库同理(数据库我这里设置一天一备份)
![图片[19]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240721133242-1024x455.png)
之后我们点击执行运行
![图片[20]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240721135946.png)
之后会显示
![图片[21]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240721134407.png)
然后我们使用WinSCP看看
![图片[22]-玩客云Armbian备份网站](https://www.cfbk.top/wp-content/uploads/2024/07/d2b5ca33bd20240721140701.png)
这样就好了
- 最新
- 最热
只看作者