步骤一: 安装 vsftpd
-
登录到 Linux 实例。
-
运行命令yum install -y vsftpd 安装 vsftpd。出现下图表示安装成功。
或者通过压缩文件进行安装:- 下载 vsftpd-3.0.2-25.el7.x86_64.rpm文件,网址:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ - 通过lrzsz上传到linux服务器, - 进行解压到制定位置 rpm -hvi vsftpd-3.0.2-25.el7.x86_64.rpm
-
运行以下命令进入 /ect/vsftpd 目录,并查看该目录下的文件。
cd /etc/vsftpd
ls -
运行以下命令设置FTP服务开机自启动。
systemctl enable vsftpd.service -
运行以下命令启动 FTP 服务。
systemctl start vsftpd.service。
步骤二:配置 vsftpd
vsftpd 安装后默认开启了匿名访问 FTP 服务器的功能。使用匿名访问,您无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。 本教程介绍了以下两种配置 vsftpd 的方法,并提供了相关的参数说明,您可以根据具体需要进行参考:
配置匿名用户上传文件权限
匿名访问FTP服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到FTP服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。如果您需要配置匿名用户上传文件的权限,可以参考以下步骤配置:
- 修改/etc/vsftpd/vsftpd.cpnf。
运行 vim /etc/vsftpd/vsftpd.cpnf。
按i键进入编辑模式。
将写权限修改为write_enable=YES。
将匿名上传权限修改为anon_upload_enable=YES。
按Esc键退出编辑模式,然后输入:wq保存并退出文件。 - 运行以下命令更改/var/ftp/pub目录的权限,为 FTP 用户添加写权限,并重新加载配置文件。
chmod o+w /var/ftp/pub/
systemctl restart vsftpd.service
配置本地用户登录
本地用户登录是指用户使用 Linux 操作系统的账号和密码登录 FTP 服务器。
vsftpd 安装后默认只支持匿名访问 FTP 服务器,如果您试图使用 Linux 操作系统中的账号登录服务器,将会被 vsftpd 服务拒绝。您可以参考以下步骤配置 vsftpd 服务,以使用Linux账号和密码访问FTP服务器。
- 运行以下命令为FTP服务创建一个Linux用户。本示例中,该用户名为ftptest。
useradd ftptest - 运行以下命令修改ftptest 用户的密码。
passwd ftptest - 创建一个供FTP服务使用的文件目录。
mkdir /home/ftpuser/nifi - 输入命令vim /etc/vsftpd/vsftpd.conf打开vsftpd.conf配置文件并按键i进入编辑模式。
- 修改vsftpd.conf配置文件,详细看下面内容。
FTP服务器可以配置为主动模式或被动模式。
主动模式下,客户端向服务端发送数据端口的信息,由服务端主动连接客户端发送的数据端口。配置FTP为主动模式的参数如下:
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#设置本地用户登录后所在的目录
local_root=/home/ftpuser
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表,这些用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#配置其他参数
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
被动模式下,服务端开启并发送数据端口的信息给客户端,由客户端连接服务端开启的数据端口,服务端被动接受连接。在被动模式下,您需要配置服务端可以开启的数据端口范围。配置FTP为被动模式的参数如下:
#禁止匿名登录FTP服务器
anonymous_enable=NO
#允许本地用户登录FTP服务器
local_enable=YES
#设置本地用户登录后所在目录
local_root=/var/ftp/test
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定例外用户列表,这些用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式
pasv_enable=YES
#FTP服务器公网IP
pasv_address=<FTP服务器公网IP>
#设置被动模式下,建立数据传输可使用port范围的最小值
pasv_min_port=port number
#设置被动模式下,建立数据传输可使用port范围的最大值
pasv_max_port=port number
#配置其他参数
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
-
按Esc键退出编辑模式,然后按键:wq保存并退出文件。
-
运行vim /etc/vsftpd/chroot_list命令创建chroot_list文件,并写入不受只可以访问其主目录限制的例外用户名单。
说明 如果没有例外用户也必须要有 chroot_list文件,内容可为空。 -
按键Esc退出编辑模式,然后按键:wq保存并退出文件。
-
运行以下命令重启vsftpd服务。
systemctl restart vsftpd.service