Ubuntu FTP Server如何实现文件传输
小樊
43
2025-12-27 01:06:15
Ubuntu FTP Server 实现文件传输
一 安装与基础配置
- 安装 vsftpd(Very Secure FTP Daemon):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 允许匿名,注意风险)
- local_umask=022(上传文件默认权限掩码)
- 创建专用 FTP 用户(可选):sudo adduser ftpuser,按需设置家目录与权限
- 使配置生效:sudo systemctl restart vsftpd;建议同时启用开机自启:sudo systemctl enable vsftpd
二 防火墙与端口开放
- 主动模式(PORT):放行控制通道与数据通道端口
- sudo ufw allow 21/tcp
- sudo ufw allow 20/tcp
- 被动模式(PASV,推荐穿越 NAT/云厂商安全组):放行控制通道与被动端口区间
- sudo ufw allow 21/tcp
- sudo ufw allow 40000:50000/tcp(示例区间,需在配置中同步设置 pasv_min_port/pasv_max_port)
- 启用防火墙:sudo ufw enable
- 如使用 FTPS,还需放行:sudo ufw allow 990/tcp
- 云服务器请在安全组对应开放上述端口
三 客户端连接与传输
- 图形化客户端(FileZilla)
- 主机:服务器 IP
- 端口:21
- 协议:FTP - 明文(或 FTP over SSL/TLS 若启用 FTPS)
- 登录类型:正常,输入用户名与密码
- 连接后即可在左右面板间拖拽完成上传/下载
- 命令行示例(ftp)
- 连接:ftp <服务器IP>
- 登录后常用命令:ls、cd、put <本地文件> <远程文件>、get <远程文件> <本地文件>、bye
- 命令行示例(lftp,支持断点续传与后台)
- 安装:sudo apt install lftp
- 连接与传输:lftp ftp://用户名:密码@服务器IP;get/put/mirror 等
四 安全与常见问题
- 安全建议
- FTP 明文传输,建议启用 FTPS(配置 ssl_enable=YES,指定证书)或直接使用 SFTP/SSH(系统自带 OpenSSH,通常无需额外 FTP 服务)
- 限制用户目录:chroot_local_user=YES;若需可写,配置 allow_writeable_chroot=YES(或采用虚拟用户/专用目录方案)
- 精细化访问控制:userlist_enable=YES、userlist_deny=NO 与 /etc/vsftpd.userlist 白名单
- 常见故障排查
- 无法列出目录或传输失败:检查是否为 被动模式 且已放行被动端口区间(如 40000:50000/tcp),并在客户端设置为被动模式
- 登录被拒绝:核对本地/匿名开关、用户是否存在与密码是否正确、PAM/家目录权限
- 上传失败:确认 write_enable=YES,且用户对目标目录具备写权限
- 云环境不通:除系统防火墙外,还需在 云安全组 放行 21/tcp 与被动端口区间