Ubuntu FTPServer 远程访问实操指南
一 安装与基础配置
- 安装 vsftpd:sudo apt update && sudo apt install vsftpd
- 备份并编辑配置:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak;sudo nano /etc/vsftpd.conf
- 常用基础项(按需调整):
- 本地用户登录:local_enable=YES
- 写权限:write_enable=YES
- 匿名访问:anonymous_enable=NO(更安全,若需可设为 YES)
- 禁锢用户到主目录:chroot_local_user=YES;允许可写:allow_writeable_chroot=YES
- 创建专用 FTP 用户:sudo adduser ftpuser;按需设置密码与家目录权限(如:sudo chown ftpuser:ftpuser /home/ftpuser;sudo chmod 755 /home/ftpuser)
- 使配置生效:sudo systemctl restart vsftpd;建议设为开机自启:sudo systemctl enable vsftpd
二 启用加密传输 FTPS
- 生成自签名证书(示例有效期 365 天):
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.crt
- 在 vsftpd.conf 中启用 SSL/TLS:
- ssl_enable=YES
- rsa_cert_file=/etc/ssl/private/vsftpd.crt
- rsa_private_key_file=/etc/ssl/private/vsftpd.key
- 重启服务:sudo systemctl restart vsftpd
- 客户端连接建议:使用显式 FTPS(FTP over SSL/TLS),端口 990;若使用隐式 FTPS,端口 990 并在客户端启用隐式模式
三 防火墙与被动模式端口
- UFW 放行(示例范围 40000–50000,可按需缩小):
- 控制通道:sudo ufw allow 21/tcp
- 数据通道(主动模式):sudo ufw allow 20/tcp
- 被动模式端口段:sudo ufw allow 40000:50000/tcp
- 启用防火墙:sudo ufw enable
- vsftpd 被动模式配置(与防火墙端口段保持一致):
- pasv_enable=YES
- pasv_min_port=40000
- pasv_max_port=50000
- 云服务器安全组/NACL:放行 21/TCP、990/TCP(若启用 FTPS)以及上述被动端口段
四 客户端远程连接步骤
- 显式 FTPS(推荐):
- 主机:服务器公网 IP 或域名
- 端口:990
- 协议:FTP – Explicit over TLS
- 登录:输入 ftpuser 与密码
- 普通 FTP(明文,不推荐公网使用):
- 命令行测试:ftp your_server_ip(明文);或 lftp -u ftpuser -p 990 your_server_ip(FTPS,需客户端支持)
- 图形化工具:FileZilla 选择相应协议与端口即可连接
五 安全与排错要点
- 安全建议:
- 禁用匿名:anonymous_enable=NO;必要时仅在内网开放
- 限制用户目录:chroot_local_user=YES;若需写入,使用 allow_writeable_chroot=YES 或改为不可写并配置专用可写目录
- 日志与审计:xferlog_enable=YES、xferlog_std_format=YES
- 更安全的替代:SFTP(基于 SSH,系统自带 OpenSSH 即可,默认启用)
- 常见排错:
- 无法登录:检查用户是否存在、密码是否正确、家目录权限与 chroot 设置
- 数据连接失败:核对被动端口段与防火墙/安全组是否一致,云厂商安全组常漏放被动端口
- 证书不受信任:自签名证书首次连接需手动确认;生产环境建议使用受信任 CA 签发证书