CentOS 7搭建自己的公网FTP服务器完整教程,一看就懂!

分类: Linux 阅读:11 日期:2026年01月09日

操作环境
Vsftpd(非常安全的文件传输协议守护进程)是多种Linux系统常用的FTP服务程序。以下操作系统基于衡天云服务器,使用CentOS 7.6 64位系统,逐步指导安装并配置vsftpd来建立FTP站点。

环境与版本说明
本次搭建FTP所涉主要软件版本如下:

  • Linux发行版:CentOS 7.6系统,博主薅的1核1G香港服务器,不用备案,12块一个月
  • Vsftpd版本信息:CentOS 7.6:Vsftpd 3.0.2

CentOS 7.6 配置步骤

1. 连接至云服务器
可通过SSH工具、云控制台VNC或其它远程连接方式登录到Linux主机。

2. 安装Vsftpd服务
在终端中执行以下指令,安装vsftpd:

yum install -y vsftpd

设置vsftpd随系统自动启动:

systemctl enable vsftpd

启动FTP服务:

systemctl start vsftpd

检查服务是否正常运行:

netstat -antup | grep ftp

当出现ftp相关监听端口信息时,表示服务已启动。
⚠️ 注意:此时为匿名访问模式,允许无需账号登录,但该方式无法上传或修改文件。

3. 调整Vsftpd配置
创建用于FTP登录的系统用户(示例用户名为ftpuser):

useradd ftpuser

为用户设置密码:

passwd ftpuser

(输入密码时界面无回显,输入完毕后按回车确认)

提示:为提高安全性,密码建议包含12位以上字符,混合大小写字母、数字及特殊符号。

建立FTP专用目录并调整权限:

mkdir /var/ftp/test
chown -R ftpuser:ftpuser /var/ftp/test

编辑vsftpd主配置文件:

vim /etc/vsftpd/vsftpd.conf

按下 i 进入编辑模式,根据实际需要调整以下配置项(此处以被动模式为例):

anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
#listen_ipv6=YES
local_root=/var/ftp/test
allow_writeable_chroot=YES
pasv_enable=YES
pasv_address=<您的服务器公网IP>
pasv_min_port=40000
pasv_max_port=45000

完成后按 Esc,输入 :wq 保存并退出。

若需设定例外用户(不限制于主目录),可创建chroot_list文件:

vim /etc/vsftpd/chroot_list

按行添加用户名,保存退出;如无需例外用户,可跳过此步骤。

重新启动vsftpd以使配置生效:

systemctl restart vsftpd

4. 配置安全组规则
根据所选FTP模式,在云服务器安全组中开放相应端口:

  • 主动模式:开放21端口
  • 被动模式:开放21端口及配置文件中设定的被动端口范围(示例为40000-45000)

5. 测试FTP连接
可使用FileZilla、浏览器或命令行等工具进行测试。以下以FileZilla客户端为例:

  1. 在本地电脑下载安装FileZilla。
  2. 打开软件,进入站点管理器(文件 → 站点管理器)。
  3. 新建站点,输入以下信息:协议:FTP主机:服务器公网IP端口:21登录类型:正常用户:ftpuser密码:所设密码
  4. 在“传输设置”中选择被动模式。
  5. 点击“连接”,成功后可进行文件传输操作。

常见问题处理

1. 文件上传失败(提示“553 Could not create file”)

  • 检查磁盘空间:df -h
  • 确认FTP目录是否有写入权限:ls -l /目标目录
  • 若无写权限,执行:chmod +w /目标目录

2. 连接后执行命令报错(如“500 Illegal PORT command”)

  • 退出当前连接,改用被动模式登录:ftp -p ftpuser@服务器IP
  • 或在ftp命令提示符下输入 passive 切换为被动模式。

3. 目录列表失败(提示“550 Permission denied”)
通常因被动模式未正确开启导致。请编辑 /etc/vsftpd/vsftpd.conf,确保包含:

pasv_enable=YES

保存后重启服务:systemctl restart vsftpd

附:主动模式配置要点

若需启用主动模式,请在配置文件中注意以下关键项,其余配置可保持与被动模式一致:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
#listen_ipv6=YES
allow_writeable_chroot=YES
local_root=/var/ftp/test
pasv_enable=NO

配置完成后重启vsftpd服务即可生效。


  END