栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

centos搭建FTP服务器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

centos搭建FTP服务器

一、什么是FTP?

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

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

二、FTP的工作模式

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

1、PORT(主动模式)

PORT中文称为主动模式。

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

2、PASV(被动模式)
PASV是Passive的缩写,中文称为被动模式。

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

三、简述两种模式的差别

简单来说:

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

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

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

四、搭建FTP服务器

搭建ftp服务器需要使用vsftpd包

安装vsftpd包:

yum install -y vsftpd

设置为开机自启动并启动服务:

systemctl enable vsftpd
systemctl start vsftpd

查看ftp的端口:

netstat -antup | grep ftp

查看ftp服务的状态:

systemctl status vsftpd

配置vsftpd:
vsftpd安装后默认开启了匿名FTP功能,使用匿名FTP,用户无需输入用户名密码即可登录FTP服务器,但没有权限修改或上传文件。

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

先创建个ftp用户:

useradd ftpadmin

配置ftp用户的密码:

passwd ftpadmin

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

vi /etc/vsftpd/user_list
ftpadmin

创建ftp的共享目录:

mkdir /ftp

修改该文件的所有者:

chown -R ftpadmin:ftpadmin /ftp

修改配置文件:
配置文件的地址/etc/vsftpd/vsftpd.conf
编辑配置文件:

vi /etc/vsftpd/vsftpd.conf

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

配置主动模式:

#允许匿名登录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                 #允许用户的写权限

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

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

配置完保存好退出
然后进入/etc/vsftpd 目录下创建chroot_list文件。

cd /etc/vsftpd
touch chroot_list

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

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

systemctl restart vsftpd.service
五、要设置好系统防火墙

测试场景下可以关闭防火墙

systemctl stop firewalld

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

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

客户端测试
打开客户端的计算机,在路径栏输入

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

弹出输入用户名和密码的对话框表示配置成功,输入正确的用户名和密码后,可以对FTP目录进行相应权限的操作。

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号