Red Hat6.4环境下搭建FTP服务器的详细步骤

 更新时间:2026年03月10日 10:01:29   作者:渣渣盟  
FTP服务器(File Transfer Protocol Server)是一种用于文件传输的服务器软件或硬件设备,它通过FTP协议实现客户端与服务器之间的文件上传、下载和管理,本文给大家介绍了Red Hat6.4环境下搭建FTP服务器的详细步骤,需要的朋友可以参考下

FTP服务器(File Transfer Protocol Server)是一种用于文件传输的服务器软件或硬件设备。它通过FTP协议实现客户端与服务器之间的文件上传、下载和管理。以下是关于FTP服务器的详细介绍:

1. FTP服务器的功能

  • 文件传输:支持文件的上传和下载。
  • 文件管理:允许用户创建、删除、重命名文件和目录。
  • 权限控制:设置用户访问权限,限制对特定文件或目录的操作。
  • 日志记录:记录用户操作日志,便于审计和监控。
  • 匿名访问:支持匿名用户访问,无需用户名和密码。

2. FTP协议的工作原理

FTP协议使用两个通道进行通信:

  • 控制通道:用于发送命令和接收响应(默认端口:21)。
  • 数据通道:用于传输文件数据。

FTP支持两种模式:

  • 主动模式(Active Mode):服务器主动连接客户端的数据端口。
  • 被动模式(Passive Mode):客户端主动连接服务器的数据端口(推荐使用,避免防火墙问题)。

3. 常见的FTP服务器软件

  • vsftpd
    • 轻量级、安全的FTP服务器,适合Linux系统。
    • 支持匿名访问、虚拟用户和SSL/TLS加密。
  • ProFTPD
    • 功能丰富的FTP服务器,支持模块化扩展。
    • 配置灵活,适合复杂场景。
  • FileZilla Server
    • 跨平台的FTP服务器,支持Windows和Linux。
    • 提供图形化管理界面,易于使用。
  • Pure-FTPd
    • 专注于安全性和性能的FTP服务器。
    • 支持虚拟用户、磁盘配额和日志记录。

4. FTP服务器的部署

硬件要求

  • 存储空间:根据文件大小和数量选择合适的存储设备。
  • 网络带宽:确保足够的带宽以支持文件传输。

软件配置

  • 操作系统:Linux(如Ubuntu、CentOS)或Windows。
  • FTP服务器软件:如vsftpd、ProFTPD、FileZilla Server等。

部署步骤(以vsftpd为例)

vsFTP是一个基于GPL(General Public License,通用公共授权)发布的FTP服务器软件,其守护进程为vsftpd。vs是Very Secure的缩写,强调软件的安全性、高速和稳定性。

vsftpd有3个主要的配置文件,其中,/etc/vsftpd/vsftpd.conf为主配置文件,/etc/vsftpd/ftpusers和/etc/vsftpd/user_list为用户管理文件。

/etc/vsftpd/vsftpd.conf 服务器的配置主要是通过修改这个主配置文件来完成的。

更改vsftpd.conf文件后,必须重启vsftpd服务才能使设置生效。

匿名用户相关配置参数

anonymous_enable:用以控制是否允许匿名用户anonymous登录

no_anon_password:此选项可控制匿名用户登录时是否不需要用户输入密码

anon_root :选项可设定匿名用户的根目录

anon_world_readable_only :选项用于控制是否只允许匿名用户下载可阅读文档 anon_upload_enable:此选项用于控制是否允许匿名用户上传文件 anon_mkdir_write_enable :此选项用以控制是否允许匿名用户创建新目录

anon_other_write_enable:此选项用以控制匿名用户除上传和新建目录之外更改权限 chown_uploads:此选项用以控制是否修改匿名用户所上传文件的所有权 chown_username = username:此选项的作用是指定对匿名用户上传文件拥有所有权的用户,此参数与chown_uploads配合使用。

本地用户相关配置参数

local_enable:此选项用以控制vsftpd服务器的本地用户是否可以登录vsftpd服务器 local_root:此参数的作用是指定所有本地用户的根目录

连接参数 ->IP地址与端口设置选项

listen:此选项设置vsftp服务器是否以独立服务模式运行

listen_address:此选项设置在指定的IP地址上监听用户的FTP请求

Listen_port:该选项设置FTP服务器建立连接所侦听的端口

主动模式(PORT)选项

port_enable:该选项若设置为YES,则使用PORT工作模式

connect_from_port_20:该选项默认值为YES,即PORT模式

ftp_data_port:该选项在connect_from_port_20=NO时,设置PORT方式下FTP数据连接所使用的端口

被动模式(PASV)选项

pasv_enable:该选项若设置为YES,则使用PASV工作模式;

pasv_max_port:该选项设置在PASV工作模式下,数据连接可以使用的端口范围的上界。 pasv_mim_port:此选项设置在PASV工作模式下,数据连接可以使用的端口范围的下界

连接限制选项

anon_max_rate:该选项设置匿名用户所能使用的最大传输速度

local_max_rate:该选项设置本地用户所能使用的最大传输速度

max_clients:该选项设置vsftpd允许的最大连接数。

max_per_ip=0:该选项设置每个IP地址允许与FTP服务器同时建立连接的数目      

连接超时限制选项

accept_timeout:该选项设置建立被动(PASV)数据连接的超时时间

connect_timeout:该选项设置PORT方式下建立数据连接的超时时间。 data_connection_timeout:该选项设置建立FTP数据连接的超时时间。 idle_session_timeout:该选项设置多长时间不对FTP服务器进行任何操作,则断开该FTP

其他相关配置参数

chroot_list_enable:此选项的作用是锁定chroot_list_file文件中所列出用户的宿主目录。 chroot_list_file=/etc/vsftpd/chroot_list:此选项的作用是指出被锁定在宿主目录中的用户的列表文件。

chroot_local_users:此选项的作用是决定是否将本地用户锁定在其宿主目录中,当此选项为YES时,chroot_list_file文件中所指定的用户将不被锁定在各自的宿主目录中 passwd_chroot_enable:此选项为YES时,与chroot_local_users选项配合,chroot()容器的位置可以在每个用户的基础上指定,每个用户的容器来源于/etc/passwd中每个用户的宿主目录字段   

user_list用户管理文件 该文件中用户是否能登录vsFTP服务器,决定于主配置文件/etc/vsftpd/vsftpd.conf中的userlist_enable和userlist_deny两个参数

userlist_enable=YES|NO

userlist_enable=YES时, vsftpd将在userlist_file里读取用户列表,启用/etc/vsftpd/user_list文件。

userlist_deny=YES|NO

此选项的作用是决定是否不允许由userlist_file指定文件中的用户登录FTP服务器。若userlist_deny选项的值为NO,则只允许在文件中的用户登录FTP服务器(白名单)。值为YES,表示禁止文件中用户登录。

服务端安装部署

一、vsFTP服务的安装

[root@localhost Packages]# rpm  -ivh  vsftpd-2.2.2-11.el6.x86_64.rpm 

二、vsFTP服务的启动

[root@localhost ~]# service  vsftpd  start

设置开机自启动

[root@localhost ~] #chkconfig  vsftpd  on

三、添加本地用户sdcet

[root@localhost ~]#useradd  sdcet

[root@localhost ~]#passwd  sdcet

四、设置欢迎信息文件

[root@localhost ~]#echo  “welcome to sdcet FTP site”>/etc/vsftpd/welcome

五、修改主配置文件vsftpd.conf

   [root@localhost ~]#vim  /etc/vsftpd/vsftpd.conf
anonymous_enable=NO   

banner_file=/etc/vsftpd/welcome               

local_enable=YES               //默认配置     

write_enable=YES               //默认配置     

local_umask=022                 //默认配置     

dirmessage_enable=YES            //默认配置     

  

xferlog_enable=YES                 //默认配置                

connect_from_port_20=YES           //默认配置                   

xferlog_std_format=YES               //默认配置                  

listen=YES                            //默认配置                

pam_service_name=vsftpd               //默认配置               

userlist_enable=YES                    //默认配置                

tcp_wrappers=YES                       //默认配置

六、重启vsftpd服务

[root@localhost ~]#service  vsftpd  restart

七、禁用SELinux

sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config

客户端测试

1.安装FTP客户端工具

yum  -y install ftp

2.在服务端用户"sdcet"主目录下创建下载测试文件:

touch  /home/sdcet/1       //服务端

3.在客户端创建上传测试文件:

[root@localhost ~]# touch  q

[root@localhost ~]# ftp  192.168.0.100       //登录FTP服务

4.FTP服务常用命令

6.在客户机登录服务器的FTP服务

Connected to 192.168.0.100 (192.168.0.100).

220-welcome to sdcet FTP site      //显示欢迎信息

220

Name (192.168.0.100:root): sdcet    //输入用户名

331 Please specify the password.

Password:           //输入密码

230 Login successful.       //登录成功

7.尝试上传下载文件

ftp> get  1  /home/1                  //将文件1下载到/home目录

local: /home/1 remote: 1

227 Entering Passive Mode (192,168,2,10,167,77).

150 Opening BINARY mode data connection for 1 (0 bytes).

226 Transfer complete.            //下载完成

ftp> put q q                              //将本地文件q上传到服务器

local: q remote: q

227 Entering Passive Mode (192,168,2,10,59,234).

150 Ok to send data.

226 Transfer complete.          //上传完成

ftp> bye                                      //退出服务器

拓展与提高

设置用户黑名单

创建本地测试用户user1、user2,并设置用户口令:

[root@localhost ~]#useradd  user1 
[root@localhost ~]#passwd  user1 
[root@localhost ~]#useradd  user2             
[root@localhost ~]#passwd  user2

使用vi编辑器打开/etc/vsftpd/ftpusers,在末行添加user1,保存退出:

[root@localhost ~]#vim  /etc/vsftpd/ftpusers

登录FTP服务器测试,user1不能登录,而user2能够正确登录。

设置用户白名单

创建本地测试用户user3、user4,并设置用户口令:

[root@localhost ~]#useradd  user3 
[root@localhost ~]#passwd  user3 
[root@localhost ~]#useradd  user4             
[root@localhost ~]#passwd  user4 

修改主配置文件/etc/vsftp/vsftpd.conf,增加两个参数:

userlist_enable=YES 
userlist_deny=NO

使用vi编辑器修改/etc/vsftpd/user_list文件,在末行增加user3,保存退出。

登录FTP服务器测试,user3能够正常登录,而use4不能够登录。

锁定本地用户主目录

使用本地账户登录vsftpd服务后,可以切换任意目录,这会给服务器带来极大的安全隐患。              

[root@localhost ~]# vim  /etc/vsftpd/vsftpd.conf 
local_enable=YES                              //允许本地用户登录 chroot_local_user=YES                

 保存退出,重启vsftpd服务

再次以本地用户登录FTP服务,此时本地用户不能切换到自己主目录之外的其它目录。        

实现匿名用户上传、下载

更改/var/ftp/pub权限

[root@localhost ~]# chmod  757  /var/ftp/pub

修改配置文件

[root@localhost ~]# vim  /etc/vsftpd/vsftpd.conf
anonymous_enable=YES                      
anon_upload_enable=YES                     
anon_mkdir_write_enable=YES                
anon_other_write_enable=YES             
anon_umask=022

重启服务,测试匿名账户能否上传、下载

5. FTP服务器的优化

  • 启用SSL/TLS加密:保护数据传输安全。
  • 限制用户权限:避免用户访问无关文件。
  • 设置磁盘配额:防止用户占用过多存储空间。
  • 使用被动模式:避免防火墙问题,提高连接成功率。
  • 日志分析:定期检查日志,发现并解决潜在问题。

6. FTP服务器的应用场景

  • 文件共享:在团队或组织内共享文件。
  • 网站维护:上传和下载网站文件。
  • 数据备份:将重要数据备份到远程服务器。
  • 软件分发:提供软件下载服务。

7. 常见问题

  • 连接失败
    • 检查FTP服务是否正常运行。
    • 检查防火墙是否阻止了FTP端口(21)。
  • 传输速度慢
    • 检查网络带宽是否充足。
    • 使用被动模式,避免防火墙问题。
  • 安全问题
    • 禁用匿名访问,避免未授权用户访问。
    • 启用SSL/TLS加密,保护数据传输。

8. 替代方案

由于FTP协议存在安全性问题(如明文传输密码),建议考虑以下替代方案:

  • SFTP(SSH File Transfer Protocol):基于SSH协议,提供加密的文件传输。
  • FTPS(FTP over SSL/TLS):在FTP协议基础上添加SSL/TLS加密。
  • WebDAV:基于HTTP协议的文件传输和管理协议。

以上就是Red Hat6.4环境下搭建FTP服务器的详细步骤的详细内容,更多关于Red Hat6.4搭建FTP服务器的资料请关注脚本之家其它相关文章!

相关文章

  • Serv-u 10.3 的图文安装教程及使用方法

    Serv-u 10.3 的图文安装教程及使用方法

    现在很多windows服务器都是使用serv_u作为ftp服务器,一般情况下我们使用Serv-U FTP Server v6.4.0.6,这里以serv_u 10.3为例介绍下,方便需要的朋友
    2013-03-03
  • ubuntu如何搭建vsftpd服务器

    ubuntu如何搭建vsftpd服务器

    这篇文章主要介绍了ubuntu如何搭建vsftpd服务器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • FileZilla客户端的安装配置教程以及使用教程(超级详细)

    FileZilla客户端的安装配置教程以及使用教程(超级详细)

    本文介绍了FileZilla,一个跨平台的FTP/SFTP/FTPS客户端,及其服务器端的搭建步骤,包括下载、安装、用户管理、权限设置、主被动模式等,重点展示了如何在实际场景中使用它进行网站维护、文件备份和远程文件管理,需要的朋友可以参考下
    2024-09-09
  • Ubuntu 22.04安装配置FTP服务器的详细教程

    Ubuntu 22.04安装配置FTP服务器的详细教程

    这篇文章主要介绍了在 Ubuntu 22.04 系统上安装和配置 VSFTPD ,还会涉及防火墙设置、SSL/TLS 设置,以及创建专门登录 FTP 服务器的账户,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2025-06-06
  • Windows Server 2012 R2、Server 2016、Win 10 IIS FTP 用户隔离+共享文件夹配置方法

    Windows Server 2012 R2、Server 2016、Win&n

    这篇文章主要介绍了Windows Server 2012 R2、Server 2016、Win 10 IIS FTP 用户隔离+共享文件夹配置,需要的朋友可以参考下
    2023-05-05
  • Centos7 安装步骤及注意事项

    Centos7 安装步骤及注意事项

    这篇文章主要介绍了Centos7 安装步骤及注意事项的相关资料,这里详细介绍安装步骤,把教程做一个分享,需要的朋友可以参考下
    2016-10-10
  • VsCode使用SFTP插件同步多个服务器的流程

    VsCode使用SFTP插件同步多个服务器的流程

    用户通过SFTP插件实现VSCode多服务器代码同步,替代PyCharm,配置sftp.json文件,支持差异同步、多服务器切换及忽略文件设置,提升效率,虽存在自动补全依赖本地环境的局限,但通过远程操作可规避,对vscode sftp同步相关知识感兴趣的朋友一起看看吧
    2025-08-08
  • Ftp无法连接到服务器的常见问题及解决方法分享

    Ftp无法连接到服务器的常见问题及解决方法分享

    这篇文章主要给大家介绍了Ftp无法连接到服务器的解决办法,以及常见的ftp错误问题及解决办法分享,具有一定的参考价值,有感兴趣的小伙伴可以参考阅读下
    2023-08-08
  • 5分钟快速搭建FTP服务器的图文教程

    5分钟快速搭建FTP服务器的图文教程

    FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件。接下来通过本文给大家分享5分钟快速搭建FTP服务器的图文教程,需要的朋友可以参考下
    2017-04-04
  • 什么是SFTP及SFTP和FTP之间的区别

    什么是SFTP及SFTP和FTP之间的区别

    SFTP是一种安全的文件传输协议,一种通过网络传输文件的安全方法,它确保使用私有和安全的数据流来安全地传输数据,本文给大家介绍什么是SFTP及SFTP和FTP之间的区别,感兴趣的朋友一起看看吧
    2024-01-01

最新评论