说明
FTP, File Transfer Protocol一个 古老但应用极为广泛 的互联网协议
FTP提供了一种可靠的方式在网络上进行文件共享.
C/S 架构, 基于 TCP, 提供了数据传输的可靠性
标准端口: 20 (数据端口) ; 21 (指令端口)
连接
FTP会话时包含了两个通道,一个叫控制通道,一个叫数据通道。控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的。
数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道。
FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式
工作模式
主动模式
Active Mode. 由 服务端 发起数据传输的连接流程
1) client 与 server的21端口 建立连接, 用于发送命令
2) 接收数据
在控制通道上发送 PORT命令
PORT命令 包含 client用什么端口接收 server传过来的数据
3) 传输数据
server通过20端口 与client建立新的连接, 发送数据
被动模式
Passive Mode. 由 客户端 发起数据传输的连接流程
1) client 与 server的21端口 建立连接, 用于发送命令
2) server打开一个 随机端口(1024~5000), 通知client在此端口上传输数据
3) client 在 server通知的端口上建立连接
注
由于网关防火墙的原因, server(外网)无法对client(内外)主动建立连接因此, 一般使用的是 被动模式
vsftpd
说明vsftpd, Very Secure FTP Daemon
vsftpd 提供了一种 快速、稳定、安全 的FTP服务
安装
yum install -y vsftpd
启动
service vsftpd restart
[root@wuqinfei ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
配置/目录
主配置文件: /etc/vsftpd/vsftpd.conf
用户名单: /etc/vsftpd/ftpusers
控制名单: /etc/vsftpd/user_list
共享目录: /var/ftp
用户
说明
vsftpd 基于 用户 进行管理单位
每个用户可通过ftp方式访问 自己可访问的目录及文件
类型
正常用户(普通用户、系统用户)
匿名用户(anonymous)
虚拟用户(ftp-only)
匿名用户
vsftpd在安装过程中 创建的 ftp用户
默认home目录指向 /var/ftp/
任何 没有权限限制的 文件, 可通过匿名用户共享
打开匿名用户上传
vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
chmod 777 /var/ftp/pub
外部用户登陆
1) 临时关闭服务器上的防火墙
# service iptables stop
2) MS-DOC登陆
C:\Windows\System32>ftp 192.168.1.107
示例
ftp> help
命令可能是缩写的。 命令为:
! delete literal prompt send
? debug ls put status
append dir mdelete pwd trace
ascii disconnect mdir quit type
bell get mget quote user
binary glob mkdir recv verbose
bye hash mls remotehelp
cd help mput rename
close lcd open rmdir
ftp> bye
221 Goodbye.
C:\Windows\System32>ftp 192.168.1.107
连接到 192.168.1.107。
220 (vsFTPd 2.2.2)
用户(192.168.1.107:(none)): anonymous
331 Please specify the password.
密码:
230 Login successful.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Mar 01 2013 pub
226 Directory send OK.
ftp: 收到 61 字节,用时 0.00秒 61.00千字节/秒。
lftp
说明: Linux命令行下 连接 FTP的工具安装: # yum install lftp
登陆: lftp -u <user>[,<pass>]
匿名
普通用户
帮助
下载: ~>get [OPTS] <rfile> [-o <lfile>]
上传: ~>put [OPTS] <lfile> [-o <rfile>]
DropBox机制
说明: 具有dropbox功能的目录 只能上传, 但无法浏览实现
mkdir /var/ftp/mydropbox
chmod 2733 mydropbox