介绍
介绍
vsftp是一款非常好用且免费的FTP服务器软件,通过这个软件我们就可以轻松搭建FTP服务了
vsftp已被yum收录,我们可以通过yum来快速安装它
安装
安装
通过yum安装
yum -y install vsftpd
建立ftp目录
mkdir /tongfu.net/web/ftpshare
创建用户
useradd -d /tongfu.net/web/ftpshare -s /bin/bash ftpshare
授权
chown ftpshare.ftpshare /tongfu.net/web/ftpshare
设置密码
passwd ftpshare
配置
打开配置文件
> vi /etc/vsftpd/vsftpd.conf
关闭匿名访问(把YES改成NO)
anonymous_enable=NO
锁定用户访问用户目录(把前面的#去掉)
chroot_local_user=YES
关闭用户目录写权限限制(增加一行)
allow_writeable_chroot=YES
开启PASV模式,设置PASV模式端口范围
pasv_enable=YES pasv_min_port=20 pasv_max_port=20
启动
启动
systemctl start vsftpd
开机启动
systemctl enable vsftpd
测试
安装ftp
yum -y install ftp
使用curl测试
curl 'ftp://ftpshare:ftppwd@localhost/file'
Port模式
介绍
port模式适合客户端没有防火墙的情况,这种情况在早期的windows系统里是很容易满足的
port模式下需要开放 20 端口
总结来说就是port模式下,数据传输端口(随机端口)是客户端负责监听的
工作原理
客户端连接服务器端 21 端口
客户端监听被动端口(非特权端口)+1
客户端发送“Port [监听端口]”给服务器端
服务器端连接客户端的 [监听端口]
两端进行数据传输
Pasv模式
介绍
pasv模式则适合两边都有防火墙的情况,这更加符合windows 7开始的新款系统的情况,因为新款系统默认是开启防火墙的
pasv模式下需要开放一个允许的端口范围
总结来说就是pasv模式下,数据传输端口(随机端口)是服务器端负责监听的
工作原理
客户端连接服务器端 21 端口
客户端发送“Pasv”给服务器端
服务器端在给定范围内随机选一个端口监听起来
服务器端发送“Port [监听端口]”给客户端
客户端连接服务器端的 [监听端口]
两端进行数据传输
常见问题
无法列出文件列表
PASV模式下报错(ms-dos)
ftp> quote PASV 227 Entering Passive Mode (10,16,1,105,106,132). ftp> dir 425 Failed to establish connection.
PASV模式下报错(linux)
ftp> dir 227 Entering Passive Mode (10,16,1,105,186,102). ftp: connect: No route to host
解决方法:
客户端关闭防火墙