热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

系统守护进程inetd、xinetd与独立守护进程standalone介绍

系统守护进程/etc/inetd.conf或/etc/xinetd.conf适合访问量小独立守护进程standalone适合访问量大proftpd有两种运行模式:Standalone和inetdstandalone比较耗资源适合大访问量,inetd会为每一个请求启动一个进程,平时不用的时候不耗资源,我就是自

系统守护进程 /etc/inetd.conf 或/etc/xinetd.conf 适合访问量小
独立守护进程standalone                                      适合访问量大

proftpd有两种运行模式:Standalone 和 inetd
standalone比较耗资源适合大访问量,inetd会为每一个请求启动一个进程,平时不用的时候不耗资源,我就是自己用用,所以选择inetd模式。
cat /etc/inetd.conf
结果什么都没有。
进一步查看文档得知,现在的linux基本上用xinetd取代inetd了。但是我在系统里找不到xinetd。恩~,明白了:
sudo apt-get install xinetd
又是瞬间完成。
进入/etc/xined.d目录,看见了几个配置好的项目。我们在加一个ftp吧。
sudo vim ftp
service ftp
{
flags = REUSE
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/proftpd
log_on_success = HOST PID
log_on_failure = HOST ATTEMPT
}
启动vsftpd可以采用三种方式:inetd、xinetd和standalone(独立)工作模式。由于目前使用的xinetd扩展了inetd,它比inetd更加高效和实用,包括诸如请求记录、访问控制、将业务与网络接口绑定等改进,所以通常使用xinetd,本文将介绍xinetd以及standalone两种启动方式。
1. xinetd方式启动
使用该启动方式,在上述的配置文件当中,应该将listen=YES设为list=NO,并且将tcp_wrappers=YES设为tcp_wrappers=NO,并且使用如下命令将vsftpd的文档目录拷贝到/etc/xinetd.d目录下:
  # cp /usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/vsftpd
  # vi /etc/xinetd.d/vsftpd
  将disable=yes设为disable=no即可。一个关于该启动方式的的配置文件如下所示:
  # cat /etc/xinetd.d/vsftpd
  # default: on
  # description: The vsftpd FTP server serves FTP connections. It uses
  # normal, unencrypted usernames and passwords for authentication.
  service ftp
  {
  socket_type = stream
  wait = no
  user = root
  server = /usr/sbin/vsftpd
  nice = 10
  disable = no
  flags = IPv4
  }
  现在,就可以使用如下命令来启动vsftpd了。
  停止独立运行的vsftpd:
  # service vsftpd stop
 重新启动xinetd守护进程:
  # service xinetd restart
  另外一点需要说明的是:如果想在系统启动时就自动运行该服务,那么需要使用setup命令,在网络服务配置的项目中,选中vsftpd守护进程即可。
  2. 独立工作模式启动
  vsftpd也可以工作在独立工作模式下。这样,我们需要再次打开“/etc/vsftpd.conf”做如下修改:
  # Shall the vsftp daemon run in standalone ope

proftpd有两种运行模式:Standalone 和 inetd
standalone比较耗资源适合大访问量,inetd会为每一个请求启动一个进程,平时不用的时候不耗资源,我就是自己用用,所以选择inetd模式。
cat /etc/inetd.conf
结果什么都没有。
进一步查看文档得知,现在的linux基本上用xinetd取代inetd了。但是我在系统里找不到xinetd。恩~,明白了:
sudo apt-get install xinetd
又是瞬间完成。
进入/etc/xined.d目录,看见了几个配置好的项目。我们在加一个ftp吧。
sudo vim ftp
service ftp
{
flags = REUSE
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/proftpd
log_on_success = HOST PID
log_on_failure = HOST ATTEMPT
}
具体是什么意思? 其实我也是半懂不懂的,想去xinetd的主页上看看,结果找不到页面。
然后就是配置proftpd本身了。
proftpd的配置文件在/etc/proftpd/proftpd.conf
不愧“pro”这个名字,看上去非常“专业”。很复杂,官方主页上文档也非常复杂。
我现把匿名用户登录那部分打开了。
这段应该在proftpd.conf的最后面。
对于这个配置文件,如果你用过apache httpd,应该看上去很眼熟。
然后重启一下xinetd
sudo service xinetd restart
结果告诉我没有service这个命令。
同样:
sudo apt-get debian-helper-scripts
重启完服务器后,看看ftp已经可以登录了。如果不能登录,你可以试试一下方法看看问题出在哪里。
到/etc/init.d目录下直接调用xinetd start看看有什么信息出来,如果没有什么有用信息。
修改一下xinetd在
start)
apache
最重要的配置选项ServerType standalone | inetd

这个配置选项指定如何运行WEB服务器。Apache可以使用两种方法来运行服务器:standalone(独立的)和inetd(由inetd运行的)。standalone参数表示WEB服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。inetd参数表示WEB服务不是以一个单独的守候进程的形式支持。而是由Inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的WEB服务请求的时候,再启动一个WEB服务进程为其服务。从功能的角度看,这两种方法几乎是相同的。但它们之间实际有很大区别,区别在于服务器的性能。一个由inted运行的服务器进程在它结束对请求服务的同时立刻退出。而在standalone模式下,子WWW服务器进程在退出之前要挂起一段时间,这就给它们提供了机会,可以重新用来服务新的请求。

在standalone模式下,不存在对每个请求启动新进程的开销,所以它的效率更高;而inetd模式被认为比standalone模式更具安全性。

standalone模式:

此种模式下,WWW服务器侦听特定端口的连接请求。当客户机发出到特定端口地址的连接请求时,主服务器进程启动子WWW服务进程来服务该请求。另外还需要告诉主服务器进程侦听的特定端口地址,使用命令:

Port [number] (缺省值为80)

inetd模式

inetd是侦听有小于1024的端口连接请求的Internet守护进程(一个服务器进程)。与前面的方法不同,当客户系统发出到WWW服务器的连接请求时,inetd启动一个WWW服务器进程,由此进程服务此请求,完成服务后即退出。如果选择通过inetd服务器来运行Apache,需要编辑/etc/inetd.conf文件为Apache添加一条新的记录:

httpd stream tcp nowait httpd /etc/httpd/bin/httpd -f /etc/httpd/conf/httpd.conf

修改了/etc/inetd.conf文件后,就需要修改/etc/services中添加一行

httpd 80/tcp httpd

做完以上修改后,需要重新启动inetd进程。首先,使用以下命令取得inetd的进程ID:

ps auxw |grep inetd

然后执行命令:kill -HUP

在RedHat Linux中,默认是采用inetd服务器来运行Apache,所以只要你在安装时选择了httpd,以上工作在安装时就已经代你完成了

 

////////////////////////

////////////////////////

超级服务器inetd和xinetd

inetd(因特网守护进程)及其替代品xinetd(扩展的因特网守护进程,xinetd.org)被称为超级服务器或服务分配器,这是因为它们在必要的时候会启动其他的守护进程,比如smbd(Samba)和vsftpd(FTP)。这些超级服务器监听网络连接。在建立连接时,它们根据该连接接入的端口找到某个服务器守护进程,将该守护进程的标准输入和标准输出文件描述符设置为套接字(参见2.2.2节),然后启动该守护进程。

跟同时运行多个守护进程监听端口的服务器相比,使用这些超级服务器可以带来以下两个好处。首先,超级服务器不需要守护进程在不用的时候还在运行。其次,它们允许开发者编写从标准输入读取数据、向标准输出写入数据的服务器软件,而所有的套接字通信交由超级服务器来处理。

inetd超级服务器最初随4.3BSD发行,它并不是非常不安全。但是它通常会打开众多端口,运行很多服务器软件,从而增加了可利用软件暴露到因特网的可能性。它的继任者xinetd引入了访问控制机制和日志功能。这个守护进程可以让管理员来限制访问服务的时间以及入站连接的来源地和数量。如果带上libwrap编译的话,xinetd就能够利用TCP封装器(参见下一节的讨论)的功能。

跟现在相比,以前CPU性能较差,RAM价格较高,这些超级服务器能够高效地利用内存和CPU。过去几年中,一些系统慢慢地不再使用这些超级服务器。现在一个系统能够非常轻易地空出几兆的内存和少量的CUP时间来运行一个监听某端口的守护进程:与不断地重启相比,让进程一直呆在内存中占用的资源更少。此外,开发者现在使用各种工具包能够更加轻易地处理套接字通信

 

/////////////////////////////////////////////////////////////////////

在linux中一些不长期使用的服务(不重要的服务?)没有被作为单独的守护进程在开机时启用,linux把这些服务监听端口全部由一个独立的进程xinetd集中监听,当收到相应的客户端请求之后,xinetd进程就临时启动相应服务并把相应端口移交给相应服务,客户端断开之后,相应的服务进程结束,xinetd继续监听。要开telnet服务器,只需配置xinetd即可。
xinetd是一个daemon程序,所有结尾带d的程序都是daemon程序,也就是守护程序
守护程序分为2种处理模式:
第一个是stand alone状态的,表示该程序始终监听,一直处于运行状态,例如httpd
第二个是super daemon,它始终处于sleep状态,直到有人唤醒它,xinetd就是一个super daemon,但它的使命是将一个请求转给其他服务,也就是服务的管理者


推荐阅读
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • Linux网络安装指南
    本文详细介绍了如何通过网络安装Linux操作系统,包括必要的服务配置和常见问题解决方法,旨在帮助IT专业人士提高系统部署效率。 ... [详细]
author-avatar
维他柠檬鱼1949
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有