CentOS 下搭建FTP服务器

vsftpd是linux下比较著名的ftp服务器,搭建ftp服务器当然首选这个。

本文介绍了在CentOS 6.4下安装vsftpd、配置虚拟用户登录FTP的过程。

正文:

一:安装vsftpd

查看是否已经安装vsftpd

rpm -qa | grep vsftpd#如果没有,就安装,并设置开机启动yum -y install vsftpdchkconfig vsftpd on

二:基于虚拟用户的配置

所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。

修改配置文件

打开/etc/vsftpd/vsftpd.conf,做如下配置

anonymous_enable=NO #设定不允许匿名访问local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问chroot_list_enable=YES #使用户不能离开主目录ascii_upload_enable=YESascii_download_enable=YES #设定支持ASCII模式的上传和下载功能pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加guest_enable=YES #设定启用虚拟用户功能guest_username=ftp #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名进行认证chroot_list_file=/etc/vsftpd/vuser_passwd.txt

首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。

yum install db4 db4-utils

然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码

test123456

接着,生成虚拟用户认证的db文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwdaccount required pam_userdb.so db=/etc/vsftpd/vuser_passwd

最后,创建虚拟用户配置文件

mkdir /etc/vsftpd/vuser_conf/vi /etc/vsftpd/vuser_conf/test  #文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效内容如下local_root=/ftp/www  #虚拟用户根目录,根据实际情况修改write_enable=YESanon_umask=022 #掩码anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YESanon_other_write_enable=YES

设置Selinux(如果你的selinux是开启的话)

setsebool -P ftp_home_dir=1   #设置ftp可以使用home目录sersebool -P allow_ftpd_full_access=1   #设置ftp用户可以有所有权限

设置FTP根目录权限

mkdir /ftp/www   #创建目录chmod R 755 /ftpchmod R 777 /ftp/www

最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限

设置防火墙

打开/etc/sysconfig/iptables

在“-A INPUT –m state –state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

-A INPUT m state --state NEW m tcp p dport 21 j ACCEPT

然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart

OK,运行“service vsftpd start”,你就可以访问你的FTP服务器了。

帮衣帮-AI服装设计 帮衣帮-AI服装设计

AI服装设计神器,AI生成印花、虚拟试衣、面料替换

帮衣帮-AI服装设计 106 查看详情 帮衣帮-AI服装设计

配置PASV模式

vsftpd默认没有开启PASV模式,现在FTP只能通过PORT模式连接,要开启PASV默认需要通过下面的配置

打开/etc/vsftpd/vsftpd.conf,在末尾添加

pasv_enable=YES   #开启PASV模式pasv_min_port=40000   #最小端口号pasv_max_port=40080   #最大端口号pasv_promiscuous=YES

在防火墙配置内开启40000到40080端口

-A INPUT m state --state NEW m tcp p dport 40000:40080 j ACCEPT

重启iptabls和vsftpd

service iptables restartservice vsftpd restart

现在可以使用PASV模式连接你的FTP服务器了~

常见错误:

问题一:

可我按照配置步骤走完一遍后发现每次都是

530 Login incorrect

找来找去才发现我把验证用的vsftpd.vu创建在了etc的根目录,而不是/etc/pam.d/vsftpd.vu

问题二:

修改了上面的问题,还是不能登录,提示我:

500 OOPS:bad bool value in config file for:anon_world_readable_only

google了一把发现有人说是配置文件的末尾不能有空格,打开自己的配置文件一看,不止anon_world_readable_only这一行末尾,整个文件的末尾都有几个空格。唉,复制粘贴网页上的配置要谨慎啊。

问题三:

500 OOPS: vsftpd: cannot locate user specified in ‘guest_username’:aaA

这个问题很奇葩,最后发现是最后大小写的问题,应该是‘aaa’

所以注意一下细节,安装上面的步骤来是很简单的

以上就是CentOS 下搭建FTP服务器的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/285154.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
苹果怎么传输数据到另一个苹果上
上一篇 2026年10月19日 07:22:13
PS钢笔点转换工具使用技巧
下一篇 2025年12月2日 10:15:48

相关推荐

  • 第四章 Samba服务

    第四章  Samba服务第四章  Samba服务第四章  Samba服务第四章  Samba服务

    第四章 samba服务 4.1 samba简介 在上一章中,我们讨论了NFS,它可以实现Linux系统之间的文件共享。我们知道Windows系统之间也有共享功能,但要实现Linux与Windows之间的文件和打印机共享,就需要借助Samba服务。 SMB(Server Message Block)协…

    2026年10月19日 • 用户投稿
    000
  • 教你如何用linux设置服务器自动重启

    作为程序员的我们都用过linux,我们都知道linux主要是做服务器用的,本篇文章我们就来教大家一种linux下设置服务器自动重启的技巧,希望对大家工作有用。 步骤如下: 每个月1号凌晨3点自动重启 步骤如下: 1、用root帐号登陆; 2、打开终端窗口; 3、输入”crontab -e…

    2026年10月19日
    300
  • Linux如何查看服务器当前的并发访问量

    Linux如何查看服务器当前的并发访问量Linux如何查看服务器当前的并发访问量Linux如何查看服务器当前的并发访问量Linux如何查看服务器当前的并发访问量

    服务器访问人数可以通过命令: netstat -pnt | grep :80 列出,比如此时请求服务器上一个页面,通过该命令可以查看结果,后面的ESTABLISHED表示服务器正在被访问,可以通过添加 wc -l 统计数量,最终命令是: netstat -pnt | grep :80 | wc -l…

    2026年10月18日 • 用户投稿
    000
  • Workerman 在 CentOS 系统安装报错:依赖缺失怎么办?

    Workerman 在 CentOS 系统安装报错:依赖缺失怎么办?Workerman 在 CentOS 系统安装报错:依赖缺失怎么办?Workerman 在 CentOS 系统安装报错:依赖缺失怎么办?Workerman 在 CentOS 系统安装报错:依赖缺失怎么办?

    在 centos 系统上安装 workerman 时,解决依赖缺失报错的方法包括:1. 安装 epel 和 remi 软件源;2. 使用 yum 安装 workerman 和缺失的依赖,如 php-pcntl;3. 启用 remi 的 php 7.x 软件源以支持高级功能;4. 定期更新系统和 wo…

    2026年10月18日 • 用户投稿
    300
  • 在线编辑器Eclipse Che的安装

    在线编辑器Eclipse Che的安装在线编辑器Eclipse Che的安装在线编辑器Eclipse Che的安装在线编辑器Eclipse Che的安装

    eclipse che 是一个云端的 eclipse ide,通过浏览器就能访问。现在已经有很多功能,基本能满足日常开发,不过要想用的顺手,还需要不断完善。 其原理是通过 Docker 镜像在服务器根据需要建立多个独立的 Workspace,Workspace 里可以配置和建立项目。官方提供多个现成…

    2026年10月17日 • 用户投稿
    400
  • Samba — win10 挂载 Ubuntu 18.04 目录

    在ubuntu 18.04系统上安装samba非常简单,只需执行以下命令: sudo apt-get install samba 配置步骤包括在home目录下创建共享文件夹 share: mkdir /home/share 接着,需要调整文件夹的权限,以便其他用户能够访问: chmod 777 /h…

    2026年10月16日
    400
  • 服务器为什么用linux系统?

    服务器为什么用linux系统?服务器为什么用linux系统?服务器为什么用linux系统?服务器为什么用linux系统?

    原因:1、开源,可以轻松查看用于创建Linux内核的可用代码,还可以修改代码以修复任何错误等;2、稳定性很好,系统不容易崩溃或者卡死;3、安全性能好;4、Linux是免费的,所以成本低;5、操作方便,对计算机专业人士来讲,几条命令就可以执行很多的操作。 服务器是计算机软件或向其他程序或设备提供服务的…

    2026年10月16日 • 用户投稿
    200
  • Linux系统官网下载「建议收藏」

    Linux系统官网下载「建议收藏」Linux系统官网下载「建议收藏」Linux系统官网下载「建议收藏」Linux系统官网下载「建议收藏」

    大家好,很高兴再次与你们见面,我是你们的朋友全栈君。 以下是CentOS 6系列各个版本的下载链接: CentOS-6.9-x86_64-bin-DVD1.iso:https://www.php.cn/link/68dc6cbea6ddad512bc670c0df5c0804 CentOS-6.8-…

    2026年10月16日 • 用户投稿
    200
  • linux yum源配置文件_yum源配置文件详解

    linux yum源配置文件_yum源配置文件详解linux yum源配置文件_yum源配置文件详解linux yum源配置文件_yum源配置文件详解linux yum源配置文件_yum源配置文件详解

    大家好,我们又见面了,我是你们的朋友全栈程序员。 在Linux系统中配置yum源有三种方法:1.配置网络yum源;2.通过上传镜像文件配置本地yum源;3.通过连接存储或本地镜像文件配置本地yum源(适用于虚拟机)。配置各种yum源时,首先需要确定自己的Linux系统版本,以便后续配置。 代码语言:…

    2026年10月16日 • 用户投稿
    400
  • CentOS7清理内存权限不足解决办法

    CentOS7清理内存权限不足解决办法CentOS7清理内存权限不足解决办法CentOS7清理内存权限不足解决办法CentOS7清理内存权限不足解决办法

    关注作者的个人网站 https://www.php.cn/link/6690f091f4d8b3de28e157a5dc26c059。 查看内存使用情况 要查看内存使用情况,可以使用以下命令: free -m 查看端口使用情况 要查看特定端口的使用情况,可以使用以下两种方法之一: #方法一lsof …

    2026年10月16日 • 用户投稿
    200
  • DirectX is coming to the Windows Subsystem for Linux

    DirectX is coming to the Windows Subsystem for LinuxDirectX is coming to the Windows Subsystem for LinuxDirectX is coming to the Windows Subsystem for LinuxDirectX is coming to the Windows Subsystem for Linux

    在//build 2020上,我们宣布gpu硬件加速将来到windows子系统linux 2(wsl 2)。 什么是WSL?WSL是一个环境,用户可以在Windows PC的舒适环境中运行他们的Linux应用程序。如果你是开发人员,正在开发将在云端Linux容器中部署的容器化工作负载,你可以使用你熟…

    2026年10月15日 • 用户投稿
    300
  • 如何查看linux服务器的内存使用情况

    如何查看linux服务器的内存使用情况如何查看linux服务器的内存使用情况如何查看linux服务器的内存使用情况如何查看linux服务器的内存使用情况

    今天为大家分享查看内存的命令。 free命令 (推荐教程:linux教程) free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。 很清晰明白地显示出了总内存多少,已使用多少,还剩下多少。这里可以看到Swap的used已使用了811Mb,服务器上跑了一个多…

    2026年10月14日 • 用户投稿
    000
  • 将一个CentOS环境复制到另一个CentOS

    将一个CentOS环境复制到另一个CentOS将一个CentOS环境复制到另一个CentOS将一个CentOS环境复制到另一个CentOS将一个CentOS环境复制到另一个CentOS

    「这是我参与2022首次更文挑战的第23天,活动详情查看:2022首次更文挑战」。 将CentOS2复制一份新的CentOS3出来,步骤如下: 创建新的CentOS3 这里的名称改吃CentOS3,后面的文件改名就是对应的这个名称 ISO映像文件路径修改,每个CentOS单独用一个ISO映像文件 直…

    2026年10月14日 • 用户投稿
    2400
  • SQL 数据库满载,Redis 力挽狂澜

    SQL 数据库满载,Redis 力挽狂澜SQL 数据库满载,Redis 力挽狂澜SQL 数据库满载,Redis 力挽狂澜SQL 数据库满载,Redis 力挽狂澜

    如果你的 erp/mes/crm/hr/oa 系统首页访问速度缓慢,尽管你确认在打开页面时没有大量的写入操作,那么或许是时候考虑使用缓存了。 一次实战:在 SQL Server 前加入 Redis 层 步骤: 在 Python 中启动 5000 个线程同时访问 SQL Server,执行存储过程,并…

    2026年10月14日 • 用户投稿
    200
  • Spring Boot 2 应用在 Docker 容器中异常退出(Exited(139)),如何排查并解决?

    Spring Boot 2 应用在 Docker 容器中异常退出(Exited(139)),如何排查并解决?Spring Boot 2 应用在 Docker 容器中异常退出(Exited(139)),如何排查并解决?Spring Boot 2 应用在 Docker 容器中异常退出(Exited(139)),如何排查并解决?Spring Boot 2 应用在 Docker 容器中异常退出(Exited(139)),如何排查并解决?

    Spring Boot 2 应用在 Docker 容器中异常退出的排查与解决 本文分析并解决Spring Boot 2应用在Docker容器中异常停止(Exited(139))的问题。 问题描述: 在CentOS 8.5系统上,使用Docker 19.03.13和Docker Compose部署了两…

    2026年10月14日 • 用户投稿
    100
  • 1 Redis 下载与安装

    1 Redis 下载与安装1 Redis 下载与安装1 Redis 下载与安装1 Redis 下载与安装

    redis下载与安装指南 Redis的下载方式有两种: 官方下载:https://www.php.cn/link/03b059d4abd989c7cc2d79e8fc008cea (推荐)GitHub下载:https://www.php.cn/link/82b9fe6d15e5952e1f5e597…

    2026年10月14日 • 用户投稿
    400
  • SpringBoot2应用在Docker容器中异常退出(Exited 139)是什么原因?

    SpringBoot2应用在Docker容器中异常退出(Exited 139)是什么原因?SpringBoot2应用在Docker容器中异常退出(Exited 139)是什么原因?SpringBoot2应用在Docker容器中异常退出(Exited 139)是什么原因?SpringBoot2应用在Docker容器中异常退出(Exited 139)是什么原因?

    排查 Spring Boot 2 应用在 Docker 容器中异常退出的问题 (Exited 139) 本文分析 Spring Boot 2 应用在 Docker 容器中异常停止,并提供解决方案。 问题表现为容器状态显示为 Exited (139),日志包含 SIGILL (0x4) 错误,以及指向…

    2026年10月14日 • 用户投稿
    000
  • 二、容器基本概念

    容器与镜像的概念及其应用在现代计算环境中扮演着重要角色。以下是对容器和镜像的详细介绍。 什么是容器? 在操作系统中,进程之间可以相互看到、相互通信;它们使用相同的文件系统,可以对同一文件进行读写操作,并且共享系统资源。然而,这样的设置也存在一些问题: 进程可能会被其他进程影响,高级权限的进程甚至可以…

    2026年10月14日
    100
  • 如何通过脚本批量管理系统更新策略?

    批量管理系统更新需基于操作系统选择合适工具:Windows用PowerShell或组策略,Linux用Bash/Python结合Ansible等工具;关键考量包括环境、团队技能、基础设施整合及策略复杂度;部署时面临认证、网络、版本差异等挑战,应通过密钥认证、重试机制、版本适配应对;安全性方面须遵循最…

    2026年10月13日
    200
  • centos关机命令是什么

    centos关机命令是什么centos关机命令是什么centos关机命令是什么centos关机命令是什么

    centos关机命令:1、“halt”命令,可立刻关机;2、“poweroff”命令,可立刻关机;3、“shutdown -h now”命令,可立刻关机;4、“shutdown -h 数字”命令,可指定分钟后自动关机;5、“init 0”。 本教程操作环境:CentOS 6系统、Dell G3电脑。…

    2026年10月13日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信