Linux / Unix에서 / etc / services 란 무엇입니까?

Linux 서비스 파일은 잘 알려진 포트를 저장합니다.

UNIX 운영 체제 는 서비스 파일 이라고하는 것을 / etc / services에 저장합니다. 클라이언트 응용 프로그램이 컴퓨터에서 사용할 수있는 수많은 서비스에 대한 정보를 저장합니다. 파일에는 서비스 이름, 사용하는 포트 번호 및 프로토콜 및 적용 가능한 별칭이 있습니다.

포트 번호는 Windows 컴퓨터의 호스트 파일이 호스트 이름을 IP 주소 로 매핑하는 것과 마찬가지로 특정 서비스에 매핑됩니다. 그러나 UNIX 운영 체제의 서비스 파일에는 IP 주소가 포함되어 있지 않고 대신 서비스가 TCP인지 UDP인지, 일반적인 이름이 무엇인지 등이 포함됩니다.

간단한 텍스트 편집기를 사용하여 Vim이나 Kate와 같은 / etc / services 파일을 편집 할 수 있습니다.

UNIX 서비스 파일의 예

UNIX에서 / etc / services 구성 파일의 핵심 역할은 프로그램에서 어떤 포트를 사용해야하는지 이해하기 위해 코드에서 getportbyname () 소켓 호출을 수행 할 수 있도록하는 것입니다. 예를 들어 POP3 전자 메일 데몬은 POP3가 실행되는 숫자 110을 검색하기 위해 getportbyname (POP3)을 수행합니다.

모든 POP3 데몬이 getportbyname ()을 사용하면 어떤 POP3 데몬이 실행 되더라도 언제든지 / etc / services를 편집하여 포트 번호를 재구성 할 수 있습니다.

참고 : 포트 번호의 의미를 파악하기 위해 services 파일을 사용하는 것이 신뢰할 수 없습니다. 프로그램이 사용하는 포트를 찾으려면 대신 lsof 프로그램을 사용하여 어떤 포트가 어떤 프로세스에 연결되어 있는지 정확히 알아 내야합니다. lsof를 실행하는 것이 적절하지 않은 경우보다 일반적인 참조에서 포트를 조사해야합니다.

모든 서비스 파일은 다음과 같은 구문 을 따릅니다.

이름 포트 / 프로토콜 별칭 주석

그러나이 예제 services 파일에서 볼 수 있듯이 각 데이터베이스 항목에 대한 별명 및 주석은 필요하지 않습니다.

$ cat / etc / services # # Copyright 2008 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다. # 사용에는 사용권 조항이 적용됩니다. # tcpmux 1 / tcp echo 7 / tcp echo 9 / udp discard 9 / tcp 싱크 null 폐기 9 / udp 싱크 null systat 11 / tcp 사용자 daytime 13 / tcp daytime 13 / tcp daytime 13 / udp netstat 15 / tcp 충전 19 / tcp ttytst 소스 19 / udp ttytst 소스 FTP 데이터 20 / tcp ftp 21 / tcp ssh 22 / tcp # Secure Shell telnet 23 / tcp smtp 25 / tcp 메일 시간 37 / tcp timserver 시간 37 / udp timserver 이름 42 / udp 네임 서버 whois 43 / tcp 닉네임 # 일반적으로 sri-nic swat 901 / tcp # Samba Web Adm.Tool servicetag 6481 / udp servicetag 6481 / tcp snmpd 161 / udp snmp # SMA snmp daemon $