远程连接并登录到 Linux 实例。推荐 xshell
运行命令yum install -y vsftpd
安装 vsftpd。出现下图表示安装成功。
运行以下命令进入/etc/vsftpd目录,并查看该目录下的文件。
cd /etc/vsftpd
ls
说明:
/etc/vsftpd/vsftpd.conf 是 vsftpd 的核心配置文件。
/etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器。
/etc/vsftpd/user_list 是白名单文件,此文件里的用户允许访问 FTP 服务器。
运行以下命令设置FTP服务开机自启动。
systemctl enable vsftpd.service
运行以下命令启动 FTP 服务。
systemctl start vsftpd.service
运行以下命令查看 FTP 服务监听的端口。
netstat -antup | grep ftp
这里会显示 9379/vsftpd 监听 21 端口
步骤二: 配置 vsftpd
vsftpd 安装后默认开启了匿名访问 FTP 服务器的功能。使用匿名访问,您无需输入用户名密码即可登录 FTP 服务器,但没有权限修改或上传文件。
本教程介绍了以下两种配置 vsftpd 的方法,并提供了相关的参数说明,您可以根据具体需要进行参考。
• 配置匿名用户上传文件权限
• 配置本地用户登录
配置匿名用户上传文件权限
匿名访问FTP服务器是一种不安全的访问模式,任何人无需密码验证就可以登录到FTP服务器,这种模式一般只用来保存不重要的公开文件,不推荐在生产环境中使用。如果您需要配置匿名用户上传文件的权限,可以参考以下步骤配置:
-
修改/etc/vsftpd/vsftpd.conf。
-
先将vsftpd.conf 做个备份文件,以免修改后无法还原 (纯属个人习惯)
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
i. 运行vim /etc/vsftpd/vsftpd.conf
ii. 按i 键进入编辑模式。
iii. 将写权限修改为write_enable=YES。
iv. 将匿名上传权限修改为anon_upload_enable=YES
如下图位置:
v. 按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 /var/ftp/test
(这里的test 会和 配置文件的对应 这里做个标识 @test@) -
更改/var/ftp/test目录的拥有者为ftptest。
chown -R ftptest:ftptest /var/ftp/test
-
输入命令
vim /etc/vsftpd/vsftpd.conf
打开vsftpd.conf配置文件并按键i进入编辑模式。 -
修改vsftpd.conf配置文件。
全部复制粘贴到 vsftpd.conf 全部替换掉原来的配置项
#禁止匿名登录FTP服务器
anonymous_enable=NO
##允许本地用户登录FTP服务器
local_enable=YES
##设置本地用户登录后所在的目录
local_root=/var/ftp/test#(@test@)标识
##全部用户被限制在主目录
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
write_enable=YES# #没这两个 无法上传登录
local_umask=022#没这两个 无法上传登录
7. 按Esc键退出编辑模式,然后按键:wq保存并退出文件。不懂去百度 vim 的编辑和保存
8. 运行
vim /etc/vsftpd/chroot_list
命令创建chroot_list文件,并写入不受只可以访问其主目录限制的例外用户名单。
说明 如果没有例外用户也必须要有 chroot_list文件,内容可为空。
10. 按键Esc退出编辑模式,然后按键:wq保存并退出文件。
11. 运行以下命令重启vsftpd服务。
systemctl restart vsftpd.service
vsftpd.conf 的配置文件参数说明
运行命令cat /etc/vsftpd/vsftpd.conf查看配置文件内容。
参数 说明(这个就是个手册,你可以将 上面全部复制粘贴的内容对比手册进行替换,复制阿里云)
anonymous_enable=YES 接受匿名用户
no_anon_password=YES 匿名用户login时不询问口令
anon_root=(none) 匿名用户主目录
local_enable=YES 接受本地用户
local_root=(none) 本地用户主目录
用户权限控制:
参数 说明(这个就是个手册,你可以将 上面全部复制粘贴的内容对比手册进行替换,复制阿里云)
write_enable=YES 可以上传(全局控制)
local_umask=022 本地用户上传文件的umask
file_open_mode=0666 上传文件的权限配合umask使用
anon_upload_enable=NO 匿名用户可以上传
anon_mkdir_write_enable=NO 匿名用户可以建目录
anon_other_write_enable=NO 匿名用户修改删除
chown_username=lightwiter 匿名上传文件所属用户名
步骤三: 设置安全组
搭建好 FTP 站点后,您需要在实例安全组的入方向添加放行下列 FTP 端口的规则。
我在阿里云上 将安全组的端口 20 21 22 全都配置上了,爱用哪个用哪个呗,再配置个端口的范围:1024到65535
这样登录就可以登录了,客户端的登录的端口 20 21 22 都试试,这里无法上传图片,去阿里云后台配置安全组
举个例子:授权对象:0.0.0.0/0
端口范围:(配置20,21,22)的话 就分别写成 20/20
,21/21
,22/22
是 分别写啊!!!,还有这个范围是必须配置的 1024/65535
如果想想更换某个用户的的目录 用root
vim /etc/passwd
新建的用户都在最下面 将该用户同行 复制一份 并将原来的用 # 注释掉,在下面粘贴 并修改 ‘ :: ’ 后面的路径 然后 vim 退出 保存
OK 大功告成