在 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

相关推荐
Zenova EdgeOS5 小时前
Linux 内核日志 dmesg 进阶实战:从现场过滤到持久化闭环
linux·运维·服务器
郝亚军6 小时前
ec_private.pem的生成方法
linux·运维·服务器
NendoZen6 小时前
Arch Linux解决Grub无法SAVEDEFAULT问题(uki启动问题)
linux·运维·服务器
Elastic 中国社区官方博客7 小时前
Elasticsearch:安装自行管理的 Elastic Stack 集群
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
忆挽篱笙歌7 小时前
进程控制管理
linux·运维·服务器
Escalating_xu8 小时前
【Linux 网络编程】connect 的断线重连:用状态机写一个能恢复连接的 TCP 客户端
linux·网络·tcp/ip
Zucker n9 小时前
英语“论文”语法检查工具
linux·windows
fengkai45459 小时前
3、Kubernetes的Namespace&Contexts&Pod&YAML格式
运维·容器·kubernetes·k8s·namespace·yaml·pod
2401_868534789 小时前
局域网络中信息安全方案设计及攻击防范技术(制造企业园区网)
服务器·网络
戴西软件9 小时前
制造研发中的AI视觉与仿真:戴西工程图纸智能审图智能体、戴西3DViz_CAE AI集成与戴西3DViz_CAD AI集成
大数据·运维·人工智能·3d·自动化·制造·rpa