Product SiteDocumentation Site

9.6. Суперсервер inetd

Inetd (часто называемый «Интернет-суперсервером») — это сервер серверов. Он запускает редко используемые серверы по требованию, так что им не приходится работать постоянно.
В файле /etc/inetd.conf перечисляются эти серверы и обычно используемые ими порты. Команда inetd слушает их все; когда она обнаруживает соединение с любым таким портом, она запускает соответствующую серверную программу.
Каждая значащая строка файла /etc/inetd.conf описывает сервер в сми полях (разделённых пробелами):
Следующий пример иллюстрирует наиболее распространённые случаи:

Пример 9.1. Выдержка из /etc/inetd.conf

talk   dgram  udp wait    nobody.tty /usr/sbin/in.talkd in.talkd
finger stream tcp nowait  nobody     /usr/sbin/tcpd     in.fingerd
ident  stream tcp nowait  nobody     /usr/sbin/identd   identd -i
Программа tcpd часто используется в файле /etc/inetd.conf. Она позволяет ограничить входящие сообщения, применяя правила контроля доступа, описанные на странице руководства hosts_access(5) и настраиваемые в файлах /etc/hosts.allow и /etc/hosts.deny. Когда подтверждается, что соединение разрешено, tcpd запускает настоящий сервер (in.fingerd в нашем примере). Для tcpd ничего не стоит определить, какой сервис следует запустить, по имени, под которым он был вызван (которое является первым аргументом, argv[0]). Поэтому список аргументов должен начинаться не с tcpd, а с программы, для которой он служит обёрткой.