Linux-FTP服务(在VMware中实现Win10与Linux虚拟机的互联互通)


一、FTP服务

1.FTP概述

  • FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一,FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端
  • 其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源,即依照 FTP 协议提供服务,进行文件传送的计算机
  • 而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端
  • 用户要连上FTP 服务器,就要用到 FTP 的客户端软件
  • FTP需要由服务端软件、客户端软件两个部分共同实现文件传输功能
  • FTP是一个客户/服务器系统,用户通过一个客户机程序连接至在远程计算机上运行的服务器程序

1.FTP连接

  • FTP服务器默认使用TCP协议的20、21端口于客户端进行通信
  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP控制命令

2.FTP传输模式

  • 根据FTP服务器在建立数据连接过程中的主、被动关系,FTP数据连接分为主动模式和被动模式,两者的含义及主要区别如下

2.1 主动模式:

  • 服务器主动发起数据连接
  • 首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来连接我”,于是服务器从20端口向客户端的该端口发送请求并建立数据连接

2.3 被动模式:

  • 服务器被动等待数据连接
  • 如果客户机所在网络防火墙禁止主动模式连接,通常使用被动模式
  • 首先由客户端向服务端的21端口建立FTP连接,当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你来链接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接

二、FTP连接实验

  • 实验环境:
    在VMware环境下的Linux虚拟机(CentOS 7)和Win10虚拟机

1.编辑ftp配置文件

[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -hT        ##检查是否已挂载好
...
...略
[root@localhost ~]# yum -y install vsftpd        ##安装vsftpd软件包
...
...略
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls        ##查看一下该文件
ftpusers   vsftpd.conf
user_list  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.bak        ##需要将vstpd.conf文件备份,它没有模板
  • vim vsftpd.conf
    mark

2.为匿名访问ftp的根目录下的 pub子目录设置最大权限,以便匿名用户上传数据

mark

3.匿名访问测试

  • 在虚拟机Windows10打开 开始 菜单,输入 cmd 命令打开命令提示符
    mark
  • 切换到Linux虚拟机,新建文件以作测试
[root@localhost ftp]# cd pub/
[root@localhost pub]# touch xcfxcf.txt        ##新建一个文件以作测试
[root@localhost pub]# ls
xcfxcf.txt
  • 再切回到win10,确认一下
    mark
    mark
  • 再测试一下从win10上传文件至ftp目录
  • 这里顺便在新建一个文件夹,注意格式
    mark
  • 再回到CMD你输入确认后可能会提示你“远程主机关闭连接”,这里是因为时间久了会自动断开连接,没事,再重连下就行
    mark
  • 再回到Linux查看下
    mark

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

mark
mark

  • 修改完后重启服务,可以多重启几次
[root@localhost pub]# systemctl restart vsftpd
[root@localhost pub]# systemctl restart vsftpd
[root@localhost pub]# 

mark

  • 再回到Win10虚拟机
    mark
  • Linux继续修改以下设置
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

mark

[root@localhost ~]# systemctl restart vsftpd
##记得重启!
  • 再切回到win10虚拟机
    mark

5.使用 user_list 用户列表文件

  • 当vsftpd服务器开放了“local_enable”配置项以后,默认情况下除root外的所有系统用户都可以登录到此FTP服务器
  • 若只希望对一小部分系统用户开放FTP服务,则需要开放用户列表控制的相关配置项
  • 操作如下:
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

mark

[root@localhost ~]# vim /etc/vsftpd/user_list 

mark

  • 配置完记得重启一下服务
[root@localhost ~]# systemctl restart vsftpd
  • 新建好刚才设置进去的那两个用户
    mark

  • 再去Win10虚拟机测试一把
    mark

  • 这就是一个类似于白名单的功能

猜你喜欢

转载自blog.csdn.net/weixin_51486343/article/details/111146444