广州云服务器怎么添加21端口,云服务器21端口被拦截怎么解决
- 虚拟主机
- 2026-07-09
- 7
在云服务器上开放 21 端口(FTP 服务)是一个涉及操作系统配置、云服务商安全组以及 FTP 软件配置的多步骤过程,由于 FTP 协议的特殊性(同时使用控制端口和数据端口),仅开放 21 端口往往无法实现正常的文件传输,因此需要特别注意被动模式(Passive Mode)下的端口范围管理,以下以目前主流的 Linux 系统(如 CentOS、Ubuntu)为例,详细说明操作步骤。
第一步:配置云服务商安全组
云服务器通常位于虚拟私有云(VPC)中,云服务商(如阿里云、西西安全、华为云等)默认通过“安全组”或“防火墙”机制隔离网络流量,即使服务器内部开启了 21 端口,如果安全组未放行,外部依然无法访问。
- 登录云服务商控制台,找到对应的云服务器实例。
- 进入“安全组”或“防火墙”配置页面。
- 添加入方向规则,具体设置如下表所示:
| 协议类型 | 端口范围 | 授权对象 | 策略 | 说明 |
|---|---|---|---|---|
| TCP | 21 | 0.0.0/0 | 允许 | 用于 FTP 控制连接 |
| TCP | 30000-31000 | 0.0.0/0 | 允许 | 关键
:用于 FTP 被动模式数据连接(需与服务器配置一致) |
注意:端口范围 30000-31000 仅为示例,具体范围需在服务器内部 FTP 软件配置中确定,两者必须保持一致。
第二步:安装并配置 FTP 服务软件
在 Linux 系统中,常用的 FTP 服务软件有 vsftpd(推荐,安全性较好)和 ProFTPD,这里以 vsftpd 为例进行说明。
安装 vsftpd
根据操作系统不同,执行相应的安装命令:
- CentOS/RHEL: yum install vsftpd -y systemctl start vsftpd systemctl enable vsftpd
- Ubuntu/Debian: apt-get install vsftpd -y systemctl start vsftpd systemctl enable vsftpd
修改 vsftpd 配置文件
编辑 /etc/vsftpd/vsftpd.conf 文件,确保以下关键参数配置正确:
# 允许本地用户登录 local_enable=YES # 允许写入权限 write_enable=YES # 启用被动模式(必须开启) pasv_enable=YES # 设置被动模式的数据端口范围(必须与云安全组中开放的端口一致) pasv_min_port=30000 pasv_max_port=31000 # 设置被动模式下的服务器 IP(重要:填写云服务器的公网 IP) pasv_address=YOUR_PUBLIC_IP # 限制用户在其主目录内(安全建议) chroot_local_user=YES allow_writeable_chroot=YES
注意:pasv_address 必须填写云服务器的公网 IP 地址,否则客户端在建立数据连接时会尝试连接内网 IP,导致连接超时。
重启服务

修改配置后,重启 vsftpd 服务使配置生效:
systemctl restart vsftpd
第三步:配置服务器系统防火墙(iptables/firewalld)
如果云服务器内部开启了防火墙(如 firewalld 或 iptables),还需要在系统层面放行端口。
如果使用 firewalld(CentOS 7+ 默认):
# 开放 21 端口 firewall-cmd --zone=public --add-port=21/tcp --permanent # 开放被动模式端口范围(示例 30000-31000) firewall-cmd --zone=public --add-port=30000-31000/tcp --permanent # 重载防火墙配置 firewall-cmd --reload
如果使用 iptables:
# 开放 21 端口 iptables -A INPUT -p tcp --dport 21 -j ACCEPT # 开放被动模式端口范围 iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT # 保存规则(视系统而定) service iptables save
第四步:创建 FTP 用户并测试
-
创建用户:
注意:-s /sbin/nologin 表示该用户不能登录 SSH,只能用于 FTP 登录。
-
设置目录权限:
chown -R ftpuser:ftpuser /var/www/html
-
测试连接:
使用 FileZilla 或其他 FTP 客户端,输入服务器公网 IP、用户名 ftpuser 和密码,选择 FTP 明文 或 显式 FTP over TLS(推荐显式加密)进行连接,如果连接成功并能上传下载文件,则配置完成。
- 启用 TLS/SSL 加密:在 vsftpd.conf 中启用 ssl_enable=YES,并配置证书,虽然加密会增加 CPU 开销,但能防止数据被窃听,且现代服务器性能足以应对。
- 改用 SFTP:如果服务器支持 SSH,强烈建议使用 SFTP(SSH File Transfer Protocol),SFTP 基于 SSH 协议(默认 22 端口),只需开放 22 端口即可,无需额外配置数据端口,且加密传输,速度更快、更稳定、更安全。
- 调整缓冲区大小:在 FTP 客户端设置中适当增加传输缓冲区大小,可以提高大文件传输效率。
相关问题与解答
Q1: 为什么开放了 21 端口,FTP 客户端连接时提示“连接超时”或“无法建立数据连接”?
A: 这通常是因为 FTP 的被动模式(Passive Mode)数据端口未正确配置,FTP 协议中,21 端口仅用于发送命令(控制连接),而实际的文件上传/下载(数据连接)会使用随机的高端口,如果服务器配置了被动模式端口范围(如 30000-31000),但云安全组或系统防火墙没有开放这些端口,就会导致数据连接失败,请检查云控制台的安全组规则以及服务器内部的 vsftpd.conf 中的 pasv_min_port 和 pasv_max_port 设置,确保两者一致且均已放行。
Q2: 使用 FTP 传输文件时速度非常慢,甚至经常中断,该如何优化?
A: FTP 协议本身效率较低,且明文传输存在安全隐患,建议采取以下优化措施:
