热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【第2期】vsftpd的安装与使用

1、为什么要使用ftp工具作为服务器后台开发人员而言,服务器为什么要安装ftp工具这个问题,相信都有自己的理解和体会。在实际应用中,服务器一旦安装投入使用后,常常是放置在机房中,一

1、为什么要使用ftp工具

   作为服务器后台开发人员而言,服务器为什么要安装ftp工具这个问题,相信都有自己的理解和体会。在实际应用中,服务器一旦安装投入使用后,常常是放置在机房中,一般情况下,开发人员不会直接进入机房进行开发工作或软件维护工作。此时,为服务器安装ftp工具变得如此重要。它方便技术人员在远程操作服务器时,为服务器上传需要的文件或从服务器中下载文件到本地中。因此,在服务器架构方面,ftp工具常常是装机必备的一个工具。


2、vsftpd简介

    vsftpd是Linux下一个常用的ftp工具。在RH的Linux版本中,作为ftp工具vsftpd不是系统自带标配安装的。也就是说,我们需要自己安装ftp工具。

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。【以上定义摘自 百度百科】

    vsftpd的优点有很多,以至于它成为Linux服务器中比较常用的ftp工具之一。有关这方面的说明有很多,有兴趣的可以直接查看【百度百科】的描述,这里我就不再赘述了。


 3、vsftpd的安装

    vsftpd在安装使用之前,我们还是无法通过远程机器使用ftp命令的方式去连接服务器,从而做上传或下载文件的操作(当然,ftp工具都还没有安装呢)。

    我首先在网上找到了可用的ftp安装包:vsftpd-2.0.5-16.el5_4.1.i386.rpm。下面给出下载的链接地址!

    http://download.csdn.net/detail/libear218/3046262

    我在虚拟机中创建一个根目录下的software目录,专门放置了软件安装包(使用root用户,父目录为根目录 / )

    ,

    通过虚拟机直接将ftp安装包放进服务器中。

    ,

    以root用户查看vsftpd是否已安装:rpm -qa | grep vsftpd(由下图可知,vsftpd目前还没有安装)

    ,

    以root用户安装vsftpd:rpm -ivh /software/vsftpd-2.0.5-16.el5_4.1.i386.rpm

    ,

    以root用户检查vsftpd安装情况:rpm -qa | grep vsftpd(显示安装的内容,说明vsftpd已经安装了)

    ,


4、vsftpd的配置    

    当安装好vsftpd之后,现在我们还无法正常的使用vsftpd,原因有两个:

1、vsftpd未配置(或未个性化配置)

2、vsftpd未启动

    接下来,我们需要对vsftpd进行配置。在vsftpd中,主配置文件为vsftpd.conf。下面,对vsftpd的配置文件作简单介绍。

1、 /etc/vsftpd/vsftpd.conf  主配置文件

2、 /etc/vsftpd/ftpusers  禁止访问vsftpd服务器的用户列表文件。顾名思义,你想禁止哪个用户使用ftp的方式登录,写在这里即可

3、 /etc/vsftpd/user_list  根据主配置vsftpd.conf,许可或禁止访问服务器的用户列表文件。也就是说,它即可作为许可名单,也可作为禁止名单,具体视vsftpd.conf内设参数而定

4、 /var/ftp  匿名用户登录时,默认目录

    下面,对主配置文件的主要参数做简单介绍。

anonymous_enable  指定是否允许匿名登录,默认为YES

local_enable  指定是否允许本地用户登录,默认为YESwrite_enable 指定是否开放写权限,默认为YES

local_umask  指定文件创建的初始权限掩码值

dirmessage_enable  指定是否能浏览目录内的信息

userlist_enable  指定是否启用user_list文件,如果为YES,则文件user_list表示许可,若为NO,则文件user_list表示禁止

idle_session_timeout  指定用户会话空闲多少时间(单位为秒)后自动断开

data_connection_timeout  指定数据连接空闲多少时间(单位为秒)后自动断开

ascii_upload_enable  指定是否允许使用ASCII格式上传文件

ascii_download_enable  指定是否允许使用ASCII格式下载文件

listen  指定vsftpd服务器的运行方式,默认为YES,以独立方式运行

xferlog_enable  指定是否启用日志功能

tcp_wrapper  指定是否启用防火墙    

     下面,我使用root用户,修改主配置文件vsftpd.conf:vi /etc/vsftpd/vsftpd.conf

    ,

    修改文件内容(允许使用asc编码进行文件上传或下载

    ,  去#号,改成  ,

    在末尾添加 userlist_deny=NO

    ,


     我再使用root用户,修改用户列表文件user_list: vi /etc/vsftpd/user_list

    ,

    追加允许的用户:oracle(使oracle用户被允许通过ftp的方式连接服务器

    ,


     我再使用root用户,修改用户列表文件ftpusers: vi /etc/vsftpd/ftpusers

    ,

    删除用户:root(防止root用户在使用ftp时,无法连接服务器

    ,  删除root用户,改为,

    为此,vsftpd的配置就基本完成了。此时,我们可以启动vsftpd服务。使用命令 service vsftpd start

    ,

    为了防止vsftpd服务在服务器被重启后无效,我们还需要使vsftpd在服务器重启或开机时自启动。

    使用命令 chkconfig vsftpd on,并使用命令检查 chkconfig --list|grep vsftpd

    ,

    我们可以看到vsftpd在级别为2、3、4、5的时候会自启动,这样基本就能满足我们的需求了!


5、vsftpd调试

     为服务器安装好vsftpd后,接下来,我们要做的就是查看安装后的结果是否成功的。使用windows的dos命令连接服务器试试。

    ,

    对使用过ftp连接过服务器进行文件上传、下载操作的技术人员来说,看到这种情况,就知道实际上ftp是连接失败了!为什么会这样呢?

    其实,我们在使用ftp时,其端口可能服务器的防火墙给过滤了。也就是说,其端口无效了,这样ftp服务启动后,我们还是无法成功连接到服务器上。

    这时,我们可以对防火墙进行一些处理,为vsftp开通所需的端口,默认情况下,vsftpd使用的端口号是20或21

    使用root用户,编辑防火墙文件:vi /etc/sysconfig/iptables

    ,

    在COMMIT的上面添加如下语句:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 20 -j ACCEPT

    如:

    ,

    重启防火墙服务:service iptables restart

    ,

    重启vsftpd服务:service vsftpd restart

    ,

    再使用windows的dos命令ftp到服务器

    ,

    咦,成功了。这时就可以输入用户名,密码等信息使用ftp连接到服务器了。


     【题外话】后来,我发现,在使用ftp过程中,ls命令居然还不显示文件列表。网上查了一下,使用一下命令可以解决

    # setsebool -P ftpd_disable_trans 1 

    # service vsftpd restart

    ,

【第2期】vsftpd的安装与使用


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
author-avatar
经任萍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有