에서 /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부터 여러 프로세스가 동일한 포트에서 수신 대기할 수 있습니다.