文章目录

  • 1.FTP简介
    • 1.1 FTP概述
    • 1.2 FTP主动模式
    • 1.3 FTP被动模式
  • 2. 实例:匿名用户访问FTP服务
  • 3. 实例:本地用户访问FTP服务

1.FTP简介

1.1 FTP概述

FTP服务——用来传输文件的协议。

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信.

20端口用于建立数据连接,并传输文件数据.

21端口用于建立控制连接,并传输FTP控制命令.

FTP数据连接分为主动模式和被动模式

主动模式:服务器主动发起数据连接

被动模式:服务器被动等待数据连接

1.2 FTP主动模式

主动模式:客户端给服务端的21控制端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会连接客户端已打开的那个数据端口把东西传给客户端,这就是主动模式,可以理解为服务端主动给客户端传输文件。

1.3 FTP被动模式

被动模式:客户端给服务器端的21端口发命令说,我要下载什么什么,服务端知道后,就打开一个空闲的端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧。于是客户端就从那个端口进去拿文件了,这就是被动模式,可以理解为服务端被客户端拿走了东西。

2. 实例:匿名用户访问FTP服务

(1)设置匿名用户能够下载和上传文件的命令配置;

[root@clr ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
tmpfs           394M   28K  394M    1% /run/user/0
/dev/sr0        4.4G  4.4G     0  100% /mnt    #查看光盘镜像文件是否已经挂载成功
[root@clr /etc/yum.repos.d]# yum install -y vsftpd   #安装vsftpd服务
已加载插件:fastestmirror, langpacks
已安装:vsftpd.x86_64 0:3.0.2-28.el7
完毕!
[root@clr /etc/yum.repos.d]# rpm -qc vsftpd  #查看vsftpd安装包配置文件所在的位置
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf    #vsftpd的配置文件[root@clr /etc/yum.repos.d]# cd /etc/vsftpd/
[root@clr /etc/vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@clr /etc/vsftpd]# cp vsftpd.conf{,.bak}   #先将vsftpd的配置文件备份下来
[root@clr /etc/vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh
[root@clr /etc/vsftpd]# vim vsftpd.conf  #修改vsftpd的配置文件12 anonymous_enable=YES   #开启匿名用户访问13 anon_umask=022   #设置匿名用户创建文件和目录的默认权限为75517 local_enable=YES    #开启本地用户访问20 write_enable=YES   #为匿名用户开放服务器的写权限24 local_umask=022   #本地用户对文件和目录权限30 anon_upload_enable=YES  #取消注释,允许匿名用户上传文件34 anon_mkdir_write_enable=YES    #允许匿名用户创建和上传目录35 anon_other_write_enable=YES    #开启其他权限,允许匿名用户删除、重命名、覆盖等操作[root@clr /etc/vsftpd]# cd /var/
[root@clr /var]# ls
account  cache  db     ftp  gopher    lib    lock  mail   nis  preserve  spool   tmp
adm      crash  empty  games  kerberos  local  log   named  opt  run       target  yp
[root@clr /var]# cd ftp/
[root@clr /var/ftp]# ll
总用量 0
drwxr-xr-x. 2 root root 6 10月 14 2020 pub  #默认权限为755,只允许超级用户root具有写入修改权限[root@clr /var/ftp]# mkdir gzy
[root@clr /var/ftp]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月  19 22:27 gzy
drwxr-xr-x. 2 root root 6 10月 14 2020 pub
[root@clr /var/ftp]# chmod 777 gzy/    #修改gzy目录为所有用户可读可修改权限
[root@clr /var/ftp]# ll
总用量 0
drwxrwxrwx. 2 root root 6 4月  19 22:27 gzy  #允许匿名用户在gzy目录中进行写入和修改权限
drwxr-xr-x. 2 root root 6 10月 14 2020 pub[root@clr ~]# systemctl start vsftpd  #开启ftp服务
[root@clr ~]# systemctl enable vsftpd  #将ftp服务设置为开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.[root@clr ~]# netstat -lntp | grep :21   #查看ftp的21号端口状态,是否已经打开
tcp6       0      0 :::21                   :::*                    LISTEN      11577/vsftpd
[root@clr ~]# cd /var/ftp/
[root@clr /var/ftp]# ls
gzy  pub
[root@clr /var/ftp]# cd gzy/
[root@clr /var/ftp/gzy]# echo 'helloworld' > 123.txt   #向gzy/目录中的123.txt文件中写入helloworld
[root@clr /var/ftp/gzy]# ls
123.txt
[root@clr /var/ftp/gzy]# cat 123.txt
helloworld
[root@clr /var/ftp/gzy]# cp /etc/passwd ./passwd.txt  #将/etc/passwd文件复制到当前目录下中,并重命名为passwd.txt
[root@clr /var/ftp/gzy]# ls
123.txt  passwd.txt

(2)客户端WIN10验证连接FTP服务器的结果;

切记一定要关闭防火墙,防止影响实验结果;

匿名用户连接FTP服务器;

匿名用户连接FTP服务器下载文件的情况;

匿名用户切换到桌面,并从桌面上传文件和下载文件到桌面的情况;

3. 实例:本地用户访问FTP服务

(1) 设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录);

[root@clr /var/ftp]# cd /etc/vsftpd/
[root@clr /etc/vsftpd]# ls
ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh
[root@clr /etc/vsftpd]# cp vsftpd.conf vsftpd.conf.bak.local  #备份vsftpd.conf的配置文件,养成备份的好习惯
[root@clr /etc/vsftpd]# vim vsftpd.conf
anonymous_enable=NO     #关闭匿名用户访问,只要禁止匿名用户登录后,那么匿名用户的其他所有选项都不生效
local_enable=YES   #允许本地用户登录
# Uncomment this to enable any form of FTP write command.
write_enable=YES   #开放服务器的写权限,允许本地用户上传文件
local_umask=077    #设置仅属主用户拥有被上传文件的权限(反掩码)

(2)创建本地用户,并重启ftp服务;

[root@clr /etc/vsftpd]# useradd clr   #创建本地用户clr
[root@clr /etc/vsftpd]# useradd gzy    #创建本地用户cgzy
[root@clr /etc/vsftpd]# echo '123456' | passwd --stdin clr
更改用户 clr 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@clr /etc/vsftpd]# echo '123123' | passwd --stdin gzy
更改用户 gzy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@clr /etc/vsftpd]# systemctl restart vsftpd  #重新启动ftp服务

本地用户从自己家目录中下载文件到当前目录中的情况;


(3)将本地用户禁锢在宿主家目录中,不允许访问和切换到其他目录;

[root@clr /var/named]# cd /etc/vsftpd/
[root@clr /etc/vsftpd]# ls
ftpusers   vsftpd.conf      vsftpd.conf.bak.local
user_list  vsftpd.conf.bak  vsftpd_conf_migrate.sh
[root@clr /etc/vsftpd]# vim vsftpd.conf  #修改/etc/vsftpd/vsftpd.conf配置文件
chroot_local_user=YES    #将访问禁锢在本地用户的宿主目录中
allow_writeable_chroot=YES   #允许被限制的用户主目录具有写权限
[root@clr /etc/vsftpd]# systemctl restart vsftpd  #重新启动vsftp服务器

(4)修改用户登录的默认根目录;

[root@clr ~]# cd /etc/vsftpd/
[root@clr /etc/vsftpd]# ls
ftpusers   vsftpd.conf      vsftpd.conf.bak.local
user_list  vsftpd.conf.bak  vsftpd_conf_migrate.sh
[root@clr /etc/vsftpd]# vim vsftpd.confchroot_local_user=YES
allow_writeable_chroot=YES
anon_root=/opt/    #修改匿名用户所在的目录位置为/opt/
local_root=/var/local_cge/html      #修改本地用户所在的目录位置为/var/local_cge/html[root@clr /opt]# chmod -R 777 /var/    #切记修改本地用户所在的目录的权限修改为777
[root@clr /opt]# chmod 555 /opt/    #切记修改匿名用户所在的目录的权限修改为555

(5) 使用user_list用户列表文件,设置白名单和黑名单,仅允许部分用户登录;


[root@clr /opt]# vim /etc/vsftpd/user_list   #修改并编辑user_list用户列表文件
root
bin
games
nobody
clr   #将本地普通用户加入到列表文件中[root@clr /opt]# vim /etc/vsftpd/vsftpd.conf   #修改ftp的配置文件
pam_service_name=vsftpd
userlist_enable=YES     #启用user_list用户列表文件,用户列表中存在的用户将无法通过ftp服务器连接到系统,列表中之外的用户可以登录到系统
userlist_deny=NO   #该阈值默认为YES,也就是设置黑名单,表示user_list用户表列表中存在的用户名无法登录; 当该阈值设置为NO时,也就是设置白名单,表示仅允许user_list用户表列表中存在的用户登录到系统;
tcp_wrappers=YES

客户端在图形界面中,连接FTP服务器的情况;

直接将FTP服务器中的文件拖到桌面,即可进行文件的下载;

【FTP】——文件传输协议相关推荐

  1. 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6

    其他协议 WebSocket WebSocket - 建立连接 WebService RESTful HTTPDNS FTP文件传输协议 邮件相关的协议(SMTP.POP.IMAP) POP vs I ...

  2. 网络编程之FTP文件传输协议

    FTP文件传输协议: 一.简述: 1.TCP/IP协议簇,应用层协议,采用服务端与客户端通信方式共享文件. 2.FTP根目录:/            (如路径: /hello/) 3.现在的FTP一 ...

  3. 计算机网络 P43 网络应用模型 P44 DNS系统 P45 FTP文件传输协议

    DNS系统: FTP文件传输协议  

  4. Day4:应用层——FTP :文件传输协议、电子邮件(EMail)、DNS(Domain Name System)、P2P应用(一类应用)

    加油!偷博人! 一.FTP文件传输协议  向远程主机上传输文件或从远程主机接收文件  客户/服务器模式  客户端:发起传输的一方  服务器:远程主机  ftp: RFC 959  ftp服 ...

  5. FTP文件传输协议(实现windows与linux文件互传)

    FTP文件传输协议(实现windows与linux文件互传) 目录 FTP文件传输协议(实现windows与linux文件互传) 一.FTP概述 二.FTP通信端口 三.FTP数据连接 四.FTP连接 ...

  6. FTP文件传输协议原理详解(两种工作模式)

    初始FTP     文件传输协议(File Transfer Protocol,缩写:FTP)是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议.文件传送(file transfer ...

  7. 浅谈FTP(文件传输协议)

    FTP(文件传输协议) FTP(File Transfer Protocol) ,是一种处于应用层的用于文件传输的协议.是基于TCP协议的应用层协议,用于在网络上传输文件. 该协议使用的端口号为20和 ...

  8. Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统

    Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...

  9. 互联网协议 — FTP 文件传输协议

    目录 文章目录 目录 FTP vsftpd 自动模式和被动模式 PORT 主动模式 PASV 被动模式 访问控制方式 部署配置 FTP Server Global config Anonymous U ...

  10. 中科大 计算机网络13 FTP文件传输协议

    FTP FTP:文件传输协议 早期分享文件采用FTP方式 客户端:下载文件 服务器:上传文件 FTP:控制连接 先建立控制连接[调用一系列Socket API],服务器守候在21端口;进行身份认证[用 ...

最新文章

  1. 0pp0r11如何更改语言_更改电脑日期的方法
  2. [导入]纹理拼接后的Wrap寻址
  3. 新功能抢先看!Windows 11 2022 版全新 ISO 镜像来了+下载
  4. element table根据条件隐藏复选框
  5. DataList多行数据后如何添加一条分隔线
  6. 疑似OPPO Find X2外观专利曝光:月亮形相机模组亮了
  7. 重新安装Jenkins
  8. BZOJ4516: [Sdoi2016]生成魔咒(后缀自动机)
  9. 内网穿透 (Natapp)
  10. MySQL基础面试题总结
  11. 机器学习中的算法:支持向量机(SVM)基础
  12. 异贝服装店都可以做会员营销?神奇的逆向思维让他快速裂变赚钱!
  13. 浏览器内核之渲染基础
  14. PIN,PUK,IMEI,ICCID,Ki,IMSI,SMSP之间的区别
  15. 【密码算法 之零】对称算法(DES,、3DES、 AES、DM5、HMAC、CMAC、SHAxx、SM3、SM4),非对称算法(RSA、ECC、ECDSA、ECDH、SM2、SM9...)
  16. 在Kmplayer中添加sub字幕过大而挡住视频的解决方法
  17. c语言花园自动喷淋系统,智慧小区花园自动浇灌喷淋控制系统
  18. 小蚁摄像机存储卡异常解决方法
  19. MySQL下载与安装、mysql服务启动与停止、mysql使用cmd命令行登录、SQLyog下载与安装,sqlyog登录与操作mysql
  20. 老程序员告诉你什么是大数据框架

热门文章

  1. vue动态生成二维码,扫码登录
  2. 如何写一个vscode插件
  3. php编写古诗,古诗写作方法集锦
  4. 使用Python二次开发S3D 查询当前选择元素基本信息
  5. linux截图后不见,xubuntu14.04截图,彻底到Linux一个半月后记
  6. Vue学习记录-路由
  7. oracle 数据库 ORA-28000错误的原因及解决办法
  8. 联通数科一面+二面+面谈 经验分享 base济南
  9. M5Product: Self-harmonized Contrastive Learning for E-commercial Multi-modal Pretraining 论文解读
  10. 制作 docker 精简 jre8 基础镜像