Номера портов для стандартных сервисов определены в документе Assigned Numbers RFC. Чтобы клиенты и серверы могли конвертировать номера портов в имена сервисов, каждая система хранит список соответствия. Он хранится в файле /etc/services. Каждая строка в этом файле имеет такой формат:
service port/protocol [aliases] |
Здесь service задает имя сервиса, port определяет номер порта, используемого этим сервисом, а protocol определяет, каким транспортным протоколом пользуется сервис. Имеется возможность различия протоколов udp или tcp. Сервис может работать с разными протоколами, а может быть два сервиса работают на одном порте, но с разными протоколами. Поле aliases позволяет задавать несколько имен (псевдонимов) для одного сервиса.
Обычно, Вы не должны менять файл сервисов в Вашей Linux-системе. Однако, я даю пример такого файла на всякий случай.
Пример 12-2. Образец файла /etc/services
# The services file: # # well-known services echo 7/tcp # Echo echo 7/udp # discard 9/tcp sink null # Discard discard 9/udp sink null # daytime 13/tcp # Daytime daytime 13/udp # chargen 19/tcp ttytst source # Character Generator chargen 19/udp ttytst source # ftp-data 20/tcp # File Transfer Protocol (Data) ftp 21/tcp # File Transfer Protocol (Control) telnet 23/tcp # Virtual Terminal Protocol smtp 25/tcp # Simple Mail Transfer Protocol nntp 119/tcp readnews # Network News Transfer Protocol # # UNIX services exec 512/tcp # BSD rexecd biff 512/udp comsat # mail notification login 513/tcp # remote login who 513/udp whod # remote who and uptime shell 514/tcp cmd # remote command, no passwd used syslog 514/udp # remote system logging printer 515/tcp spooler # remote print spooling route 520/udp router routed # routing information protocol |
Заметьте, что, например, сервис echo работает на порте 7 для обоих (TCP и UDP) протоколов, порт 512 используется для двух различных сервисов, а именно, для системы спутниковой связи COMSAT daemon по UDP и для remote execution (rexec), использующего TCP.
Кроме файла services сетевым библиотекам нужен способ преобразования имен протоколов в номера портов при работе на уровне IP с другими системами. Это делается с помощью файла /etc/protocols. Каждая его строка хранит имя протокола и соответствующий номер порта. Пример файла:
Пример 12-3. Образец файла /etc/protocols
# # Internet (IP) protocols # ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # internet group multicast protocol tcp 6 TCP # transmission control protocol udp 17 UDP # user datagram protocol raw 255 RAW # RAW IP interface |
Назад | Глобальное оглавление | Вперед |
Контроль доступа с помощью tcpd | Локальное оглавление | Процедура удаленного вызова (Remote Procedure Call) |