在阿里云上做的。操作系统alibaba colud linux3.x。原链接在这 FTP有三种模式:
- 匿名用户:任何人无需密码即可登录
- 本地用户:通过linux系统本地账号验证
- 虚拟用户:FTP服务器的专属用户,只能访问linux系统为其提供的ftp服务,无法访问其他linux系统的资源# step1:安装vsftpd
dnf install -y vsftpd
systemctl enable vsftpd.service # 允许开机启动
systemctl start vsftpd.service # 启动服务
它默认使用21端口(默认被动模式)
step2: 配置vsftpd
为了安全,要为FTP服务创建linux用户,更改密码
adduser ftpuser1
passwd ftptest
接下来创建一个ftp服务使用的文件目录,并简历一个文件
mkdir /var/ftp/test
touch /var/ftp/test/testfile.txt
把文件的所有者改为ftpuser1
chown -R ftpuser1:password /var/ftp/test
修改vstfpd.conf配置文件
vim /etc/vsftpd/vsftpd.conf
把ftp服务器设置为被动模式
#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES
、、、
#listen_ipv6=YES 关掉ipv6 socket
在末尾添加下面的参数
#设置本地用户登录后所在目录。
local_root=/var/ftp/test
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中为Linux实例的公网IP。
pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010
vsftp配置文件及参数说明,更多参数说明在这 创建chroot_list文件,配置例外用户名单(最好加上管理员的),这些人可以不被限制在ftp主目录,可访问其他目录
vim /etc/vsftpd/chroot_list
改完后重启ftp服务
systemctl restart vsftpd.service
step 3:设置安全组
大多数客户端位于局域网中,IP地址是经过转换的,因此ipconfig或ifconfig命令返回的IP不一定是客户端的真实公网IP地址。若后续客户端无法登录FTP服务器,请重新确认其公网IP地址。
被动模式需开放21端口,以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口。配置详情如下表所示。
step 4:客户端测试
mac测试
done 还有很多情况也可以使用ftp工具了,省去一堆cli