【Linux学习之路】—— 快速搭建一个FTP服务器

1.FTP是什么?

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。 ——来自百度百科

2.如何在Linux上面使用FTP协议?

使用VSFTP软件——VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

3.开始在Linux上安装vsftpd软件

(注意要使用root用户)
先测试一下Linux中是否安装了vsftpd;安装了会显示出vsftpd的信息,没有安装则什么都不显示

rpm –qa| grep vsftpd

安装vsftpd

yum -y install vsftpd

安装成功之后,启动vsftpd

systemctl start vsftpd.service

之后让我们查看一下vsftpd的状态

systemctl status vsftpd.service
systemctl restart vsftpd.service   //这条语句是重新启动vsftpd服务

接下来,设置vsftpd开机自启动

systemctl enable vsftpd.service

好了,软件安装完成!

4.配置防火墙

yum install iptables-services  //安装iptables
systemctl start iptables.service //启动iptables
systemctl restart iptables.service //重新启动iptables
systemctl status iptables.service  //查看iptables 的状态
systemctl enable iptables.service  //设置为开机启动

生成 iptables 的配置文件,位置为在/etc/sysconfig/iptables

service iptables save

效果:
这里写图片描述

接下来配置iptables

用vim打开/etc/sysconfig/iptables

vim /etc/sysconfig/iptables

如下图:
【Linux学习之路】—— 快速搭建一个FTP服务器_第1张图片

将以下命令:

A INPUT -p tcp -m state --state NEW-m tcp --dport 21 -j ACCEPT

放在这条命令之前,这条命令是让防火墙开发21端口

这里写图片描述

FTP中的21端口用于连接,20端口用于传输数据。客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,要传输文件时,服务器会开一个端口为20来进行传输数据文件。

配置好防火墙之后,我们的FTP服务并不能正常使用。因为还有一个叫SELinux的东西在“捣蛋~”
(自己去看看SELinux是啥吧~)

执行以下命令

getsebool -a | grep ftp

如图:
【Linux学习之路】—— 快速搭建一个FTP服务器_第2张图片

selinux禁止了所有的ftp服务
ftp_home_dir,ftpd_connection_db
两个boolean变量设为true 

执行以下命令来修改

setsebool -P ftp_home_dir 1
setsebool -P ftpd_connection_db 1

好啦,ftp服务现在已经可以访问啦!
当然了,这是一个超级简单的ftp服务器,什么认证都没用设置。之后我还会继续写的。用户权限的设置和虚拟用户的设置。

你可能感兴趣的:(ftp服务器,linux)