1 FTP
1 FTP是一个相当古老并且应用极为广泛的互联网协议,FTP为我们提供了一种可靠的方式在网络上进行文件共享
2 FTP是一种CS架构的服务,拥有一个服务端和客户端,FTP使用TCP协议作为底层传输协议,提供了数据传输的可靠性,FTP的标准端口为20,21,20做为数据接口,21为指令接口
3 所有的共享的文件都是放在服务端
2 FTP模式
FTP客户端和服务端连接有两种模式
1 主动模式:指的是假设客户端要向服务端请求文件共享的时候,首先客户端先发送一个请求到服务的21号端口,然后服务端返回一个指令要求客户端要做什么,接下来服务端通过20端口把数据发给客户端
2 由于现在的计算机很多都是有防火墙,很多由外网连接进来的都会被拒绝,因此现在开发了被动模式
2 被动模式: 指的是假设客户端要向服务端请求文件共享的时候,首先客户端先发送一个请求到服务的21号端口,然后服务端返回一个指令要求客户端要做什么。接下来客户端发送请求到服务端,服务端再把数据发给客户端
被动模式适合于现在绝大多数的有设置防火墙的主机
3 vsftpd
1 在Linux中应用作为广泛的FTP服务程序叫做vsftpd,vsftpd为我们提供了一个快速,稳定的并且相当安全的FTP服务
2 使用以下命令来安装vsftpd
yum install -y vsftpd
3 vsftpd的相关配置文件及目录如下
/etc/vsftpd/vsftpd.conf - vsftpd主配置文件
/etc/vsftpd/ftpusers - 黑名单
/etc/vsftpd/user_list - 控制名单(由配置文件控制是白名单还是黑名单)
/var/ftp - ftp共享目录
4 FTP用户
1 vsftpd使用用户作为管理单位,想要访问某个ftp共享文件,必须以特定用户登录,我们可以配置以下几种类型的用户
2 正常用户 (系统用户)
匿名用户 (anonymous)
虚拟用户 (ftp-ony)
3 默认情况下,vsftpd在安装的时候会创建一个ftp用户,这个用户就是作为匿名用户使用,ftp用户默认的家目录指向/var/ftp/,任何没有访问限制的文件都可以通过匿名用户共享
4 每一个系统中的用户都可以通过ftp方式访问自己的家目录
5 匿名用户共享
1 vsftpd安装好之后可以直接启动使用,不需要进行任何配置,默认的情况下匿名用户可以登录使用,普通系统中的用户也可以通过ftp方式访问自己的家目录
2 我们可以通过ftp命令作为ftp客户端使用,通过以下命令安装ftp
yum install -y ftp
3 命令ftp默认使用匿名用户登录
iftp 192.168.1.100
4 也可以指定用户登录
iftp -u linuxcast 192.168.1.100
6 FTP基本命令
1 使用get命令可以从ftp服务器上下载一个文件
iftp 192.168.1.100
cd pub
get linuxcast.tar.gz
2 使用put命令可以将一个文件上传到ftp服务器上
iftp -u linuxcast 192.168.1.100
cd Downloads
put linuxcast.tar.gz
3 只要登录的用户具有对某个文件的写权限,那么就可以进行上传的操作
4 使用匿名登录ftp下载整个目录 wget -m ftp://xxxx/dirname
7 匿名用户上传
1 默认情况下,vsftpd只允许匿名用户访问,但是不允许使用匿名用户上传文件,我们可以通过以下方式配置匿名用户上传
2 修改配置文件开启匿名用户上传功能:
1 /etc/vsftpd/vsftpd.conf
2 anonymous_enable = YES 开启匿名用户
anon_upload_enable = YES 打开匿名用户上传功能
anon_mkdir_write_enable = YES 打开匿名用户创建文件夹功能
3 赋予匿名用户上传使用的文件夹以写权限
chmod 777 /var/ftp/pub