FTP(文件传输协议)是一种用于在网络上进行文件传输的标准协议。尽管现在有更多现代替代方案(如SFTP),但FTP因其简单、兼容性广,在很多场景下,如网站后台文件管理、企业内部文件共享等,依然非常实用。
本文将手把手教您如何在Linux系统的云服务器上,使用最流行的 vsftpd(Very Secure FTP Daemon)软件来搭建一个安全可靠的FTP服务器。我们将以恒讯科技的云服务器为例,但步骤适用于任何品牌的云服务器。
在开始之前,请确保您拥有:
一台云服务器:您需要一台已安装Linux操作系统(如CentOS、Ubuntu)的云服务器。例如,您可以从恒讯科技官网购买一台入门级云服务器,通常选择CentOS 7.x或Ubuntu 20.04 LTS等稳定版本。
SSH登录权限:您能够使用SSH密钥或密码远程登录到您的服务器。
云平台安全组配置权限:这是关键一步!云服务器通常通过“安全组”来充当防火墙。您需要登录到恒讯科技的管理控制台,找到您云服务器的安全组规则。
使用SSH客户端(如PuTTY、Terminal)连接到您的云服务器。
对于CentOS/RHEL系统:
bash
# 更新yum包管理器
sudo yum update -y
# 安装vsftpd
sudo yum install vsftpd -y
对于Ubuntu/Debian系统:
bash
# 更新apt包管理器
sudo apt-get update
# 安装vsftpd
sudo apt-get install vsftpd -y
安装完成后,启动vsftpd服务并设置为开机自启:
bash
# 启动服务
sudo systemctl start vsftpd
# 设置开机自启
sudo systemctl enable vsftpd
vsftpd的主配置文件是 /etc/vsftpd/vsftpd.conf。在修改之前,建议先备份原文件。
bash
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
然后使用文本编辑器(如vim或nano)编辑配置文件:
bash
sudo vim /etc/vsftpd/vsftpd.conf
找到并修改以下关键参数,如果行首有#注释,请将其删除:
ini
# 禁止匿名用户登录(提高安全性)
anonymous_enable=NO
# 允许本地系统用户登录
local_enable=YES
# 允许用户有写权限(上传、删除文件)
write_enable=YES
# 设置本地用户创建文件的默认权限
local_umask=022
# 禁止用户离开其主目录(将其禁锢在自己的目录中,非常重要!)
chroot_local_user=YES
allow_writeable_chroot=YES
# 被动模式配置(PASV),这对云服务器至关重要!
# 请将下面的 [您的云服务器公网IP] 替换为您云服务器的实际公网IP地址
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=[您的云服务器公网IP] # 例如 pasv_address=123.123.123.123
被动模式(PASV)解释:由于FTP客户端与服务器之间存在防火墙(云安全组),主动模式常常会失败。被动模式要求服务器开放一个端口范围供客户端连接,配置此项是成功连接的关键。
保存并退出编辑器。
这是让外网能够访问到您FTP服务的关键。登录到恒讯科技的管理控制台:
找到您的云服务器实例。
进入其关联的安全组规则配置页面。
确保已开放以下端口:
端口21(FTP命令端口):这是必须的。
端口30000-31000(FTP被动模式端口范围):这个范围必须与配置文件中 pasv_min_port 和 pasv_max_port 一致。
在恒讯科技的安全组规则中,添加入站规则如下:
协议:TCP,端口:21,源:0.0.0.0/0(或您指定的IP段以增强安全)
协议:TCP,端口:30000-31000,源:0.0.0.0/0(或您指定的IP段)
出于安全考虑,不建议直接使用root用户进行FTP登录。我们创建一个新用户,例如 ftpuser。
bash
# 创建用户,并指定其主目录,例如 /home/ftpuser
sudo useradd -d /home/ftpuser -m ftpuser
# 为该用户设置密码
sudo passwd ftpuser
系统会提示您输入两次新密码,请牢记这个密码,它将用于FTP登录。
默认情况下,由于我们开启了 chroot_local_user=YES,该用户将被限制在自己的 /home/ftpuser 目录下,无法访问系统的其他部分。
让所有配置生效:
bash
sudo systemctl restart vsftpd
现在,您可以使用FTP客户端(如FileZilla、WinSCP)进行测试了。
主机/地址:您的云服务器公网IP
用户名:ftpuser
密码:您设置的密码
端口:21
在FileZilla中,建议将“传输模式”设置为“被动(PASV)”。
连接失败? 首先检查安全组规则是否已正确配置,并确保 pasv_address 填写了正确的公网IP。
权限错误? 确保FTP用户对其主目录有读写权限(chmod 755 /home/ftpuser)。
更安全的选择:SFTP 如果您仅需要通过SSH管理文件,实际上无需搭建FTP。因为SSH服务器默认就提供了SFTP功能,它更安全(加密传输),且无需额外配置防火墙规则。您可以直接使用SSH用户凭据通过FileZilla等客户端连接(协议选择SFTP)。
SSL/TLS加密:对于更高安全要求,可以考虑配置vsftpd使用FTPS,对传输过程进行加密。
通过以上六个步骤,您已经在恒讯科技的云服务器上成功搭建了一个安全可用的FTP服务器。整个过程的核心在于:
正确安装和配置vsftpd,特别是被动模式参数。
在云平台安全组中开放正确的端口范围。
希望这篇教程能帮助您轻松实现文件传输的需求。恒讯科技的云服务器性能稳定、网络优质,为这类应用的稳定运行提供了坚实的基础。如果您在操作中遇到任何问题,可以随时参考恒讯科技官方文档或联系技术支持获取帮助。
Copyright © 2013-2020. All Rights Reserved. 恒讯科技 深圳市恒讯科技有限公司 粤ICP备20052954号 IDC证:B1-20230800.移动站


