Ubuntu vsftpd如何上传文件
导读:Ubuntu 上使用 vsftpd 上传文件的完整步骤 一 安装与基础配置 安装 vsftpd 执行:sudo apt update && sudo apt install vsftpd 备份并编辑配置文件 执行:...
Ubuntu 上使用 vsftpd 上传文件的完整步骤
一 安装与基础配置
- 安装 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(允许写操作,包含上传)
- 确保包含或调整为:
- 保存并重启服务
- 执行:
sudo systemctl restart vsftpd & & sudo systemctl enable vsftpd
- 执行:
- 说明
- vsftpd 默认使用 21/TCP 控制连接;若使用被动模式(PASV),还需开放数据端口区间(见下文防火墙)。
二 本地用户上传步骤与示例
- 准备用户与目录
- 新建用户并设置家目录(示例用户名为 ftpuser):
sudo adduser ftpuser
- 为该用户准备可写目录(示例:/home/ftpuser/upload):
sudo mkdir -p /home/ftpuser/uploadsudo chown ftpuser:ftpuser /home/ftpuser/uploadsudo chmod 755 /home/ftpuser/upload
- 新建用户并设置家目录(示例用户名为 ftpuser):
- 登录与上传
- 方式 A(命令行 ftp)
- 连接:
ftp 服务器IP - 登录:输入用户名 ftpuser 与密码
- 切换远端目录:
cd /home/ftpuser/upload - 切换本地目录:
lcd /path/to/local/dir(务必先切到含待上传文件的本地目录) - 上传:
put 文件名 - 退出:
bye
- 连接:
- 方式 B(图形客户端 FileZilla)
- 主机:服务器IP;端口:21
- 协议:FTP - 明文(或选择 FTP over SSL/TLS 若已配置)
- 登录类型:正常,输入 ftpuser 与密码
- 在本地文件区选中文件,拖拽到远端 /home/ftpuser/upload 完成上传
- 方式 A(命令行 ftp)
- 常见提示
- 上传失败且提示“本地文件不存在”,多为未用
lcd切到文件所在目录;或直接使用绝对路径:put /abs/path/file。
- 上传失败且提示“本地文件不存在”,多为未用
三 匿名用户上传配置(可选)
- 创建匿名根目录与可写子目录
- 示例:
sudo mkdir -p /var/ftp/upload - 安全做法:根目录只读,仅对上传目录授予写权限
sudo chown ftp:ftp /var/ftp/uploadsudo chmod 755 /var/ftp# 根目录不可写sudo chmod 777 /var/ftp/upload# 仅上传目录可写(可按需收紧)
- 示例:
- 配置 vsftpd 允许匿名写入
- 在
/etc/vsftpd.conf中确保:anonymous_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YES- 可选:
anon_root=/var/ftp(将匿名根目录指向 /var/ftp)
- 在
- 重启服务
sudo systemctl restart vsftpd
- 客户端匿名登录与上传
- 登录名:anonymous,密码直接回车
- 进入上传目录:
cd upload - 上传:
put 文件名
- 安全建议
- 匿名上传仅开放必要目录,避免使用 777 过宽权限;生产环境谨慎启用匿名写入。
四 防火墙与被动模式端口
- 若启用被动模式(推荐穿越 NAT/云厂商安全组)
- 在
/etc/vsftpd.conf设置被动端口区间(示例):pasv_enable=YESpasv_min_port=40000pasv_max_port=50000
- 在
- 放行防火墙端口(UFW 示例)
- 控制通道:
sudo ufw allow 21/tcp - 被动数据端口:
sudo ufw allow 40000:50000/tcp - 如使用显式 SSL/TLS:
sudo ufw allow 990/tcp - 启用防火墙:
sudo ufw enable
- 控制通道:
- 云服务器安全组
- 在控制台放行 21/TCP 与 40000–50000/TCP(或你配置的范围)。
五 常见问题排查
- 无法连接
- 检查服务是否运行:
sudo systemctl status vsftpd - 核对云服务器安全组与系统防火墙端口(21、PASV 区间、990/TLS)
- 检查服务是否运行:
- 登录成功但上传失败(Permission denied)
- 确认
write_enable=YES - 检查目标目录属主与权限(本地用户需对目录有写权限;匿名用户需对上传目录有写权限)
- 若启用
chroot_local_user=YES,需同时设置allow_writeable_chroot=YES,否则被锁定的家目录不可写
- 确认
- 目录切换与路径问题
- 命令行 ftp 上传前用
lcd切到本地文件所在目录,或用put /abs/path/file - 上传目录不存在或不可写会导致失败
- 命令行 ftp 上传前用
- 安全性提示
- FTP 明文传输,建议优先使用 SFTP/SSH 或 FTPS;必要时开启日志以便审计。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu vsftpd如何上传文件
本文地址: https://pptw.com/jishu/786976.html
