Debian FTP Server 端口设置指南
在基于 Debian 的 FTP 服务(以 vsftpd 为主)中,端口分为控制连接、数据连接与加密端口三类。下面给出常用端口、配置项与防火墙放行方法,便于快速部署与排障。
端口类型与用途
| 端口或范围 |
用途 |
典型配置项或说明 |
| 21/tcp |
控制连接(命令与响应) |
vsftpd 默认监听 21;客户端登录、发送命令均走此端口 |
| 20/tcp |
主动模式数据连接(服务器→客户端) |
主动模式由服务器发起数据连接,需放通 20/tcp |
| pasv_min_port–pasv_max_port(自定义范围) |
被动模式数据连接(客户端→服务器) |
在 vsftpd.conf 中设置,如 40000–45000 或 49152–65535 |
| 990/tcp |
显式 FTPS(FTP over SSL/TLS)控制通道 |
启用 SSL/TLS 时常用端口 990 |
| 自定义端口(如 2121/tcp) |
非标准控制端口 |
需修改 vsftpd 的监听端口并重定向防火墙/路由器 |
说明:主动模式依赖 20/tcp 发起数据通道;被动模式由客户端连接服务器侧的“被动端口范围”。若使用显式 FTPS,通常使用 990/tcp 作为控制通道端口。
vsftpd 配置要点
- 配置文件路径:/etc/vsftpd.conf。修改后需重启服务生效(如:sudo systemctl restart vsftpd)。
- 被动端口范围示例:
- pasv_enable=YES
- pasv_min_port=40000
- pasv_max_port=45000
- 主动模式数据端口:
- connect_from_port_20=YES(由服务器从 20/tcp 发起数据连接)
- 显式 FTPS(推荐):
- ssl_enable=YES
- rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
- rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
- 客户端使用“FTP over TLS/显式 FTPS”,默认控制端口 990/tcp
- 非标准控制端口(示例改为 2121/tcp):
- 在 vsftpd.conf 中设置 listen_port=2121
- 防火墙/路由器需将外部 2121/tcp 转发到服务器 21/tcp(见下文)
防火墙放行示例(UFW)
- 开放控制与被动端口范围(示例范围 40000–45000):
- sudo ufw allow 21/tcp
- sudo ufw allow 40000:45000/tcp
- 启用显式 FTPS 时:
- 主动模式数据端口(如启用主动模式):
- 非标准端口(示例 2121/tcp):
- 使规则生效并验证:
- sudo ufw enable
- sudo ufw status(或 sudo ufw status numbered)
NAT 端口转发示例(路由器或本机 iptables)
- 将公网 2121/tcp 转发到内网 192.168.1.100:21(示例):
- sudo iptables -t nat -A PREROUTING -p tcp --dport 2121 -j DNAT --to-destination 192.168.1.100:21
- sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.100 --dport 21 -j MASQUERADE
- 保存规则(Debian 常用):sudo netfilter-persistent save && sudo netfilter-persistent reload