最终效果:浏览器地址栏输入:ftp://ip ,出现如下效果
请根据我的步骤走:
root用户下
先增加用户,指定目录
useradd -d /home/vsftpddir/ksc_terminal/ ksc_terminal
指定密码
passwd ksc_terminal
配置权限
chown ksc_terminal.ksc_terminal /home/vsftpddir/*
是否安装: rpm -qa | grep vsftpd
安装命令: yum -y install vsftpd
设置开机自启动。 systemctl enable vsftpd
卸载命令: rpm -e vsftp
设置开机自启动。 systemctl enable vsftpd
启动 FTP 服务。systemctl start vsftpd
查看 FTP 服务端口。netstat -antup | grep ftp
被动模式:添加配置信息 修改配置文件 vim /etc/vsftpd/vsftpd.conf 在文件末尾添加:
pasv_enable=YES
pasv_min_port=8800
pasv_max_port=8899
主动模式:末尾
# 主动模式设置 - active mode
port_enable=YES
#(即默认情况下,FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。# 主动模式数据传输20端口
connect_from_port_20=YES
vsftpd.conf 设置参考
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
data_connection_timeout=300
# 锁定目录
chroot_local_user=NO
# 所有用户都不被限制在其主目录下 使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
listen_port=21
# 被动模式 - passive mode
pasv_enable=YES
pasv_min_port=8800
pasv_max_port=8899
# 主动模式设置 - active mode
port_enable=YES
#(即默认情况下,FTP PORT主动模式进行数据传输时使用20端口(ftp-data)。YES使用,NO不使用。# 主动模式数据传输20端口
connect_from_port_20=YES
创建用户文件:
cd /etc/vsftpd
touch chroot_list
新增ksc_terminal
保存:wq
vim user_list
删除全部,
新增ksc_terminal
保存:wq
服务器打开20/21 端口
打开8800/8899 端口
启动服务 systemctl start vsftpd
查看 FTP 服务端口。netstat -antup | grep ftp
启动成功后,打开浏览器输入ftp://ip 输入用户名密码 即可
附加
vsftpd修改默认端口
1、编辑/etc/vsftpd/vsftpd.conf 文件,在该配置文件末尾添加此行:listen_port=6709
2、编辑/etc/services 文件,将其中的
ftp 21/tcp 改为 ftp 6709/tcp ,
ftp 21/udp 改为 ftp 6709/udp
3、重新启动vsftpd 服务。 systemctl restart vsftpd.service
4、运行命令 netstat -tnulp | grep vsftpd
可以查看到现在系统现监听的vsftpd 的端口为6709
查看用户是否存在:cat /etc/passwd
想要完全删除用户账号(也就是删除所有与该用户相关的文件),以下这两种方法个人觉得是最好的:
(1)使用 userdel -r xiaoluo命令删除。
(2)先使用userdel xiaoluo 删除账户和组的信息,在使用find查找所有与该用户的相关文件,在使用rm -rf 删除
FTP命令上传文件
Mac 安装FTP (一行运行一次)
brew install telnet
brew install inetutils
brew link --overwrite inetutils
上传方式:
登陆:ftp ip 21
上传:put /Users/xx/Pictures/1562579726716.jpg 15625.jpg。(本机文件目录 文件名称)
错误解决:
553 Could not create file:
执行:chown ksc_terminal.ksc_terminal /home/vsftpddir/*
对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:(让FTP用户只在自己的目录,隐藏其他目录)
| chroot_local_user=YES | chroot_local_user=NO |
chroot_list_enable=YES | 1.所有用户都被限制在其主目录下
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1.所有用户都不被限制其主目录下
2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO | 1.所有用户都被限制在其主目录下
2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 | 1.所有用户都不被限制其主目录下
2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
我们的设置是
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
设置ftp目录的权限
因安全问题,vsftpd不允许匿名用户在ftp主目录上传,可以新建一个子目录,然后设置权限为777