Linux下安装vsftpd

简介: Linux下安装vsftpd

一、vsftpd简介


安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。


在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。

在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器的数据,VSFTP服务器可以支持15000个并发用户


特点:


1、它是一个安全、高速、稳定的FTP服务器;
2、它可以做基于多个IP的虚拟FTP主机服务器;
3、匿名服务设置十分方便;
4、匿名FTP的根目录不需要任何特殊的目录结构,或系统程序或其它的系统文件;
5、不执行任何外部程序,从而减少了安全隐患;
6、支持虚拟用户,并且每个虚拟用户可以具有独立的属性配置;
7、可以设置从inetd中启动,或者独立的FTP服务器两种运行方式;
8、支持两种认证方式(PAP或xinetd/ tcp_wrappers);
9、支持带宽限制;


好了,以上就是官方的一些介绍,可以了解一下。我们平时的使用场景可能是公司需要,比如搭建一个vsftp服务,员工们上传下载文件,或者自己使用。主要就是用来做文件上传下载。


二、vsftpd搭建


1、查看自己的linux版本


有的属于6系列,目前是最新版本是7系列。由于7系列在一些命令上有了变化,所以需要你确认自己是6/7系列。


比如:防火强命令firewall,systemctl命令等等


2、查看是否安装vsftp并使用yum安装


看一下自己是否安装了vsftp服务,如果安装了,可以卸载或者继续搭建


rpm -qa | grep vsftpd


使用yum安装


yum -y install vsftpd


image.png


1.png


这样表示安装成功。(图例是找的一张,我安装的是vsftpd-3.0.2-22.el7.x86_64版本)

验证是否安装成功


rpm -qa vsftpd


3、vsftp配置


安装已经成功,接下来就需要进行配置了。查看vsftp相关的配置文件


ll /etc/vsftpd/


image.png

image.png


userconfig文件夹是我后来自己创建的。


下面说一下vsftpd.conf配置文件的配置,我只说一下没有注释的和我新增的配置项:


anonymous_enable=NO #是否允许匿名用户登录YES/NO
local_enable=YES #是否允许本地用户登录YES/NO
write_enable=YES #是否允许本地用户对FTP服务器文件具有写权限YES/NO
local_root=/home/wwwroot/ #为不同用户设置不同的ftp根目录
chroot_local_user=YES #锁定用户到各自目录为其根目录YES/NO
allow_writeable_chroot=YES #各用户是否可以上传下载YES/NO
user_config_dir=/etc/vsftpd/userconfig #用户配置目录,这就是我新建的那个文件夹
local_umask=022 #设置本地用户的文件掩码为缺省022,也可根据个人喜好将其设置为其他值
dirmessage_enable=YES # 是否激活目录欢迎信息功能YES/NO
xferlog_enable=YES #是否让系统自动维护上传和下载的日志文件默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file选项对其进行设定YES/NO
connect_from_port_20=YES #是否设定FTP服务器将启用FTP数据端口的连接请求YES/NO
xferlog_std_format=YES #是否以标准xferlog的格式书写传输日志文件YES/NO
ascii_upload_enable=YES #是否以ASCII方式上传数据YES/NO
ascii_download_enable=YES #是否以ASCII方式下载数据YES/NO
listen=YES #是否允许监听新的端口YES/NO
#listen_ipv6=YES #此项很重要,记得注释
pam_service_name=vsftpd #
userlist_enable=YES #设置是否阻扯user_list文件中的用户登录FTP服务器,默认为YES
tcp_wrappers=YES #是否使用tcp_wrappers作为主机访问控制方式
userlist_deny=NO #当userlist_enable为YES,userlist_deny为NO时,FTP服务器仅允许user_list中的用户访问
listen_port=6666 #监听一个新的端口6666
#修改ftp默认的21端口,数字随意,只要在1024-65535之内就行(1024以下是系统保留的,从1024-65535是用户使用的)


我们通常想要的是,某个用户登录之后可以直接访问到我们给他指定的目录,也就是用户自己的根目录,所以我在上边配置了不同用户的根目录。接下来需要配置用户。

先创建一个用户:


useradd testftp
passwd testftp


设置完密码这个用户就生成了,现在去配置vsftp中该用户的根目录


cd /etc/vsftpd/
mkdir userconfig
vim testftp


这个时候在里面配置一下testftp用户自己根目录:


local_root=/home/wwwroot/testftp/


注意:你的/home/wwwroot/testftp/这个文件夹必须存在哦!这个时候已经为testftp用户设置好了自己连接后的根目录,你还需要将:/etc/vsftpd/user_list文件中的其他用户都删除,只添加一个testftp


4、配置selinux


那个就ok了,现在还需要配置一下selinux

vim /etc/sysconfig/selinux

将SELINUX=enforcing改为SELINUX=disabled


image.png


5、启动vsftp服务


还是因为7系列,所以启动命令是:


systemctl start vsftpd


6、连接测试


ok,现在vsftp搭建和配置已经完成了,可以连接了。按照以上配置的话


ip:你的服务器ip
端口:6666
用户名:testftp
密码:testftp


多说一句,如果你启动的时候报错:


Restarting vsftpd (via systemctl): Job for vsftpd.service failed because the control……


这个就是因为vsftpd.conf中的:listen_ipv6=YES没有注释造成,因为我们目前的网络环境还不支持ipv6,改为listen_ipv6=NO或者注释,重启即可。



相关文章
|
7天前
|
Ubuntu 网络协议 Linux
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
56 2
|
4天前
|
Linux C语言
成功解决 在Linux CentOS 7 中安装gcc
这篇文章介绍了如何在Linux CentOS 7系统中安装gcc (g++) 8工具集。由于CentOS 7默认的gcc版本是4.8,而这个版本与Qt 5.14、Qt 5.15或更高版本不兼容,可能会导致编译时出现系统头文件错误。文章中提到,即使在项目配置中添加了`CONFIG+=c++11`,如果仍然报错,那么很可能是gcc版本的问题。为了解决这个问题,文章提供了使用CentOS的Software Collections (scl)来安装更新版本的gcc的步骤。
成功解决 在Linux CentOS 7 中安装gcc
|
3天前
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
26 8
|
1天前
|
应用服务中间件 Linux nginx
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
这篇文章讨论了Linux虚拟机磁盘扩容的方法,包括外部配置、具体扩容步骤和扩容后的效果验证。同时,文章还涉及了Docker容器磁盘满的问题及其解决方法,如删除不必要的镜像和容器,以及调整Docker的安装路径。此外,还提到了意外情况的处理,例如误删除停止的容器后的应对措施。最后,文章还提供了使用Docker安装nginx的步骤和成功访问的截图。
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
|
1天前
|
关系型数据库 MySQL Linux
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
这篇文章提供了在Linux系统中使用Docker安装Mysql 5.7版本的详细过程和图解,包括安装指定版本、创建实例、启动、使用Navicat连接测试、文件挂载与端口映射、进入容器、配置文件修改以及重新启动容器等步骤。
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
|
5天前
|
Linux Python
Linux 升级安装 Python 3
Linux 升级安装 Python 3
12 2
|
5天前
|
Linux 网络安全 Python
Linux离线安装Python时ssh和hashlib死活安装不上的解决方案
本文提供了Linux环境下离线安装Python时遇到的"ImportError: No module named _ssl"和"ERROR:root:code for hash md5|sha1|sha224|sha256|sha384|sha512 was not found"两个问题的解决方案,通过设置OpenSSL环境变量和编辑Python源码配置文件来解决。
9 1
|
5天前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
5天前
|
Linux
虚拟机安装Linux系统的网络配置
该博客文章提供了解决虚拟机中Linux系统网络问题的多种方法,包括重置网络服务、修改网络配置文件、使用不同网络模式等,以确保虚拟机能够成功连接到网络。
虚拟机安装Linux系统的网络配置
|
8天前
|
Linux Go
Linux——windows10下的Ubuntu18.04安装并配置go环境
Linux——windows10下的Ubuntu18.04安装并配置go环境
19 1