centos搭建FTP服务器

一、什么是FTP?

文件传输协议(File Transfer Protocol,FTP)该协议工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层。因为需要可靠的连接,使用 TCP 传输,使用的默认端口是:2021

20端口作为数据传输,21端口作为控制传输。


二、FTP的工作模式

工作模式有主动模式(PORT)被动模式(PASV)

2.1 PORT(主动模式)

PORT中文称为主动模式

工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码进行登录,登录成功后要查看或读取数据时,客户端会随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口。FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据。


2.2 PASV(被动模式)

PASVPassive的缩写,中文称为被动模式

工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要查看或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端也会随机开放一个端口(1024以上),再连接到服务器开放的端口进行数据传输。


三、简述两种模式的差别

简单来说:

主动模式是和服务器进行传输前,服务器主动发起请求并提供20端口给客户端进行连接。

被动模式是和服务器进行传输前,客户端主动发起请求,请求后服务器随机开放一个端口(1024以上),客户端进行连接。

无论是主动模式还是被动模式,客户端都使用1024及以上的端口进行连接服务器。


四、搭建FTP服务器

4.1 配置环境

先搭建好yum仓库
搭建ftp服务器需要使用vsftpd包


4.2 安装服务vsftpd包

yum install -y vsftpd

4.3 配置服务

systemctl enable vsftpd	#设置为开机自启动
systemctl start vsftpd	#启动服务

4.4 查看ftp的端口

netstat -antup | grep ftp

4.5 查看ftp服务的状态

systemctl status vsftpd		#查看服务状态

五、配置vsftpd

vsftpd服务安装后默认开启了匿名FTP功能

使用匿名FTP,用户无需输入用户名密码即可登录FTP服务器,但没有权限修改或上传文件。

用户如果试图使用Linux操作系统中的账号登录服务器,就会被拒绝,但可以在vsftpd里配置用户账号和密码登录。


5.1 创建ftp用户

useradd ftpadmin

5.2 配置ftp用户的密码

passwd ftpadmin

5.3 将用户写进配置文件/etc/vsftpd/user_list

vi /etc/vsftpd/user_list
ftpadmin

5.4 创建ftp的共享目录

mkdir /ftp

5.5 修改目录的所有者

chown -R ftpadmin:ftpadmin /ftp

5.6 修改配置文件

配置文件的地址/etc/vsftpd/vsftpd.conf

编辑配置文件:

vi /etc/vsftpd/vsftpd.conf

可以根据实际需求选择将FTP配置为主动模式或者被动模式。


5.6.1 配置主动模式

#设置不允许匿名登录FTP服务器,只允许本地用户登录FTP服务器,并指定FTP本地用户使用的文件目录。
anonymous_enable=NO              #不允许匿名登录FTP服务器
local_enable=YES                 #允许本地用户登录FTP服务器
local_root=/ftp/     			#FTP本地用户使用的文件目录

#限制用户只能访问自身的主目录。
chroot_local_user=YES                      #所有用户都被限制在其主目录
chroot_list_enable=YES                     #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list   #例外用户名单
allow_writeable_chroot=YES                 #允许用户的写权限


【放通端口】
20端口和21端口

5.6.2 配置被动模式

被动模式除了需要配置主动模式所需的所有参数外,还需要配置以下参数

#设置以下参数,配置FTP支持被动模式。
#并指定FTP服务器的公网IP地址,以及可供访问的端口范围,端口范围请根据实际环境进行设置

listen=YES                    
listen_ipv6=NO                
pasv_address=xx.xx.xx.xx      #FTP服务器的公网IP地址
           
pasv_min_port=3000            #被动模式下的最小端口
pasv_max_port=3100            #被动模式下的最大端口

【放通端口】
21端口
和配置文件“/etc/vsftpd/vsftpd.conf”中参数“pasv_min_port”和“pasv_max_port”间的所有端口

5.7 配置完保存退出,创建chroot_list文件

然后进入/etc/vsftpd 目录下创建chroot_list文件。

cd /etc/vsftpd
touch chroot_list

chroot_list文件是配置只能访问主目录的例外用户名单。

如果需要设置某个用户不受只可以访问其主目录的限制,可将对应的用户名写入该文件。如果没有例外也必须要有chroot_list文件,内容可以为空。

5.8 重启服务

配置文件修改后需要重启vsftpd服务才能让配置生效

systemctl restart vsftpd.service

五、测试

5.1 关闭防火墙

可以关闭防火墙

systemctl stop firewalld

主动模式默认要放通2021端口,如果修改过端口,按照修改的端口放通

被动模式要放通21端口和配置文件/etc/vsftpd/vsftpd.conf中的参数pasv_min_portpasv_max_port之间的所有端口


5.2 windows客户端测试

打开桌面的计算机,在文件夹路径栏输入

ftp://FTP服务器IP地址:FTP端口	(不填端口则默认访问21端口) 

弹出输入用户名和密码的对话框表示配置成功

输入正确的用户名和密码后,可以对FTP目录进行相应权限的操作。


5.3 linux客户端测试

使用ftp命令,如果没有该命令进行安装

yum install -y ftp
ftp domain/ip

5.4 注意

如果FTP服务器配置为主动模式,客户端使用此方法访问FTP站点时,需要对IE浏览器进行设置,才能打开FTP的文件夹。打开IE浏览器,选择“工具 > Internet 选项 > 高级”。勾选“启用FTP文件夹视图”取消勾选“使用被动FTP”

使用浏览器访问FTP服务器出错时,先清除浏览器缓存后再尝试。

新版的edge浏览器只能在文件资源管理器中打开 FTP 站点


  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值