/etc/services 테이블에서 어떤 필드를 키로 사용할 수 있습니까?

/etc/services 테이블에서 어떤 필드를 키로 사용할 수 있습니까?

에서 /etc/services서비스 이름은 여러 쌍(전송 프로토콜, 포트 번호)을 가질 수 있습니다. 예를 들어 Linux 프로그래밍 인터페이스는 다음과 같이 말합니다.

/etc/services 파일은 다음 예와 같이 세 개의 열이 있는 줄로 구성됩니다.

# Service name  port/protocol  [aliases]

http            80/tcp                  # Hypertext Transfer Protocol
http            80/udp
ssh             22/tcp                  # Secure Shell
ssh             22/udp
telnet          23/tcp                  # Telnet
telnet          23/udp
smtp            25/tcp                  # Simple Mail Transfer Protocol
smtp            25/udp

테이블에서 키 역할을 할 수 있는 필드는 무엇입니까?

이 예에서는 서비스 이름이 여러 전송 프로토콜에 해당할 수 있음을 보여줍니다.

서비스 이름과 전송 프로토콜이 주어지면 여러 포트 번호에 해당할 수 있습니까? 즉, 서비스가 동일한 전송 프로토콜의 두 포트에서 수신 대기할 수 있습니까?

감사해요.

답변1

이 파일은 다음에 설명되어 있습니다.services(5)맨페이지, 그리고 그 사용법관련 기능에 대한 매뉴얼 페이지. 후자는 다음을 나타냅니다.오른쪽기대가 핵심입니다:

  • 이름 및 계약
  • 포트 번호 및 프로토콜.

서비스에는 별칭이 있을 수 있습니다(예에서는 설명되지 않음). www예를 들어 일반적으로 다음의 별칭입니다 http.

http            80/tcp          www             # WorldWideWeb HTTP

어떤 서비스에 대해서할 수 있는매핑 만 /etc/services제공하고 아무것도 제한하지 않습니다. 따라서 TCP에서 요청하는 사람에게는 http할당된 해당 포트가 80이라는 메시지가 표시되지만 HTTP 데몬은 원하는 모든 포트에서 수신 대기할 수 있습니다(허용됨). 마찬가지로 TCP에서 포트 80을 요청하는 사람에게 해당 이름은 다음과 같습니다 http. 그러나 이것이 포트 80에서 수신 대기하는 서버가 HTTP 서버여야 한다는 의미는 아닙니다. 또한 단일 프로세스는 여러 포트에서 수신 대기할 수 있으며 BSD 및 Linux에서는 커널 3.9부터 여러 프로세스가 동일한 포트에서 수신 대기할 수 있습니다.

관련 정보