在管理CentOS服务器时,文件传输是一个不可或缺的环节,虽然如今有SFTP等更安全的替代方案,但FTP因其简单易用,在特定场景下依然有其存在价值,本文将详细介绍如何在CentOS系统上连接并使用FTP,涵盖从服务端配置到客户端连接的全过程。
准备工作:明确你的角色

在开始之前,你需要明确自己的角色:你是CentOS服务器的管理者,还是仅仅需要连接到一个已配置好FTP服务的服务器?
- 如果你是服务器管理者:你需要在服务器上安装并配置FTP服务端软件(如vsftpd),并确保防火墙和SELinux设置允许FTP连接。
- 如果你只是连接者:你只需要从服务器管理员那里获取以下三条关键信息:
- 服务器IP地址:
168.1.100或一个域名。 - 用户名:用于登录FTP的账号。
- 密码:对应用户名的密码。
- 端口:通常是21端口,但有时管理员会更改。
- 服务器IP地址:
第一部分:服务器端配置(针对管理者)
我们将以最常用的vsftpd(Very Secure FTP Daemon)为例进行配置。
安装vsftpd
使用yum或dnf命令进行安装:
sudo yum install vsftpd -y # 或者对于CentOS 8及以上 sudo dnf install vsftpd -y
启动并设置开机自启

安装完成后,启动服务并设置为开机自动启动:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
配置vsftpd
主要的配置文件是 /etc/vsftpd/vsftpd.conf,在修改前,建议先备份原文件。
使用文本编辑器(如vim或nano)打开配置文件:
sudo vim /etc/vsftpd/vsftpd.conf
你需要确保或修改以下几项关键配置,使其满足基本需求:
# 允许本地用户登录 local_enable=YES # 允许用户上传(写入)文件 write_enable=YES # 设置本地用户的根目录(默认是用户的家目录,通常不需要修改) # local_root=/var/ftp/pub
配置防火墙

CentOS的防火墙默认会阻止FTP连接,你需要放行FTP服务:
sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --reload
创建FTP用户
出于安全考虑,不建议直接使用root用户,我们可以创建一个专门用于FTP的普通用户。
- 创建用户(例如用户名为
ftpuser):sudo adduser ftpuser
- 为用户设置密码:
sudo passwd ftpuser
- 默认情况下,该用户的家目录(如
/home/ftpuser)就是其通过FTP登录后的根目录。
完成以上步骤后,你的CentOS服务器就已经准备好接受FTP连接了。
第二部分:客户端连接方法
无论你使用Windows、macOS还是Linux,都有多种方式可以连接到你的CentOS FTP服务器。
使用图形化FTP客户端(推荐新手)
FileZilla是一个免费且功能强大的图形化FTP客户端,支持多平台。
- 下载并安装FileZilla Client。
- 打开FileZilla,在顶部的连接栏中依次输入:
- 主机:你的服务器IP地址或域名。
- 用户名:你创建的
ftpuser。 - 密码:你为该用户设置的密码。
- 端口:21(如果未修改默认端口)。
- 点击“快速连接”按钮。
如果一切信息正确,你很快就会在右侧的“远程站点”窗口中看到服务器上的文件列表,你可以通过拖拽的方式在左右两个窗口(本地和远程)之间传输文件。
使用命令行工具
对于习惯使用命令行的用户,这同样是一个高效的选择。
在Linux/macOS上:使用
ftp命令。ftp 你的服务器IP地址
然后根据提示输入用户名和密码。
在Windows上:可以使用系统自带的
ftp命令。- 打开命令提示符(CMD)。
- 输入:
ftp 你的服务器IP地址
- 根据提示输入用户名和密码。
连接成功后,你会进入 ftp> 提示符,常用命令有:
ls:列出远程目录的文件。cd 目录名:切换远程目录。lcd 本地目录:切换本地目录。put 文件名:上传文件到服务器。get 文件名:从服务器下载文件。bye:断开连接并退出。
第三部分:连接故障排查
连接过程中可能会遇到一些问题,以下是常见的排查点:
- 连接超时:检查服务器IP地址是否正确;确认服务器网络是否通畅;检查客户端和服务器之间的网络是否可达。
- 认证失败:检查用户名和密码是否拼写正确,注意大小写。
- 无法列出目录:这通常与SELinux或目录权限有关,可以尝试暂时将SELinux设置为宽容模式以作测试:
sudo setenforce 0,但生产环境中建议配置正确的SELinux策略。 - 被动模式问题:如果FileZilla能连接但无法列出文件,通常是防火墙阻止了被动模式使用的端口范围,你需要在
vsftpd.conf中配置被动的端口范围,并在防火墙中开放这些端口。
关于安全性的个人观点
必须坦诚地说明,标准的FTP协议(端口21)在传输过程中是不加密的,包括你的用户名、密码和文件内容都以明文形式在网络中传输,这存在相当大的安全风险,对于生产环境或任何涉及敏感数据的传输,我强烈建议使用其安全增强版本——SFTP(SSH File Transfer Protocol),SFTP通过SSH协议加密所有数据,无需额外配置服务端(只要开启了SSH服务即可使用),在安全性和便捷性上都远超FTP,在条件允许的情况下,将SFTP作为首选方案,是对你数据和服务器安全负责任的表现。
希望这份详尽的指南能够帮助你顺利完成FTP的连接与配置工作。
