ubuntu安装ftp
你需要在 Ubuntu 22.04 系统中安装 FTP 服务器并配置专属用户,我推荐使用vsftpd(Very Secure FTP Daemon),它是 Ubuntu 官方默认且安全性较高的 FTP 服务器软件,下面一步步完成安装和配置。
一、前期准备
1.登录 Ubuntu 22.04 系统,建议使用 root 权限操作,或使用sudo提升权限。
2.先更新系统软件源,确保安装包最新:
bash
运行
sudo apt update && sudo apt upgrade -y
二、安装 vsftpd
直接通过 apt 包管理器安装 vsftpd:
bash
运行
sudo apt install vsftpd -y
安装完成后,验证服务是否启动:
bash
运行
查看vsftpd服务状态
sudo systemctl status vsftpd
如果显示active (running),说明服务已正常启动;若未启动,手动启动并设置开机自启:
bash
运行
启动vsftpd
sudo systemctl start vsftpd
设置开机自启
sudo systemctl enable vsftpd
三、配置 FTP 用户(安全推荐:创建仅 FTP 访问的本地用户,无 SSH 登录权限)
我们创建一个专用 FTP 用户(以用户名ftpuser为例),并为其分配专属 FTP 目录(/home/ftpdata),且禁止该用户通过 SSH 登录系统,提升安全性。
1.创建 FTP 专用目录
bash
运行
创建主目录
sudo mkdir -p /home/ftpdata
设置目录权限(vsftpd要求目录权限不能过于宽松,先临时设置)
sudo chmod 755 /home/ftpdata
sudo chown root:root /home/ftpdata
2.创建 FTP 用户并指定目录
bash
运行
创建用户ftpuser,指定家目录为/home/ftpdata,禁止SSH登录(shell设为/usr/sbin/nologin)
sudo useradd -d /home/ftpdata -s /usr/sbin/nologin ftpuser
3.为 FTP 用户设置密码
bash
运行
sudo passwd ftpuser
执行后按照提示输入并确认密码(输入时屏幕不显示明文,正常输入即可)。
4.创建用户可读写的子目录
由于我们将 FTP 主目录所有者设为 root(提升安全性,防止用户修改主目录配置),需要创建一个子目录供ftpuser读写文件:
bash
运行
创建可读写子目录
sudo mkdir -p /home/ftpdata/upload
更改该子目录的所有者为ftpuser
sudo chown ftpuser:ftpuser /home/ftpdata/upload
sudo chmod 775 /home/ftpdata/upload
四、配置 vsftpd(核心步骤)
vsftpd 的主配置文件为/etc/vsftpd.conf,先备份原配置文件,再修改配置:
1.备份原配置文件
bash
运行
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
2.编辑配置文件
使用nano编辑器打开配置文件(也可使用vim):
bash
运行
sudo nano /etc/vsftpd.conf
3.修改 / 添加以下配置项
保留配置文件中默认的注释内容,修改或确保以下关键配置项生效(注释掉的项去掉#,无对应项则直接添加在文件末尾):
conf
允许本地用户登录(我们创建的ftpuser属于本地用户)
local_enable=YES
允许用户上传文件
write_enable=YES
禁止本地用户离开其家目录(禁锢用户,提升安全性,核心配置)
chroot_local_user=YES #开启后,发现没有权限#
允许禁锢目录下的可写操作(解决chroot开启后无法上传的问题)
allow_writeable_chroot=NO
(补充)指定用户可用的端口范围(被动模式,避免防火墙拦截)
pasv_min_port=40000
pasv_max_port=41000
禁止匿名用户登录(默认已开启,确保生效)
anonymous_enable=NO
日志记录(方便排查问题)
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
4.保存并退出编辑器
nano编辑器中,按Ctrl+O保存,按Enter确认文件名,按Ctrl+X退出。
五、重启 vsftpd 服务使配置生效
bash
运行
sudo systemctl restart vsftpd
六、配置防火墙(允许 FTP 流量)
Ubuntu 22.04 默认使用ufw防火墙,需要开放 FTP 相关端口:
1.开放 FTP 默认端口(21,主动模式)和被动模式端口范围
bash
运行
开放21端口(FTP控制端口)
sudo ufw allow 21/tcp
开放被动模式端口范围(对应配置文件中的40000-41000)
sudo ufw allow 40000:41000/tcp
重新加载ufw规则
sudo ufw reload
2.验证防火墙规则
bash
运行
sudo ufw status
若显示上述端口已ALLOW,说明规则配置成功。
七、测试 FTP 连接
1.本地测试(使用lftp工具)
先安装lftp:
bash
运行
sudo apt install lftp -y
然后连接本地 FTP 服务器:
bash
运行
lftp ftpuser@localhost
输入之前设置的ftpuser密码,连接成功后,可使用cd upload进入可读写目录,put 本地文件路径上传文件,ls查看目录文件,验证功能是否正常。
2.远程测试(使用 FTP 客户端,如 FileZilla)
打开远程 FTP 客户端,填写以下信息:
主机:Ubuntu 服务器的 IP 地址
端口:21
协议:FTP
用户:ftpuser
密码:你设置的密码
连接成功后,可尝试上传 / 下载文件,验证读写功能。
总结
1.Ubuntu 22.04 中优先选择vsftpd作为 FTP 服务器,安装简单且安全性高。
2.配置核心要点:禁锢用户家目录、开放对应防火墙端口、为用户分配可读写子目录,避免权限问题导致功能异常。
3.关键步骤:修改/etc/vsftpd.conf配置后必须重启vsftpd服务,否则配置不生效。
如果连接失败,可查看/var/log/vsftpd.log日志文件排查问题,常见问题多为目录权限或防火墙配置不当。

浙公网安备 33010602011771号