FTP服务基础与如何设置匿名访问FTP服务

1.FTP(文件传输协议)概述

  • FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式。
  • 通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器。
  • 同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP服务的功能是实现完整文件的异地传输。

2.FTP工作模式

  • 分为两种模式:主动模式port、被动模式pasv

2.1 主动模式port

  • 在主动模式下,FTP客户端首先与FTP服务器的TP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送Pot命令。
  • Port命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过其TCP20端口连接到客户端的指定端口发送数据。FTP服务器必须与客户端建立一个新的连接用来传送数据。

2.2 被动模式pasv

  • 在被动模式下,建立控制通道时与主动模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。
  • FTP服务器收到Pas命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器上的这个端口,然后FTP服务器将通过这个端口传送数据。在这种情况下,FTP服务器不再需要与客户端建立一个新的连接。

3.FTP传输模式

3.1 ASCⅢ传输模式

  • 假定正在传输的文件包含简单的ASCI码文本,当文件传输时FTP通常会自动地调整文件的内容,以便将文件存储为另外一台计算机上的ASCI码文本文件。

3.2 二进制传输模式

  • 在二进制传输中,保存的是文件的二进制位序,以便源文件与目标文件逐位一一对应,从而保证二进制文件的正确传输。
  • 如果在ASCI方式下传输二进制文件,则系统会自动将二进制数据转译为ASCI信息。这样不仅会使传输速度变慢,还会损坏数据,从而使文件变得无法使用。所以一般在使用FTP传输文件时,通常建议使用二进制传输模式。

4.匿名访问的FTP服务

  • 访问匿名服务FTP服务器时,不需要密码验证,任何人都可以使用,非常方便。当需要提供公开访问的文件下载资源,或者让用户上传一些不需要保密的数据资料时,可以选择搭建匿名FTP服务。

4.1 准备匿名FTP访问的目录

  • FTP匿名用户对应的系统用户为ftp,其宿主目录/var/ftp/,也就是匿名访问vsftp服务时所在的FTP根目录。基于安全性的考虑,FTP根目录的权限不允许匿名用户或其他用户有写入权限,故需要创建有一个用于下载的测试文件(为了后续测试),例如:
[root@server1 ~]# tar zxvf /var/ftp/vsftpconf.tar.gz /etc/vsftpd/

/var/ftp/目录下默认设置了一个pub的子文件夹,可以在匿名访问FTP时供上传文件使用。

4.2 开放匿名用户配置并启动服务

[root@server1 ~]# vi /etc/vsftpd/vsftpd.conf    //编辑配置文件
anon_umask=022                  //设置匿名账户的权限为755            
anon_other_write_enable=YES      //允许匿名账户其它写权限
local_enable=NO                  //允许本地账户登录
local_umask=022                 //本地账户的权限为755 
anon_upload_enable=YES          //允许匿名账户上传
anon_mkdir_write_enable=YES     //允许匿名账户新建文件或目录
listen=YES                      //监听IPv4地址的请求
listen_ipv6=NO                  //监听IPv地址的请求
[root@server1 ~]# systemctl start vsftpd        //服务启动                         
[root@server1 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$"   

检索确认配置:

在这里插入图片描述

4.3 开放pam认证并查看

[root@server1 ~]# pam_service_name=vsftpd     //开启pam认证
[root@server1 ~]# userlist_enable=YES         //开启用户列表
[root@server1 ~]# cd /etc/pam.d/
[root@server1 pam.d]# ls -lh
[root@server1 pam.d]# vi vsftpd

在这里插入图片描述

4.4 创建文件并测试

[root@server1 pam.d]# cd /var/ftp/pub    
[root@server1 pub]# echo "hello" > aq.txt       	'//创建文件aq.txt ,内容是"hello"'
[root@server1 pub]# echo "nice" > bq.txt			'//创建文件bq.txt ,内容是"nice"'
[root@server1 pub]# chmod -R 755 /var/ftp/pub   	'//设置文件或目录的权限'
[root@server1 pub]# chown -R ftp.ftp /var/ftp/pub 	'//设置文件或目录的归属'
[root@server1 pub]# ls -lh
  • 选择客户机,并关闭防火墙:
[root@client1 ~]# systemctl status firewalld
[root@client1 ~]# setenforce 0
  • 安装FTP服务并登录服务器地址:

在这里插入图片描述

[root@client1 ~]# ftp 20.0.0.100    '//进入ftp服务器地址'
Name (20.0.0.100:root): ftp
230 Login successful.            '//登录成功'
ftp> ls -lh                     
ftp> cd pub 
ftp> ls -lh
ftp> mkdir am                    '//创建目录 am'
ftp> put anaconda-ks.cfg         '//上传文件'
ftp> ls -lh                      '//查看'
  • 最后可以在ftp服务器上进行查看;也可以在Window里进行访问ftp服务器,即
    在文件搜索栏输入地址ftp://20.0.0.100/pub/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值