Linux系统下安装FTP服务
1. 简介
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。互联网上提供文件存储和访问服务的计算机,他们依照的是FTP协议提供服务!支持FTP协议的服务器就是FTP服务器!FTP协议提供存储和传输服务的一套协议。下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
2. 工作原理
FTP采用客户端/服务端的工作模式(C/S结构),通过TCP协议建立客户端和服务器之间的连接,但与其他大多数应用协议不同,FTP协议在客户端和服务端之间建立了两条通信链路,分别是控制链路和数据链路,其中,控制链路负责FTP会话过程中FTP命令的发送和接收,数据链路则负责数据的传输。FTP会话包含了两个通道,控制通道和数据通道,FTP的工作有两种方式,一种是主动模式,一种是被动模式,以FTPServer为参照物,主动模式,服务器主动连接客户端传输,被动模式,等待客户端的的连接 。(无论是主动模式还是被动模式,首先的控制通道都是先建立起来的,只是在数据传输模式上的区别)。
3. FTP的安装与配置
方式一:FTP在线安装
yum install -y vsftp
方式二:FTP离线安装
1. 下载vsftp安装包
查看本地Linux版本
cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
下载地址:http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)
下载符合部署环境版本的安装包,CentOS 7.x(现场环境) 所以选择 vsftpd-3.0.2-25.el7.x86_64.rpm
2. 检查是否已经安装了vsftp,后面会介绍怎样卸载
rpm -qa | grep vsftpd
如果没有提示则说明没有安装
如果提示版本号则说明已经安装
3. 安装vsftpd
rpm -ivh vsftpd-3.0.2-25.el7.x86_64.rpm
4. 检查是否安装成功
rpm -qa | grep vsftpd
出现版本号,说明安装成功
vsftpd-3.0.2-25.el7.x86_64
5. 开启vsftpd的 20与21端口
开启
iptables -I INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
iptables -I OUTPUT -o eth0 -p tcp --sport 20 -j ACCEPT
保存
/etc/rc.d/init.d/iptables save
重启防火墙
service iptables restart
6. centos7.3 开启20和21端口,开启4000-5000端口为被动连接提供数据传输
firewall-cmd --permanent --add-port=20/tcp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=4000-5000/tcp
重启防火墙
systemctl restart firewalld.service
1)如果执行期间发生以下提示信息
firewall-cmd --permanent --add-port=20/tcp
FirewallD is not running
2)查看firewalld状态:systemctl status firewalld
,如果是dead状态,即防火墙未开启,按以下步骤操作,重启防火墙>>>查看防火墙状态>>>执行开放端口命令。
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)
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2020-04-13 09:10:09 CST; 9s ago
Docs: man:firewalld(1)
Main PID: 11409 (firewalld)
Memory: 23.5M
CGroup: /system.slice/firewalld.service
└─11409 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Apr 13 09:10:08 host-172-18-233-123 systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 13 09:10:09 host-172-18-233-123 systemd[1]: Started firewalld - dynamic firewall daemon.
Apr 13 09:10:10 host-172-18-233-123 firewalld[11409]: WARNING: ICMP type 'beyond-scope' is not supported by the ke...pv6.
Apr 13 09:10:10 host-172-18-233-123 firewalld[11409]: WARNING: beyond-scope: INVALID_ICMPTYPE: No supported ICMP t...ime.
Apr 13 09:10:10 host-172-18-233-123 firewalld[11409]: WARNING: ICMP type 'failed-policy' is not supported by the k...pv6.
Apr 13 09:10:10 host-172-18-233-123 firewalld[11409]: WARNING: failed-policy: INVALID_ICMPTYPE: No supported ICMP ...ime.
Apr 13 09:10:10 host-172-18-233-123 firewalld[11409]: WARNING: ICMP type 'reject-route' is not supported by the ke...pv6.
Apr 13 09:10:10 host-172-18-233-123 firewalld[11409]: WARNING: reject-route: INVALID_ICMPTYPE: No supported ICMP t...ime.
Hint: Some lines were ellipsized, use -l to show in full.
firewall-cmd --permanent --add-port=20/tcp
success