1.什么是xinetd
维基百科:
extended internet daemon(守护进程,通常后面是d的都是守护进程):扩展的互联网守护程序,是一个运行于类unix操作系统的超级服务器,它的功能是管理网络相关的服务,由于其较高的安全性,xinetd主键取代了inetd。
xinetd监听来自网络的请求,从而启动相应的服务,他可以用来启动使用特权端口和非特权端口的服务。
man xinetd:
xinetd 执行与 inetd 相同的任务:它启动提供互联网服务的程序。
与在系统初始化时启动这些网络服务,让它们保持休眠,直到有连接请求到达才提供服务的做法不同,xinetd是唯一被启动的守护进程,它侦听各种服务在他们各自的配置文件中对应的端口,当一个请求到来时,xinetd启动合适的服务器。因此xinetd常被称为超级服务器。
2.xinetd可以管理什么
系统默认使用xinetd的服务可以分为如下几类:
1)标准的Internet服务:telnet、ftp。
2)信息服务:finger、netstat、systat。
3)邮件服务:imap、imaps、pop2、pop3、pops。
… …
分类:TCP与UDP
xinetd管理的服务可以分为两组:
- 单线程组:xinetd将启动该服务,然后xinetd将会停止为该服务处理新的请求,直到该服务死掉。这符合“单线程”(只启动一次服务)的说法,由于udp不面向连接,因此udp通常属于这组。
- 多线程组:xinetd需要为每个新的连接请求派生一个新的服务器进程(“多线程”),然后,新服务器将处理该请求,而xinetd会继续监听新请求,以便生成新的服务器,tcp服务通常属于这组。
3.xinetd配置方法
在/etc/下,关于xinetd的文件有两个,分别是(xinetd.conf.bak是自己备份的)
配置文件的格式
属性:值
service name {
attribute1 = value
attribute2 = value1 value2 ...
}
可以通过man xinetd.conf命令查看属性和值的含义:
(可参考:cnblogs)
全局(默认)配置文件xinetd.conf
用于配置默认属性,(个人理解)如果在具体服务的配置文件中没有被覆盖,那么采用默认的参数,并在最后包含各服务的配置文件所在的目录:
defaults
{
# 同一服务的同时连接数最大为60
instances = 60
# 日志相关
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
# 每秒允许的连接数最多为25,如果超过则禁用30秒
cps = 25 30
}
# 包含各服务的配置文件
includedir /etc/xinetd.d
各服务配置/etc/xinetd.d/…
对于某一个具体的目录而言,需要在/etc/xinetd.d/服务名
文件中进行配置,先看看/etc/xinetd.d
目录下的配置文件有哪些:
以telnet服务为例,查看/etc/xinetd.d/telnet
文件:
service telnet
{
disable = no # disable = no 表示该服务是执行的
flags = REUSE # 所有服务都隐式使用REUSE标志。
socket_type = stream # TCP字节流
wait = no # wait = no表示多线程组
user = root # 以root用户的身份启动telnet服务器
server = /usr/sbin/in.telnetd # telnet服务器所在的位置
log_on_failure += USERID # 日志文件
}
4./etc/services文件
- 查看/etc/services文件部分内容如下:
- /etc/services文件记录网络服务和端口的对应关系,注意,并非所有的网络服务都由xinetd管理;
- 可通过
man /etc/services
查看解释。