文章目录
1.FTP 服务模式选择
1.1 主动模式与被动模式
FTP的工作方式:主动模式、被动模式,如下图示意:
1.2 适用范围
-
FTP主动模式
是指客户端通过指令端口如上10021连接到服务器后,客户端提供一个数据连接端口如:10022,服务端主动通过客户端的10022端口发送数据给客户端。
限制:客户端的10022端口必须是开放的,如果未开放,则可以连接,无法传递数据。 -
FTP被动模式(PASV模式)
是指客户端通过指令端口如上10021连接到服务器后,服务端提供一个数据连接端口如上10022,告知客户端请通过我提供的数据端口发送/下载数据。
限制:服务端需要开放数据端口10022,并设置为pasv模式,端口限制在10022。
综上:若客户端为公网IP,可以开通或映射公网端口,可以选择主动模式;若客户端无公网端口,仅服务端可以开通或映射公网端口,则必须选择被动模式。
2.Linux下FTP软件安装
2.1安装ftp
yum install -y vsftpd
安装后默认的配置路径在/etc/vsftpd/目录下。
2.2修改配置文件(vsftpd.conf)
vi /etc/vsftpd/vsftpd.conf
(1)修改设置anonymous_enable = YES,这样可以允许匿名登陆用户登录
(2)修改设置xferlog_enable=YES,可以生成FTP连接日志,默认存储在/var/log/xferlog中
(3)修改:
- chroot_local_user=YES,限制用户访问目录之外的地方
- chroot_list_enable=YES,开启用户配置列表
- chroot_list_file=/etc/vsftpd/chroot_list,用户配置列表
(4)用户目录设置
local_root=/home/ftpdata_sites
anon_root=/home/ftpdata_sites/share/
allow_writeable_chroot=YES
(5)连接参数设置
max_clients=300,最大客户端连接数为300
listen_port=8021,修改默认端口
(6)被动模式相关配置
pasv_enable=YES
pasv_min_port=11330
pasv_max_port=12499
pasv_promiscuous=YES
pasv_address=XXX.XXX.XX.X,若有公网映射可公网地址,或可以忽略此配置(可选)
注意事项1:以本文为例,监听端口为8021,被动模式的数据端口为11330-12499,若服务器需要公网访问,则需要在公网开通上述端口映射,pasv_address可以指定为公网映射的地址。
注意事项2:若指定pasv_address=XXX.XXX.XX.X此项后不能正常连接的话,可以将配置文件中的listen_ipv6=YES注释掉,然后修改listen=YES即可。
2.3 添加ftp用户
#创建用户
useradd -d /home/server/pure-ftpd/upfiles/ test
#修改用户密码
passwd test
2.4 赋予权限
chmod 777 /home/server/pure-ftpd/upfiles/
2.5 创建添加访问用户
touch chroot_list
vi chroot_list
写入用户名称,每行一个
2.6 权限设置
目录权限设置如下:
(1) File directory
–Sites_ftp_folder
… |
… |–share (for Anonymous users)
… |
… |–upload (for Authenticated users)(2) Anonymous users only have read-only access to the “share” folder.
(3) Authenticated users (non-anonymous users): Has read and write permissions under the “upload” folders.
2.7 重启服务
systemctl restart vsftpd
2.8连接测试
以认证用户为例:
本文创建的vsftpd软件配置文件资源见vsftpd服务器快速配置文件参考
3. 参考文档
https://blog.youkuaiyun.com/jackymvc/article/details/117813636
https://www.codenong.com/cs106826892/
https://blog.youkuaiyun.com/juxiezuo_0722/article/details/82586025