一、FTP简介
文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议。它工作于网络传输协议的应用层,使用客户/服务器模式,主要是用来在服务器与客户端之间进行数据传输。FTP 其实是以 TCP 封包的模式进行服务器与客户端计算机之间的联机,当联机建立后,使用者可以在客户端端连上 FTP 服务器来进行文件的下载与上传,此外,也可以对 FTP 服务器上面的文档进行管理等。
FTP传输模式
文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。
FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式(默认的工作模式)。主被动模式均是以FTP服务器端为参照。
FTP主动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器,FTP服务器以数据端口(20)连接到客户端指定的数据端口(N+1)。
FTP被动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,客户端提交 PASV命令,服务器会开启一个任意的端口(P >1024),并发送PORT P命令给客户端。客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
在企业实际环境中,如果FTP客户端与FTP服务端均开放防火墙,FTP需以主动模式工作,这样只需要在FTP服务器端防火墙规则中,开放20、21端口即可。
环境准备。
属性 FTP服务端 FTP客户端节点 wencheng-1 windows10
系统 CentOS Linux release 7.5.1804 (Minimal) windows10 企业版
内核 3.10.0-862.el7.x86_64 windows10 企业版2019 x64
IP地址 172.16.70.185 172.16.70.50
SELinux setenforce 0 | disabled
FTP服务端操作步骤
1.服务端安装vsftpd服务。
[root@wencheng-1 ~]# yum install -y vsftpd [root@wencheng-1 ~]# rpm -qa | grep vsftpd vsftpd-3.0.2-28.el7.x86_64 [root@wencheng-1 ~]# rpm -ql vsftpd /etc/pam.d/vsftpd # vsftpd 使用PAM模块时的配置文件,主要做认证功能 /etc/vsftpd/ftpusers # 用户登录黑名单,拒绝ftpusers列表内的用户登录vsftpd,一行一个账号 /etc/vsftpd/user_list # 默认为用户登录黑名单,拒绝user_list列表内的用户登录vsftpd,一行一个账号,这个 配置是否能够生效与 vsftpd.conf 内的参数 userlist_enable, userlist_deny 有关 /etc/vsftpd/vsftpd.conf # vsftpd 服务器的主配置文件,配置格式使用 [参数=设定值] 来设定,注意,等号两边不能有空白 /etc/vsftpd/vsftpd_conf_migrate.sh # 迁移脚本 /usr/sbin/vsftpd # vsftpd命令执行脚本文件 /var/ftp # 匿名用户访问根目录 [root@wencheng-1 ~]# systemctl start vsftpd [root@wencheng-1 ~]# ps -ef | grep vsftpd root 10988 1 0 16:20 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 10990 1583 0 16:21 pts/1 00:00:00 grep --color=auto vsftpd [root@wencheng-1 ~]# ps -ef | grep vsftpd root 10988 1 0 16:20 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 10992 1583 0 16:21 pts/1 00:00:00 grep --color=auto vsftpd [root@wencheng-1 ~]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.