services - список
служб сети
Интернет
services — это
простой
файл в
кодировке
ASCII,
обеспечивающий
распределение
соответствующих
текстовых
имён между
службами
интернет,
связанных
с ними
назначений
портов и
типов
протоколов.
Любая
сетевая
программа
должна
сначала
обратиться
к этому
файлу для
получения
номера
порта (и
протокола)
для своей
службы.
Функции
библиотеки
C
getservent(3),
getservbyname(3),
getservbyport(3),
setservent(3) и
endservent(3)
выполняют
запросы
программ к
этому
файлу.
Номера
портов
назначаются
IANA (Internet Assigned Numbers Authority), и их
текущей
политикой
является
указание TCP- и
UDP-протоколов
при
назначении
номера
порта.
Следовательно,
большинство
элементов
будет
иметь
двойные
значения
даже для
служб,
которые
используют
только TCP.
Номера
портов
меньше 1024
(так
называемые
«привилегированные»
порты)
могут быть
задействованы
только
суперпользователем
(смотрите
bind(2),
tcp(7) и
udp(7)).
Это
делается
для того,
чтобы
клиенты,
подключающиеся
к
привилегированным
портам,
могли не
сомневаться
в том, что
служба,
работающая
на порту,
обеспечивает
стандартную
реализацию,
и не
является
«подставной»
службой
какого-нибудь
пользователя
в машине.
Известные
номера
портов,
определённые
IANA, обычно
располагаются
только в
пространстве
суперпользователя.
Присутствие
элемента
службы в
файле
services не
обязательно
означает,
что эта
служба
сейчас
запущена
на машине.
Смотрите
inetd.conf(5) для
знакомства
с
настройкой
служб
интернета.
Заметим,
что не все
сетевые
службы
запускаются
с помощью
inetd(8), и
поэтому
могут
отсутствовать
в
inetd.conf(5). В
частности,
серверы
новостей (NNTP)
и почтовые
серверы (SMTP)
часто
запускаются
с помощью
системных
загрузочных
сценариев.
Расположение
файла
services
определяется
_PATH_SERVICES в
<netdb.h>.
Обычно
значением
является
/etc/services.
Каждая
строка
определяет
одну
службу и
имеет
следующий
формат:
-
имя-службы порт/протокол [псевдонимы
...]
- где:
- имя-службы
- Известное
имя службы,
по
которому
она в
дальнейшем
будет
определяться.
Регистр
символов
имеет
значение.
Часто
клиентские
программы
называются
по
имени-службы.
- порт
- Номер
порта (в
десятичном
формате),
используемый
данной
службой.
- протокол
- Тип
протокола,
который
будет
использоваться.
Это поле
должно
совпадать
с
элементом
в файле protocols(5).
Обычно,
значением
является
tcp и udp.
- псевдонимы
- Дополнительный
список
имён этой
службы,
разделённых
символами
табуляции
или
пробелами.
Снова
заметим,
что имеет
значение
регистр
символов.
Для
разделения
полей
могут
использоваться
пробелы
или
символы
табуляции.
Комментарии
начинаются
с символа
решетки (#) и
продолжаются
до конца
строки.
Пустые
строки
пропускаются.
Имя службы
должно
начинаться
с первого
столбца
файла, так
как
начальные
пробелы не
удаляются
В
имени
службы
могут
использоваться
любые
печатные
символы
(исключая
пробелы и
символы
табуляции).
Однако,
лучше
использовать
стандартный
набор
символов
для
уменьшения
проблем с
совместимостью.
Например, a-z, 0-9
и дефис (-)
наиболее
подходящий
набор.
В файле не
должно
быть строк
в другом
формате (в
данный
момент они
просто
пропускаются
программами
getservent(3),
getservbyname(3) и
getservbyport(3). Однако,
на это не
стоит
полагаться).
Данный
файл может
распространяться
по сети с
помощью
сетевых
служб имён,
таких как Yellow
Pages/NIS или BIND/Hesiod.
Пример
файла
services:
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send protocol
msp 18/udp # message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp 21/tcp
# 22 - unassigned
telnet 23/tcp
- /etc/services
- список
сетевых
служб
интернет
- <netdb.h>
- Определение
_PATH_SERVICES
listen(2),
endservent(3),
getservbyname(3),
getservbyport(3),
getservent(3),
setservent(3),
inetd.conf(5),
protocols(5),
inetd(8)
RFC с
назначенными
номерами,
последний
RFC 1700, (т.н. STD0002).
Русский
перевод
этой
страницы
руководства
был сделан
Alexander Golubev <
[email protected]>, Azamat Hackimov
<
[email protected]>, Hotellook, Nikita
<
[email protected]>, Spiros Georgaras <
[email protected]>, Vladislav
<
[email protected]>, Yuri Kozlov <
[email protected]>
и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]