安装vsftpd
登录服务器
执行以下命令安装vsftpd
yum install -y vsftpd
回显如下类似信息时,表示软件安装成功:
3. 设置FTP服务开机自启动
systemctl enable vsftpd.service
启动/停止FTP服务
systemctl start vsftpd.service
systemctl stop vsftpd.service
或者
service vsftpd start/stop/restart
查看FTP服务端口
netstat -antup | grep ftp
回显如下类似信息:
配置vsftpd
vsftpd安装后默认开启了匿名FTP的功能,使用匿名FTP,用户无需输入用户名密码即可登录FTP 服务器,但没有权限修改或上传文件。用户如果试图使用Linux操作系统中的账号登录服务器,将会被vsftpd拒绝,但可以在vsftpd里配置用户账号和密码登录。以下操作以在vsftpd 里配置用户账号和密码登录FTP服务器为例
创建“ftpadmin”用户
此处“ftpadmin”用户为示例,可根据实际情况创建相应的用户
useradd ftpadmin
执行以下命令并按照提示设置“ftpadmin”用户密码
passwd ftpadmin
执行以下命令创建供FTP使用的文件目录,此处以“/var/ftp/diyuan”为例。
mkdir /var/ftp/diyuan
执行以下命令将创建的文件目录所有者改为用于登录FTP的本地用户。
chown -R ftpadmin:ftpadmin /var/ftp/diyuan
修改“vsftpd.conf”配置文件
vi /etc/vsftpd/vsftpd.conf
可根据实际需求选择将FTP配置为主动模式或者被动模式。如果华为云上的服务器需要通过公网IP地址访问华为云上的实例搭建的FTP服务器时,需要将FTP服务器配置为被动模式。
主动模式需要配置的参数如下:
#设置以下参数,不允许匿名登录FTP服务器,允许本地用户登录FTP服务器,并指定FTP本地用户使用的文件目录。
anonymous_enable=NO #不允许匿名登录FTP服务器
local_enable=YES #允许本地用户登录FTP服务器
local_root=/var/ftp/diyuan #新增这一行:FTP本地用户使用的文件目录
#设置以下参数,限制用户只能访问自身的主目录。
chroot_local_user=YES #所有用户都被限制在其主目录
chroot_list_enable=YES #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list #例外用户名单
allow_writeable_chroot=YES #新增这一行
被动模式除了需要配置主动模式所需的所有参数外,还需要配置的参数如下:
#设置以下参数,配置FTP支持被动模式。并指定FTP服务器的公网IP地址,以及可供访问的端口范围,端口范围请根据实际环境进行设置。
listen=YES
listen_ipv6=NO
pasv_address=xx.xx.xx.xx #新增这一行:FTP服务器的公网IP地址
pasv_min_port=3000 #新增这一行:被动模式下的最小端口
pasv_max_port=3100 #新增这一行:被动模式下的最大端口
在“/etc/vsftpd/”目录下创建“chroot_list”文件
cd /etc/vsftpd
touch chroot_list
设置完毕后,重启服务
service vsftpd restart
设置安全组
根据FTP的不同模式需要放通的端口如下:
FTP为主动模式时:端口21。
FTP为被动模式时:端口21,以及配置文件“/etc/vsftpd/vsftpd.conf”中参数“pasv_min_port”和“pasv_max_port”之间的所有端口
客户端测试
打开客户端的计算机,在路径栏输入“ftp://FTP服务器IP地址:FTP端口”(如果不填端口则默认访问21端口) 。弹出输入用户名和密码的对话框表示配置成功,正确的输入用户名和密码后,即可对FTP文件进行相应权限的操作。