행위

"리눅스 서버에서 사용 중인 포트 목록 출력하기"의 두 판 사이의 차이

라이언의 꿀팁백과

 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
40번째 줄: 40번째 줄:


[[파일:Netstat -tnlp.png|프레임없음|800x800픽셀]]
[[파일:Netstat -tnlp.png|프레임없음|800x800픽셀]]


== grep -v 127.0.0.1 ==
== grep -v 127.0.0.1 ==
55번째 줄: 56번째 줄:
|옵션 뒤에 나오는 문자열을 포함하지 않는 행만 출력
|옵션 뒤에 나오는 문자열을 포함하지 않는 행만 출력
|}
|}


== sed 's/:::/0 /g' ==
== sed 's/:::/0 /g' ==
99번째 줄: 101번째 줄:
|숫자 오름차순으로 정렬한다
|숫자 오름차순으로 정렬한다
|}
|}
[[파일:Sort.png|프레임없음]]


== 참고사항 ==
== 참고사항 ==

2022년 7월 11일 (월) 00:20 기준 최신판

아래와 같이 명령어를 입력하면 깔끔하게 현재 서버에서 사용 중인 TCP 포트 번호 목록과 프로그램명을 볼 수 있다.


netstat -tnlp | grep -v 127.0.0.1 | sed 's/:::/0 /g' | sed 's/[:\/]/ /g' | awk '{print $5"\t"$10}' | sort -ug


서버에서 사용하는 포트 번호 및 프로그램 목록.png


위 명령어를 하나씩 풀어보자.

1 netstat -tnlp[편집 | 원본 편집]

TCP 프로토콜을 사용하는 소켓 목록을 IP 주소, PID 또는 프로그램 이름과 함께 출력한다.

옵션 간략한 설명 상세한 설명
-t TCP TCP 만 출력
-n don't resolve name 숫자로 되어있는 주소를 사람이 이해하기 쉬운 도메인 이름으로 변환하지 않음 (즉, PTR 또는 리버스 도메인 조회)
-l display listening server sockets 현재 서버에서 열려있는 소켓 목록을 보여주는 옵션
-p display PID/program name for sockets 포트와 관계 있는 프로그램 이름 및 PID(프로세스 아이디)를 출력

상기 명령어를 실행하면 아래와 같은 화면을 볼 수 있다.


Netstat -tnlp.png


2 grep -v 127.0.0.1[편집 | 원본 편집]

127.0.0.1 을 포함하는 행(line)은 검색 결과에서 제외한다.

옵션 간략한 설명 상세한 설명
-v select non-matching lines 옵션 뒤에 나오는 문자열을 포함하지 않는 행만 출력


3 sed 's/:::/0 /g'[편집 | 원본 편집]

sedstream editor for filtering and transforming text 이다. 위 명령어는 스트림(stream)에 입력한 ::: 이라는 문자열을 0 으로 변경하라는 명령어다.


Sed.png

4 sed 's/[:\/]/ /g'[편집 | 원본 편집]

IP 주소 뒤에 있는 :/ 을 공백으로 변경한다.


Sed .png

5 awk '{print $5"\t"$10}'[편집 | 원본 편집]

awk 는 pattern scanning and processing language 다. 문장이 tab 으로 구분되어 있는 경우에 가장 좌측은 1번째, 그 다음 TAB 에 있는 항목은 2번째로 구분할 수 있다. 위 명령어는 결국 5번째 항목인 Address, Program 에 해당하는 내용을 출력한다.


Awk.png

6 sort -ug[편집 | 원본 편집]

sort 명령어는 단어 그대로 정렬을 하는 리눅스 프로그램이다.

옵션 간략한 설명 상세한 설명
-u - 중복된 행을 제거한다.
-g compare according to general numeric value 숫자 오름차순으로 정렬한다

Sort.png


7 참고사항[편집 | 원본 편집]

리눅스에서 파이프(|) 는 좌측에 있는 프로세스(프로그램)의 출력을 우측에 있는 프로세스(프로그램)의 입력으로 전달하는 기능을 한다.