在开始之前,非常重要的一点是:传统的 FTP 协议(端口 21)是不加密的,会在网络上明文传输您的用户名、密码和数据,存在严重的安全风险。 对于云主机,我们强烈推荐使用其加密替代方案:SFTP。
SFTP(SSH File Transfer Protocol)是通过 SSH 协议加密传输文件的,它非常安全,并且因为云主机默认都会开启 SSH 服务(端口 22),所以通常无需额外安装和配置复杂的 FTP 服务。
我将为您提供两种方案,并强烈推荐方案一。
方案一:使用 SFTP(推荐,更安全、更简单)
SFTP 直接使用云主机的 SSH 账户进行登录和认证,无需额外安装服务器端软件。
优点:
安全所有传输都经过加密。
方便无需在云主机上安装任何新软件(只要能用 SSH 登录,就能用 SFTP)。
无需额外开防火墙端口直接使用 SSH 的 22 端口。
使用步骤:
1、获取连接信息:
主机地址 (Host)你的云主机的公网 IP 地址。
用户名 (Username)你的 SSH 登录用户名(如root
,ubuntu
,ec2-user
等)。
密码 (Password)对应用户的密码,如果使用密钥登录,需要在 SFTP 客户端中指定密钥文件。
端口 (Port)22
(默认 SSH 端口)。
2、使用 SFTP 客户端连接:
你可以使用任何支持 SFTP 的客户端软件,例如
FileZilla (跨平台,免费且强大)在站点管理器中选择协议为SFTP - SSH File Transfer Protocol。
WinSCP (Windows)默认协议就是 SFTP。
Termius / Cyberduck (Mac)都支持 SFTP。
系统内置macOS 和 Linux 用户可以直接在终端使用sftp
命令。
3、连接示例(以 FileZilla 为例):
1. 打开 FileZilla。
2. 点击左上角“文件” -> “站点管理器”。
3. 点击“新站点”,输入一个名称。
4. 在右侧选项卡中填写:
协议SFTP - SSH File Transfer Protocol
主机你的云主机IP 地址
端口22
登录类型正常 或密钥文件
用户你的SSH 用户名
密码你的SSH 密码(如果选择“密钥文件”,则这里填密钥文件的密码)
5. 点击“连接”。
连接成功后,左侧是你的本地电脑文件,右侧就是云主机上的文件系统,你可以直接拖拽文件进行上传和下载。
方案二:安装和配置传统的 FTP 服务(不推荐,仅作了解)
如果你有特殊原因必须使用传统 FTP,以下是基本步骤(以 Linux 系统,安装流行的vsftpd
为例)。
警告:此方式安全性较低,请谨慎使用。
1、安装 vsftpd
通过 SSH 连接到你的云主机,执行安装命令。
Ubuntu/Debian:
sudo apt update sudo apt install vsftpd
CentOS/RHEL/Fedora:
sudo yum install vsftpd # 或者 sudo dnf install vsftpd
2、配置 vsftpd
编辑配置文件/etc/vsftpd.conf
。
sudo nano /etc/vsftpd.conf
找到并修改以下关键配置(确保它们没有被注释掉#
):
# 禁止匿名登录(重要!) anonymous_enable=NO # 允许本地用户登录 local_enable=YES # 允许用户上传文件 write_enable=YES # 将用户限制在其家目录中(重要 for security) chroot_local_user=YES
保存并退出。
3、设置防火墙
开放 FTP 所需的端口(通常是 21 和一段被动模式端口范围)。
* 如果使用ufw
(Ubuntu):
sudo ufw allow 21/tcp sudo ufw allow 30000:31000/tcp # 开放一个被动端口范围 sudo ufw reload
* 如果使用firewalld
(CentOS):
sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp sudo firewall-cmd --reload
4、配置云服务器安全组
这是非常关键的一步!登录你的云服务商控制台(如阿里云、腾讯云、AWS等),找到你的云主机实例所在的安全组。
入方向规则添加两条规则。
1. 允许TCP:21 端口。
2. 允许你上面设置的被动端口范围(TCP:30000-31000)。
5、重启 vsftpd 服务
sudo systemctl restart vsftpd sudo systemctl enable vsftpd # 设置开机自启
6、创建 FTP 用户(可选)
不建议直接使用 root 用户,可以创建一个新用户。
sudo adduser ftpuser # 为用户设置密码 sudo passwd ftpuser
你就可以使用 FTP 客户端(如 FileZilla),选择FTP 协议(而不是 SFTP),输入 IP、用户名(ftpuser
)、密码和端口 21 进行连接了。
特性 | SFTP (方案一) | FTP (方案二) |
安全性 | 高 (加密传输) | 低 (明文传输) |
便利性 | 高 (无需安装,用SSH账号) | 低 (需安装配置服务器和防火墙) |
端口 | 22 (通常已开放) | 21 + 被动端口范围 (需手动开放) |
推荐度 | ⭐️⭐️⭐️⭐️⭐️ (强烈推荐) | ⭐️ (不推荐,除非有绝对必要) |
给你的最终建议:
请毫不犹豫地选择【方案一:使用 SFTP】。
它更安全、更简单,是管理云主机文件的现代标准和最佳实践,除非你维护的是一个非常古老、只支持传统 FTP 的系统,否则没有理由选择不安全且复杂的方案二。
文章摘自:https://idc.huochengrm.cn/zj/14087.html
评论
留鸿波
回复云主机使用FTP需要先配置FTP服务,包括创建FTP用户、设置权限等,通过FTP客户端软件连接到云主机FTP服务,输入用户名和密码即可进行文件的上传和下载操作,确保安全,建议使用SSL加密连接。