inetd被称作 “Internet 超级服务器”, 因为它可以为多种服务管理连接。 当 inetd 接到连接时, 它能够确定连接所需的程序, 启动相应的进程,并把 socket 交给它 (服务 socket 会作为程序的标准输入、 输出和错误输出描述符)。 使用 inetd 来运行那些负载不重的服务有助于降低系统负载,因为它不需要为每个服务都启动独立的服务程序。
一般busybox里包含有inetd不需要特别安装,手工安装如下:
2、解压后进入netkit-base-0.17配置configure
文件有configure、MCONFIG.in、Makefile、MRULES,配置configure能生成MCONFIG后通过make安装。
由于configure会test的是你主机环境,所以需要修改configure,把文件 ./_ _conftest || exit 1;句前全加#,然后运行:
$CC=arm-linux-gcc ./configure –prefix=XXXX(
你安装的目录)
3、安装
$make
由于Makefile不适应与ARM-LINUX平台,所以不能用make install安装,需要手工安装
$cp inetd/inetd XXX/usr/sbin
$cp etc.sample/inetd.conf XXX/etc
按说明配置XXX/etc下的inetd.conf 例如远程控制
telnet stream tcp nowait root /usr/sbin/telnetd
需要开机即启动则在XXX/etc/initab下加上
::respawn:/usr/sbin/inetd –i
另:etc.sample里有很多配置例程可用,inetd包里包含了ping可用。
xinetd比inetd更优越好用,提供了访问控制,改进的日志功能和资源管理,用同样功能的,扩展了的语法取代了 inetd中的通用的行。
安装方法和inetd类似(不需要改configure),软件在
http://www.xinetd.org/可下载
下面对xinetd的配置做些说明:
1、我通常使用下面的命令启动xinetd,把它放在我的Internet服务启动脚本中:
/usr/sbin/xinetd -filelog /var/adm/xinetd.log -f /etc/xinetd.conf
这告诉 xinetd 对所有的服务都进行纪录,日志保存到文件 /var/adm/xinetd.log中,并且使用配置文件/etc/xinetd.conf。这篇文章中的大量篇幅都将用在这个配置文件上。
2、xinetd 设置参数的语法:
<
指示directive> <
操作符operator> <
值value>.
xinetd 指示符列在表一中,在这里我们将忽略 flags,type,env 和 passenv指示符。 我对将对only_from 和 no_access以及额外的日志选项加以更多的讨论
表 1. xinetd的指示符
-----------------------------------------------------------------------
指示符
描述
socket_type 网络套接字类型, 流或者数据包
protocol IP 协议, 通常是TCP或者 UDP
wait yes/no, 等同于inetd的wait/nowait
user 运行进程的用户 ID
server 执行的完整路径
server_args 传递给server的变量,或者是值
instances 可以启动的实例的最大的值
start max_load 负载均衡
log_on_success
成功启动的登记选项
log_on_failure 联机失败的时候的日志信息
only_from 接受的网络或是主机
no_access 拒绝访问的网络或是主机
disabled 用在默认的 {} 中 禁止服务
log_type 日志的类型和路径 FILE /SYSLOG
nice 运行服务的优先级
id 日志中使用的服务名
------------------------------------------------------------------------
操作符非常简单, = 或者+=。用 =,右边给定的值传给左边的指示符。 +=也是非常直接的,用于给一个已经指定的指示符添加一个值。没有它,原先的指示符就会被覆盖,这样可以用来展开访问列表,或者跨越多行。
用如下的格式描述服务:
----------------------------------
服务名
{
指示符 = 值
指示符 += 值
}
----------------------------------
服务名一定要在 /etc/services列出 ,并且要用使用合适的socket和协议。
3、日志中有几个值可以用于得到你的服务器的信息
表2 不同的日志指示值
__________________________________________________________________________
值
成功/失败
描述
PID
success 当一个连接成功时登记产生的进程的 pid
HOST
both 登记远程主机地址
USERID
both 登记远程用户的RFC 1413 ID
EXIT
success 登记产生的进程的完成
DURATION
success 登记任务持续的时间
ATTEMPT
failure 登记连接失败的原因
RECORD
failure 关于连接失败的额外的信息
__________________________________________________________________________