centos 搭建ftp服务器

项目上需要用到ftp文件服务同步,所以在测试环境进行搭建,其中遇到了一些问题,遂记录。

1、安装vsftpd软件包

打开终端并输入以下命令来安装vsftpd

bash 复制代码
yum install vsftpd -y

2、运行vsftpd

bash 复制代码
systemctl start vsftpd

3、测试匿名连接

我这里用的工具是MobaXterm

点击OK,然后弹出输入密码,直接点 OK,即可。如果一切正常则会登录成功。

这个pub目录就是默认的ftp文件服务器的目录了,真实地址是在/var/ftp目录下:

bash 复制代码
ls -l /var/ftp 

4、配置vsftpd

编辑/etc/vsftpd/vsftpd.conf文件,使用任何文本编辑器打开该文件:

bash 复制代码
vim /etc/vsftpd/vsftpd.conf

修改配置参数。根据需要对以下参数进行调整或取消注释:

bash 复制代码
anonymous_enable=NO: 关闭匿名登录功能;

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

write_enable=YES: 允许写入文件;

local_root=/data/nas: 配置ftp目录;

chroot_local_user=YES: 限制用户只能访问其主目录;

重启vsftpd服务

bash 复制代码
systemctl restart vsftpd

此时再用anonymous登录就会提示:530 Please login with USER and PASS.

5、添加FTP用户

创建一个系统用户,并为其分配FTP目录

bash 复制代码
useradd ftpuser
# useradd ftpuser -s /sbin/nologin #添加一个名为ftpuser的账户用于登陆ftp
passwd ftpuser
mkdir /home/ftpuser
chown ftpuser:ftpuser /home/ftpuser

6、使用新用户密码登录

7、常见问题

vsftpd目录限制chroot(用户隔离)500错误分析以及解决方案-阿里云开发者社区

1)chroot_list文件不存在

500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list

由于vsftpd默认没有chroot_list文件,故而登录失败,创建一下文件:

touch /etc/vsftpd/chroot_list

再尝试登录

2)安全问题

500 OOPS: vsftpd: refusing to run with weitable root inside chroot()

这是因为,为了避免一个安全漏洞,从vsftpd 2.3.5 开始,chroot目录必须不可写,否则用户不能登录

若要解决该问题,可以新增一条参数:

allow_writeable_chroot=YES

相关推荐
小羊没烦恼!7 分钟前
关于大型asp.net应用系统的架构-架构的选择
java·服务器·开发语言·前端·c#
yuezhilangniao11 分钟前
阿里云 CentOS 7 升级 Redis 到 7.2 实录-centos7安装redis7
redis·阿里云·centos
2301_7779983415 分钟前
TCP连接断开:进程终止、主机断电与网络断开
linux·服务器·网络·tcp/ip
发量惊人的中年网工34 分钟前
服务器托管一个机柜一年多少钱?2026年9月最新机柜租用价格参考
运维·服务器·网络
星恒随风35 分钟前
Linux进程基础(二):进程调度、上下文切换、O(1)调度器、环境变量与虚拟地址空间
linux·笔记·学习·状态模式
fundoit37 分钟前
资源服务器如何对 JWT 进行验签
java·运维·服务器·spring boot·php·oauth2
云贝贝贝41 分钟前
【无标题】TDSQL 分片键怎么选?选错等于数据倾斜加跨分片慢查询
运维·服务器·数据库·腾讯云
hzxpaipai1 小时前
AI把网站页面做出来了,谁来负责后台、服务器和正式上线?
运维·服务器·人工智能
xbzb1 小时前
一边装一边报错:CentOS 7 + LNMP 跑 ECShop 的常见故障与解法
linux·运维·centos
遇印记1 小时前
数据通信初步
运维·服务器·网络·windows·学习