如何用Ubuntu FTP Server进行文件共享
导读:在 Ubuntu 上使用 vsftpd 搭建 FTP 文件共享 一 安装与基础配置 安装 vsftpd(Very Secure FTP Daemon) 执行:sudo apt update && sudo apt ins...
在 Ubuntu 上使用 vsftpd 搭建 FTP 文件共享
一 安装与基础配置
- 安装 vsftpd(Very Secure FTP Daemon)
- 执行:
sudo apt update & & sudo apt install vsftpd -y
- 执行:
- 备份并编辑配置文件
- 执行:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak - 编辑:
sudo nano /etc/vsftpd.conf
- 执行:
- 常用基础配置(按你的需求二选一或组合)
- 仅本地用户、可写、禁匿名(适合团队内网)
- 建议值:
anonymous_enable=NOlocal_enable=YESwrite_enable=YESchroot_local_user=YESallow_writeable_chroot=YES(如你的 vsftpd 版本较老不支持该指令,可改用虚拟用户或放宽权限策略)
- 建议值:
- 只读匿名共享(适合向外部快速分发构建产物)
- 建议值:
anonymous_enable=YESlocal_enable=NOwrite_enable=NOanon_root=/home/cicd/workspace/build-images/anon_download_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOanon_other_write_enable=NO
- 建议值:
- 仅本地用户、可写、禁匿名(适合团队内网)
- 保存后重启服务
- 执行:
sudo systemctl restart vsftpd & & sudo systemctl enable vsftpd
- 执行:
- 说明
- FTP 默认不加密;如需加密,可启用 FTPS(990/tcp) 或直接使用 SFTP(基于 SSH)。
二 用户与共享目录
- 创建系统用户与共享目录(本地用户模式)
- 执行:
sudo adduser ftpusersudo mkdir -p /home/ftpuser/sharedsudo chown -R ftpuser:ftpuser /home/ftpuser/shared
- 执行:
- 将用户根目录指向共享目录(可选)
- 在
/etc/vsftpd.conf增加:local_root=/home/ftpuser/shared
- 在
- 只读匿名共享的目录与权限(匿名模式)
- 建议目录:
/home/cicd/workspace/build-images/ - 建议权限:
- 目录:
chmod 755,文件:chmod 644 - 确保匿名访问身份(常见为 nobody)对该目录具备读与执行权限(可将目录组设为 ftpusers 并把 nobody 加入该组,再设置组权限为 rx)。
- 目录:
- 建议目录:
三 防火墙与被动模式
- UFW 放通端口
- 控制连接:
sudo ufw allow 21/tcp - 被动模式端口范围(示例开放 10000–10100):
sudo ufw allow 10000:10100/tcp - 如需 FTPS:
sudo ufw allow 990/tcp - 启用防火墙:
sudo ufw enable
- 控制连接:
- vsftpd 被动模式配置(建议固定端口范围)
- 在
/etc/vsftpd.conf增加:pasv_enable=YESpasv_min_port=10000pasv_max_port=10100
- 在
- 说明
- 主动模式需要服务器开放 20/tcp 数据端口;在 NAT/云环境中更推荐使用被动模式并固定端口范围,便于防火墙放行。
四 客户端连接与测试
- 命令行测试
- 本地用户:
ftp < 服务器IP>,用户名 ftpuser,输入密码后执行ls、get、put测试下载/上传 - 匿名用户:
ftp < 服务器IP>,用户名 anonymous,密码留空或任意,执行ls、get测试只读下载
- 本地用户:
- 图形化客户端
- 使用 FileZilla,协议选 FTP(或 FTPS),输入主机、端口 21、用户名与密码连接并测试传输
- 常见问题排查
- 服务状态:
sudo systemctl status vsftpd - 实时日志:
sudo tail -f /var/log/vsftpd.log - 连接失败优先检查:防火墙端口、被动端口范围、目录权限、用户根目录与 chroot 设置。
- 服务状态:
五 安全与替代方案
- 加固建议
- 禁用匿名(内网可信环境除外)、启用 chroot 隔离、限制并发:
max_clients、max_per_ip - 启用 SSL/TLS(990/tcp) 或直接使用 SFTP(基于 SSH,系统通常已内置,更安全且易穿透 NAT/防火墙)
- 禁用匿名(内网可信环境除外)、启用 chroot 隔离、限制并发:
- 何时考虑替代协议
- 跨平台易用与权限控制:Samba(Windows/Unix 文件共享)
- Linux/Unix 间高性能:NFS
- 简单安全直连:SSHFS
- 提示
- 若需对外网开放,务必使用 FTPS/SFTP 并限制可写范围与速率,定期审计日志与用户权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用Ubuntu FTP Server进行文件共享
本文地址: https://pptw.com/jishu/773628.html
