Ftp基础(一):基于Vsftpd(主动模式和被动模式)安装Ftp
如果是Windows下,我们一般使用IIS来部署一套Ftp,如果是Linux下,个人一般使用Vsftpd来搭建一套Ftp。
至于什么是Ftp,就不介绍了,本文就Ubuntu下安装配置Vsftpd,CentOS其实差不多,所以这里就当做笔记了
安装
Ubuntu下安装Vsftpd很简单,使用apt安装即可
# 更新
sudo apt update
# 安装
sudo apt install -y vsftpd
注意,上面这个安装需要联网,或者说需要一个可用的apt包源,如果在没有联网的环境下,我们可以从这个地址去搜索下载deb包:https://ubuntu.pkgs.org/
然后在搜索找到系统对应的版本,比如我用的虚拟机是20.04版本amd架构,所以我点击这个连接进入:
最后找到Download下的链接,下载下来再使用dpkg安装即可:
比如:
# 可以在windows下浏览器中直接输入地址下载
# 也可以在linux下使用wget来完成下载
wget http://archive.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.3-12_amd64.deb
# 下载好后,把包传到要安装的服务器,然后使用dpkg安装
sudo dpkg -i vsftpd_3.0.3-12_amd64.deb
需要注意的是,vsftpd依赖很多的依赖包,在安装的时候,可能会提示我们哪些安装包需要先安装
我们可以通过https://ubuntu.pkgs.org/去搜索,也可以在上面Download页面找到Requires节点,他就是这个版本的vsftpd所有的依赖包了,点击对应的包进入找到Download节点下的连接,然后下载包,使用dpkg安装即可。不过,这是一个很繁琐的过程,可能依赖包还依赖其它包,可能依赖包还会出现版本冲突问题,等等这些问题具体处理吧
好了,安装好了,现在就剩配置了,ftp有两种模式,正好vsftpd都支持,那么我们就分开成两种配置,不过在此之前,我们还需要一些准备工作:
# 我们先添加一个用户,用来访问ftp
sudo adduser ftp_user
# 然后输入密码,之后一路回车就可以了
# 创建一个目录,作为ftp的根目录
sudo mkdir /ftp_root
# 将这个目录的所有者给到ftp用户
sudo chown -R ftp_user. /ftp_root
被动模式
个人用被动模式比较多的,先从它说起吧,通过apt安装好后,会生成一个/etc/vsftpd.conf文件,这个就是配置文件
打开文件:sudo vim /etc/vsftpd.conf
修改或者编辑内容如下:
# 启用被动模式
pasv_enable=YES
# 关闭主动模式,当然也可以启用
port_enable=NO
# 使用userlist来配置权限
userlist_deny=NO
userlist_enable=YES
# 这个是运行访问ftp的用户
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
# 这个就是ftp根目录
local_root=/ftp_root
# 客户端最大连接数据
max_clients=1000
# 同一个 IP 同一时间可允许多少连接
max_per_ip=1000
# 禁用匿名用户登陆
anonymous_enable=NO
# 允许本地用户登陆
local_enable=YES
# 允许本地用户写入
write_enable=YES
# 编码
utf8_filesystem=YES
# 被动模式开启的端口范围,可以用来管理,0表示可以使用任意端口
#pasv_max_port=0
#pasv_min_port=0
更多配置参考官网:http://vsftpd.beasts.org/vsftpd_conf.html
接着我们编辑/etc/allowed_users
在里面输入我们的用户名称:sudo vim /etc/allowed_users
最后重启服务即可:sudo systemctl restart vsftpd.service
主动模式
安装完后,如果需要主动模式,我们可以这么配置:
# 关闭被动模式,当然也可以启用
pasv_enable=NO
# 启用主动模式
port_enable=YES
# 使用userlist来配置权限
userlist_deny=NO
userlist_enable=YES
# 这个是运行访问ftp的用户
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
# 这个就是ftp根目录
local_root=/ftp_root
# 客户端最大连接数据
max_clients=1000
# 同一个 IP 同一时间可允许多少连接
max_per_ip=1000
# 禁用匿名用户登陆
anonymous_enable=NO
# 允许本地用户登陆
local_enable=YES
# 允许本地用户写入
write_enable=YES
# 编码
utf8_filesystem=YES
# 启用20端口
connect_from_port_20=YES
更多配置参考官网:http://vsftpd.beasts.org/vsftpd_conf.html
接着我们编辑/etc/allowed_users
在里面输入我们的用户名称:sudo vim /etc/allowed_users
最后重启服务即可:sudo systemctl restart vsftpd.service
总结
本文就写这么多吧,还有其它内容,比如什么是主动被动,怎么区分,怎么连接使用等,慢慢来吧。
当然,这里按主动和被动两种模式分别配置,但是如果你愿意,也可以两种模式一起用。
还有,这里的配置可能会觉得重复了,但是仔细想想,重复就重复吧,如果新部署ftp那么直接复制,会简单些吧