contents
下一页: 远程过程调用 上一级: 各种网络应用 上一页: tcpd 访问控制

服务和协议文件

某些“标准”服务所提供的端口号在“分配的号码” RFC 中定义。 为了使服务器和客户端程序能够将服务名称转换为这些数字,至少列表的一部分保存在每个主机上;它存储在一个名为 /etc/services 的文件中。 一个条目的组成如下所示:
           service port/protocol   [aliases]

在此,service 指定服务名称,port 定义了服务所提供的端口,而 protocol 定义了所使用的传输协议。 通常,这是 udp 或 tcp。 服务可以在多个协议上提供,以及在同一端口上提供不同的服务,只要协议不同即可。 aliases 字段允许指定相同服务的备用名称。

通常,您无需更改系统上网络软件附带的 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 (Contr
           telnet        23/tcp                 # Virtual Terminal Protocol
           smtp          25/tcp                 # Simple Mail Transfer Protocol
           nntp         119/tcp  readnews       # Network News Transfer Protoco
           #
            # 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 use
           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 守护程序(通知用户新收到的邮件,请参阅 xbiff(1x)),通过 UDP,以及用于远程执行 (rexec(1)),使用 TCP。

与 services 文件类似,网络库需要一种方法来将协议名称(例如,services 文件中使用的协议名称)转换为其他主机上的 IP 层可以理解的协议号。 这是通过在 /etc/protocols 文件中查找名称来完成的。 它包含每行一个条目,每个条目包含一个协议名称和关联的数字。 触摸此文件的可能性甚至比修改 /etc/services 的可能性还要小。 下面给出了一个示例文件: # # Internet (IP) 协议 # ip 0 IP # internet 协议,伪协议 icmp 1 ICMP # internet 控制消息协议 igmp 2 IGMP # internet 组播协议 tcp 6 TCP # 传输控制协议 udp 17 UDP # 用户数据报协议 raw 255 RAW # RAW IP 接口


contents
Next: Remote Procedure Call Up: Various Network Applications Previous: The tcpd access control

Andrew Anderson
Thu Mar 7 23:22:06 EST 1996