728x90
반응형
  • Centos 에서 현재 사용중인 포트를 확인 하는 방법에 대해 알아보겠습니다. 

netstat 명령 

  • 리눅스에서는 netstat  명령으로 현재 litten 하고 있는 포트 정보는 내외부 네트워크연결 정보를 상세하게 확인 할수 있습니다. 
  • netstat  명령에 -tulpn 옵션을 추가하면 현재 사용중인 포트정보만 확인 가능 합니다. 
    • -t: TCP 프로토콜에 관련된 정보를 표시합니다.
    • -u: UDP 프로토콜에 관련된 정보를 표시합니다.
    • -l: 현재 리스닝 상태인 소켓만 표시합니다.
    • -p: 프로세스 ID 및 프로그램 이름과 함께 소켓 정보를 표시합니다.
    • -n: 호스트 및 포트 번호를 숫자로 표시합니다. 호스트 및 포트를 이름으로 변환하지 않습니다.

현재 사용중인 포트 체크

  • netstat 명령어를 사용하여 현재 사용 중인 포트를 확인하고 awk 사용 중인 포트만 나열 합니다.
  • 이후 sort -n 을 통해 사용중인 포트를 정렬하여 출력 합니다. 
netstat -tulpn | awk '/LISTEN/ {print $4}' | awk -F ":" '{print $NF}' | sort -n 
22

사용 가능한 포트 확인 

  • 좀더 확장하여 사용가능한 포를 확인하는 방법을 쉘스크립트를 통해 알아보겠습니다. 
  • 아래 쉘은 사용가능 한 Ranage 를 입력받고  현재 사용중인 port 리스트 중 range 가 사용자가 입력한 범위 이상의 포트 대역대만 출력 하는 스크립트입니다. 
  • read -p 를 통해 사용하고자 하는 포트 범위를 입력 합니다. 
#!/bin/bash

read -p " 원하는 포트 범위를 입력하세요:" check_port_range
echo " $check_port_range 범위 이상의 포트 범위를 체크합니다. " 



# 현재 사용 중인 포트와 포트 범위를 확인하는 스크립트
# netstat 명령어를 사용하여 현재 사용 중인 포트를 확인하고 awk로 정리합니다.
# 마지막에 sort 명령어를 사용하여 포트를 정렬합니다.

used_ports=$(netstat -tulpn | awk '/LISTEN/ {print $4}' | awk -F ":" '{print $NF}' | sort -n | uniq)


# 포트 범위를 확인하는 함수
check_port_range() {
  local start_port=$1
  local end_port=$2
  port_range=$(expr $end_port - $start_port)

  if [ $port_range -ge $check_port_range ]; then
      echo " [ $(expr $port_range ) ] :  $(expr $start_port + 1 ) ~ $(expr $end_port + 1 ) " 
    
  fi

}

# 사용 중인 포트를 확인하면서 포트 범위를 확인합니다.
IFS=$'\n'
start_port=0

echo "PORT_RANGE : START_PORT ~ END_PORT" 
echo "================================================="
for port in $used_ports; do

  check_port_range "$start_port" "$port"
  start_port=$port

done

 

728x90
반응형

+ Recent posts