"리눅스 서버에서 사용 중인 포트 목록 출력하기"의 두 판 사이의 차이
라이언의 꿀팁백과
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' == | ||
100번째 줄: | 102번째 줄: | ||
|} | |} | ||
[[파일:Sort.png|프레임없음]] | [[파일: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
위 명령어를 하나씩 풀어보자.
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(프로세스 아이디)를 출력 |
상기 명령어를 실행하면 아래와 같은 화면을 볼 수 있다.
2 grep -v 127.0.0.1[편집 | 원본 편집]
127.0.0.1 을 포함하는 행(line)은 검색 결과에서 제외한다.
옵션 | 간략한 설명 | 상세한 설명 |
---|---|---|
-v | select non-matching lines | 옵션 뒤에 나오는 문자열을 포함하지 않는 행만 출력 |
3 sed 's/:::/0 /g'[편집 | 원본 편집]
sed는 stream editor for filtering and transforming text 이다. 위 명령어는 스트림(stream)에 입력한 ::: 이라는 문자열을 0 으로 변경하라는 명령어다.
4 sed 's/[:\/]/ /g'[편집 | 원본 편집]
IP 주소 뒤에 있는 : 및 / 을 공백으로 변경한다.
5 awk '{print $5"\t"$10}'[편집 | 원본 편집]
awk 는 pattern scanning and processing language 다. 문장이 tab 으로 구분되어 있는 경우에 가장 좌측은 1번째, 그 다음 TAB 에 있는 항목은 2번째로 구분할 수 있다. 위 명령어는 결국 5번째 항목인 Address, Program 에 해당하는 내용을 출력한다.
6 sort -ug[편집 | 원본 편집]
sort 명령어는 단어 그대로 정렬을 하는 리눅스 프로그램이다.
옵션 | 간략한 설명 | 상세한 설명 |
---|---|---|
-u | - | 중복된 행을 제거한다. |
-g | compare according to general numeric value | 숫자 오름차순으로 정렬한다 |
7 참고사항[편집 | 원본 편집]
리눅스에서 파이프(|) 는 좌측에 있는 프로세스(프로그램)의 출력을 우측에 있는 프로세스(프로그램)의 입력으로 전달하는 기능을 한다.