文件传输协议—-FTP

导读:本篇文章讲解 文件传输协议—-FTP,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


1.概述

FTP(File Transfer Protocol,文件传输协议)

典型的c/s架构的应用层协议,需要由服务端软件、客户端软件两部分共同实现文件传输功能。FTP客户端与服务端的连接是可靠的。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。

FTP的两种模式
它支持两种模式,Standard(Active)的主动模式和Passive(PASV)的被动模式。
Standard模式
FTP客户端首先和FTP Server模式,21端口来建立连接,通过这个通道发送指令,客户端需要接收数据的时候再这个通道上发送PORT指令。PORT命令包含了客户端的数据,在传送的时候,服务器通过自己的TCP 20端口发送数据。FTP Server必须和客户端建立一个新的连接用来传输数据。
Passive模式
在建立控制通道的时候和Standard模式类似,当客户端通过发送PASV命令的时候 ,TFPServer打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传输数据的请求,然后FTP Server将通过这个端口来进行数据的传输。这个时候FTP Server不在需要建立一个新的和客户端之间的连接。
在这里插入图片描述

2.FTP的配置(centos7)

2.1 安装FTP服务

192.168.28.10的centos主机作为FTP服务器用
192.168.28.129的win10主机作为客户端

为服务器搭建服务,安装提供ftp服务的vsftpd软件包

[root@ftp10 ~]# yum install -y vsftpd

2.2 编辑配置文件

/etc/vsftpd/vsftp.cond ftp服务器的主配置文件
/etc/pam.d.vsftpd
/etc/vsftpd/ftpusers 禁止登录用户名单,默认root不能登录
/etc/vsftpd/user_list 可以通过设置只有这个名单里的用户可以登录。如果统一用户同时出现在ftpusers和user_list那么该用户也是被禁止登录的
/var/ftp ftp根目录
/var/ftp/pub 默认登录位置

编辑主要配置文件
12 anonymous_enable=YES 默认开启匿名访问
19 write_enable=YES 开放服务器的写权限(若要上传,必须开启)默认已开启
129 anon_umask=002 设置匿名用户上传数据的权限反掩码(自行插入)
29 #anon_upload_enable=YES 允许匿名用户上传文件,需取消注释
33 #anon_mkdir_write_enable=YES 允许匿名用户创建,需取消注释
130 anon_other_write_enable=YES 允许其它删除、重命名、覆盖等操作,需自行添加

[root@ftp10 vsftpd]# vim vsftpd.conf 

如上述修改,前面标有行数

为匿名访问ftp的根目录下的pub子目录设置最大权限,便于匿名用户上传数据
chmod 777 /var/ftp/pub

[root@ftp10 vsftpd]# cd /var/ftp/
[root@ftp10 ftp]# ll
总用量 0
drwxr-xr-x. 2 root root 6 610 2021 pub
[root@ftp10 ftp]# chmod 777 pub/

2.3启动服务,关闭防火墙,监听端口

[root@ftp10 ftp]# systemctl start vsftpd
[root@ftp10 ftp]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@ftp10 ftp]# netstat -natp | grep vsftpd
tcp6       0      0 :::21                   :::*                    LISTEN      8388/vsftpd         

2.4 测试FTP服务器功能

匿名登录

到windows客户端匿名登录ftp服务器
在这里插入图片描述

在ftp服务器上创建文件

在这里插入图片描述
在这里插入图片描述

[root@ftp10 ftp]# ls
pub
[root@ftp10 ftp]# cd pub/
[root@ftp10 pub]# ls
[root@ftp10 pub]# echo "centos" >> test1
[root@ftp10 pub]# ls
test1

在客户机上查看
在这里插入图片描述

在客户机查看创建的文件内容

在这里插入图片描述
在客户机上创建文件上传大ftp服务器
在这里插入图片描述

在客户机创建文件失败报错

在这里插入图片描述

设置SELinux服务对ftp服务的访问规则策略为允许

setsebool -P ftpd_full_access=on

[root@ftp10 ftp]# setsebool -P ftpd_full_access=on

在这里插入图片描述
上传成功ftp服务端可以查看客户端上传文件
在这里插入图片描述

直接用ftp:///192.168.28.10查找文件
在这里插入图片描述
在这里插入图片描述

也可以用网页访问
在这里插入图片描述

自建用户,尝试登陆

[root@ftp10 ~]# vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述
在这里插入图片描述

创建指定的目录

创建目录并赋予权限,然后重新启动ftp服务

[root@ftp10 ~]# vim /etc/vsftpd/vsftpd.conf
[root@ftp10 ~]# mkdir -p /var/www/ky21
[root@ftp10 ~]# chmod 777 /var/www/ky21/
[root@ftp10 ~]# systemctl restart vsftpd
[root@ftp10 ~]# tail -10 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
123:x:1000:1000:123:/home/123:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
zhangsan:x:1001:1001::/data/zhangsan:/bin/bash
lisi:x:1002:1002::/home/lisi:/bin/bash
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin

尝试用windows使用lisi用户去登录ftp
ftp主机创建文件

[root@ftp10 ky21]# ls
[root@ftp10 ky21]# mkdir lisi
[root@ftp10 ky21]# cd lisi/
[root@ftp10 lisi]# ls
[root@ftp10 lisi]# echo "this is lisi" >> lisi

在这里插入图片描述
在客户机找到文件
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/76559.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!