在 Ubuntu 上搭建 FTP 服务器

📦 安装 vsftpd

sudo apt update

sudo apt install vsftpd -y

sudo systemctl status vsftpd #确认状态

sudo systemctl start vsftpd #手动启动

sudo systemctl enable vsftpd #设置开机自启

👤 创建 FTP 用户和目录

出于安全考虑,建议创建一个专用用户,该用户仅能访问 FTP,无法通过 SSH 登录系统。

创建 FTP 根目录

sudo mkdir -p /home/FtpHome

创建用户并禁止 SSH 登录

sudo useradd -d /home/ftptest/FtpHome -s /usr/sbin/nologin ftptest

设置密码

sudo passwd ftptest

创建可读写的子目录并设置权限

sudo mkdir -p /home/ftptest/FtpHome

sudo chown ftpuser:ftpuser /home/ftptest/FtpHome

sudo chmod 755 /home/ftptest /home/ftptest/FtpHome

⚙️ 配置 vsftpd

基础配置/etc/vsftpd.conf ,如下:

anonymous_enable=NO:禁止匿名登录

local_enable=YES:允许本地用户登录

write_enable=YES:允许上传文件

chroot_local_user=YES:限制用户只能访问自己的家目录

allow_writeable_chroot=YES:允许被限制的用户家目录可写(解决 chroot 后无法写入的问题)

local_root=/home/FtpHome:设置 FTP 根目录

⚙️ 配置 PAM

修改/etc/pam.d/vsftpd,如下,避免登录密码后提示拒绝:

#auth required pam_shells.so

auth required pam_unix.so

account required pam_unix.so

🔥 防火墙设置

查看端口21是否被占用

ss -tuln | grep 21

如果你启用了 ufw 防火墙,需要放行相关端口:

放行 FTP 控制端口 21

sudo ufw allow 21/tcp

放行被动模式端口范围

sudo ufw allow 40000:41000/tcp

重新加载防火墙

sudo ufw reload

🔄 重启服务并测试

sudo systemctl restart vsftpd

附:查看vsftpd日志

journalctl -u vsftpd --no-pager -n 50S

相关推荐
StarsGreen32 分钟前
libva在intel平台上的前端流程简介
linux
坤坤子吖3 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
Sayai3 小时前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
青瓦梦滋4 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
Elastic 中国社区官方博客4 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜4 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
沫璃染墨5 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
Felven5 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
江湖有缘5 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
LabVIEW开发5 小时前
Omron PLC:接 LabVIEW 常踩的 5 个坑
服务器·网络·labview·labview知识·labview功能·labview程序