Unix 서버에서 사용 가능한 포트 목록을 얻는 방법

Unix 서버에서 사용 가능한 포트 목록을 얻는 방법

모든 유형의 네트워크 통신에 사용 가능한 Solaris 컴퓨터의 포트를 알아야 합니다.

나는 netstat -a명령을 시도했다. 그러나 반환된 정보는 내가 작성 중인 새 애플리케이션에 대해 모든 포트를 사용할 수 있다는 설득력 있는 결과를 제공하지 않습니다. 이에 대한 도움을 주셔서 감사합니다.

답변1

1:UDP 또는 TCP 서비스에는 익명 포트(임시 포트라고도 함)를 사용하면 안 됩니다.

기본적으로 이러한 포트 범위는 32768 - 65535입니다.

# ndd /dev/tcp tcp_smallest_anon_port
32768
# ndd /dev/tcp tcp_largest_anon_port 
65535

2:서비스가 루트로 실행 중이거나 필수 RBAC 권한이 없는 경우 권한 있는 포트를 사용해서는 안 됩니다. 기본적으로 1부터 1024까지의 모든 포트에 권한이 부여됩니다.

# ndd /dev/tcp tcp_smallest_nonpriv_port
1024

삼:수행 중인 작업을 알지 못하는 한, 실행하려는 서비스와 다른 서비스를 실행하도록 의도된 잘 알려진 포트를 사용해서는 안 됩니다. 잘 알려진 포트는 에 나열되어 있습니다 /etc/services. 예를 들어:

# tail /etc/services
dtspc           6112/tcp                        # CDE subprocess control
fs              7100/tcp                        # Font server
solaris-audit   16162/tcp                       # Secure remote audit logging
servicetag      6481/udp
servicetag      6481/tcp
wnn6            22273/tcp                       # Wnn6 jserver
wnn6            22273/udp                       # Wnn6 jserver
rdc             121/tcp                         # SNDR server daemon
snmpd           161/udp        snmp             # Net-SNMP snmp daemon
swat            901/tcp                         # Samba Web Adm.Tool

4:기존 서비스에서 이미 사용하고 있는 포트를 사용해서는 안 됩니다. 다음을 실행하여 이를 얻을 수 있습니다.

# netstat -an | grep LISTEN | nawk '{$0=$1;gsub(".*\\.","");print}' | sort -un

5:마지막으로, 현재 비활성화되어 있지만 나중에 활성화될 수 있는 서비스에서 사용하는 포트를 사용해서는 안 됩니다. 이것은 가장 까다로운 부분입니다 ...

답변2

처음 1024개 포트에 대한 루트 권한으로 시스템에서 포트 1-65,535를 사용할 수 있습니다.

따라서 사용 가능한 포트를 찾는 대신 다음 명령을 사용하여 사용된 포트 목록을 가져올 수 있습니다.

netstat -tunlep | grep LISTEN | awk '{print $4}'

그런 다음 이러한 포트 외에도 1-65535 사이의 모든 포트를 사용할 수 있습니다.

관련 정보