• Vsftpd运行的两种模式-xinetd运行模式和 standalone模式


    vsftpd运行的两种模式-xinetd运行模式和 standalone模式

    vsftpd提供了standalone和inetd(inetd或xinetd)两种运行模式。

    1. standalone一次性启动,运行期间一直驻留在内存中,优点是对接入信号反应快,缺点是损耗了一定的系统资源,因此经常应用于对实时反应要求较高的 专业FTP服务器。
    2. xinetd恰恰相反,由于只在外部连接发送请求时才调用FTP进程,因此不适合应用在同时连接数量较多的系统。此外,inetd模式不 占用系统资源。除了反应速度和占用资源两方面的影响外,vsftpd还提供了一些额外的高级功能,如xinetd模式支持per_IP(单一IP)限制,而 standalone模式则更有利于PAM验证功能的应用。

    xinetd运行模式

    大多数较新的系统采用的是xinetd超级服务守护进程。使用“vi /etc/xinetd.d/vsftpd” 看一下它的内容,如下:

    disable = no 
    socket_type = stream
    wait = no
    

    这表示设备是激活的,它正在使用标准的TCP Sockets。

    如果“/etc/vsftpd.conf”中的有选项为“listen=YES”,注销它

    最后,重启xinetd,命令如下:

    /etc/rc.d/init.d/xinetd restart
    

    需要注意的是,“/etc/xinetd.d”目录中仅能开启一个FTP服务。

    standalone模式

    standalone模式便于实现PAM验证功能。进入这种模式首先要关闭xinetd下的vsftpd,设置

    “disable = yes”,或者注销掉“/etc/inetd.conf”中相应的行。然后修改“/etc/vsftpd.conf”中的选项为“listen=YES”。

    参考官方:The difference between "standalone mode" and "xinetd mode" is who will accept the initial connection request. The "standalone mode" will accept the request by itself, but "xinetd mode" will use xinetd to accept the request, fork a server process, and redirect the connection to the new process.

    如果是standlone模式,那么它是作为单独的一个服务启动的,不需要系统协作,不作为系统服务,如果要是成为xinetd模式,那么它的服务就要受系统服务的限制,比如创建一个新的服务进程,但是也有缺点,如果xinetd服务本身出了问题,那么相关的服务也是会受到影响的。

    xinetd模式和standalone模式的区别

    以xinetd模式运行的服务表示该服务进程并不以 守护进程执行,以FTPD进程为例:

    以xinetd模式运行这个服务,情况是这样的,本身FTP服务是会监听21号端口的,但是以这种模式运行这个服务 的话,21号端口则由xinetd进程来监听(此时FTPD服务并没有运行)。

    如果你的网卡接收到有21号端口请求,则有xinetd进程会去调用 FTPD程序,将在21号端口接收到的请求数据移交给FTPD进程去处理,处理完后FTPD进程退出,而xinetd进程继续监听21号端口。这有点类似 windows的svhost进程;

    而以 standalone模式运行的服务则是服务进程,如vsftpd以守护进程在内存中运行,接收到21号端口的请求后由FTPD进程fork出一个子进程进行 处理,而原进程继续监听21号端口。

  • 相关阅读:
    8.请描述基本数据类型和引用数据类型的区别?
    7.在第4题中Hello.class所在路径下, 输入命令:java Hello.class,会出现什么结果,为什么?
    6.如果第4题中在DOS命令下输入:java Hello 出现以下结果:Exception in thread “main” java.lang.NoClassDefFoundError: Hello
    5.如果第4题中在DOS命令下输入:java Hello 出现以下结果:Bad command or the file name 可能是什么原因?请说明理由。
    C# 反射技术应用
    C# 中的委托和事件
    类和结构的区别
    c#接口和抽象类的区别
    Repeater 控件使用总结
    SpringMvc+jquery easyui模块开发7步骤
  • 原文地址:https://www.cnblogs.com/passzhang/p/12063965.html
Copyright © 2020-2023  润新知