共计 2191 个字符,预计需要花费 6 分钟才能阅读完成。
什么是 FTP?
FTP,文件传输协议,可以实现在网络上传输多种类型的文件
一个完整的 FTP 文件传输需要建立两种类型的连接,先建立控制连接,然后建立数据连接
控制连接:客户端首先向服务端的 TCP21 号端口发起建立连接的请求,服务器接收请求,完成控制连接的建立
数据连接:控制连接建立后,开始建立数据连接,用于传输文件。数据连接有主动传输模式和被动传输模式。
主动传输模式图
被动传输模式图
主动传输和被动传输的优缺点:
1、主动传输对 FTP 服务器的管理有利,但对客户端不利,因为客户端的防火墙可能会禁止服务端对客户端高位端口连接的请求,导致连接失败;
2、被动传输对 FTP 客户端有利,但对服务端不利,因为服务端的防火墙可能会禁止客户端对服务段高位端口连接的请求,导致连接失败
控制连接和数据连接建立完后,即可开始进行数据传输,FTP 传输数据的方式有 ASCII 和 Binary 两种。
Binary 方式不会对数据进行任何处理。
Ascii 方式会将回车换行转换为本机的回车字符。
使用 binary 可以保证数据传输的完整性
ASCII 通常用于 windows 传输文件到 linux/unix 系统中,因为 windows 和 unix 系统的行结束符不同,当使用 binary 传输时,在 unix 系统上打开文件文件的行尾都会多出一个 ^M 符号,而使用 ASCII 传输则不会
vsftpd 服务器安装和配置
1、安装 vsftpd 软件包
yum install -y vsftpd
2、修改配置文件 /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #设置是否允许匿名用户登录
local_enable=YES #设置是否允许本地用户登录
local_root=/home #设置本地用户的根目录
write_enable=YES #是否允许用户有写权限
local_umask=022 #设置本地用户创建文件时的 umask 值
anon_upload_enable=YES #设置是否允许匿名用户上传文件
anon_other_write_enable=YES #设置匿名用户是否有修改的权限
anon_world_readable_only=YES #当为 YES 时,文件的其他人必须有读的权限才允许匿名用户下载,单单所有人为 ftp 且有读权限是无法下载的,必须其他人也有读权限,才允许下载
download_enbale=YES #是否允许下载
chown_upload=YES #设置匿名用户上传文件后修改文件的所有者
chown_username=ftpuser #与上面选项连用,表示修改后的所有者为 ftpuser
ascii_upload_enable=YES #设置是否允许使用 ASCII 模式上传文件
ascii_download_enable=YES #设置是否允许用 ASCII 模式下载文件
chroot_local_user=YES #设置是否锁定本地用户在自己的主目录中,(登录后无法 cd 到父目录或同级目录中)
chroot_list_enable=YES #设置是否将用户锁定在自己的主目录中
chroot_list_file=/etc/vsftpd/chroot_list #定义哪些用户将会锁定在自己的主目录中
userlist_enable=YES #当为 YES 时表示由 userlist_file 文件中指定的用户才能登录 ftp 服务器
userlist_file=/etc/vsftpd/user_list #当 userlist_enable 为 YES 时才生效
(默认情况下,匿名用户登录后所在的目录处于服务器的 /var/ftp 下)
3、启动 vsftpd 服务
service ftpd start
玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm
vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm
Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm
Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm
Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm
openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd http://www.linuxidc.com/Linux/2014-12/110070.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/134831.htm