리눅스에서 데몬 혹은 어플리케이션이 listen 하고 있는 port 를 확인하는 방법에 대해 알아보겠습니다.
(참고) port 의 상태는 open, filtered, closed, unfiltered 가 있습니다.
1. Netstat
Netstat 는 Linux 네트워킹 시스템에 대한 정보를 확인하는데 사용되는 도구입니다. 아래와 같이 open되어있는 모든 port를 확인하는데 사용할 수 있습니다.
-l 옵션 : netstat에 모든 수신 소켓을 표시한다.
-t 옵션 : 모든 TCP 연결을 표시한다.
-u 옵션 : 모든 UDP 연결을 표시한다.
-p 옵션 : 포트에서 수신하는 어플리케이션/데몬의 이름을 표시한다.
-n 옵션 : 서비스 이름 대신 port 번호를 표시한다.
sudo netstat -ltup
2. SS
ss 명령은 open 된 소켓에 대한 정보를 표시하는 또 다른 유용한 명령입니다. 출력은 netstat 과 비슷합니다. 아래 명령은 TCP 및 UDP 연결에 대한 모든 수신 대기 포트를 숫자로 표시합니다.
sudo ss -lntu
3. nmap
nmap 은 아주 강력하고 인기있는 네트워크 탐색 도구이자 포트 스캐너입니다. 시스템에 nmap이 없을 경우 apt-get, yum, dnf 등을 이용하여 설치할 수 있습니다. nmap 은 port 스캔하는 시간이 수 초이상 걸립니다.
sudo nmap -n -PN -sT -sU -p- localhost
4. lsof
open 포트를 확인하는 마지막 방법은 Linux에서 open file을 확인하는데 사용되는 lsof 명령입니다. Unix/Linux의 모든 것은 파일로 이루어져있기때문에 스트림이나 네트워크 파일도 lsof 로 확인할 수 있습니다.
-i옵션을 사용할 경우 모든 네트워크 파일을 볼 수 있습니다.
sudo lsof -i
특정 포트를 확인하고 싶을 경우에는 하기와 같이 사용합니다.
sudo lsof -i :5555
이렇게 리눅스 시스템에서 사용하고 있는 포트를 확인할 수 있는 네 가지 방법을 확인해봤습니다. 정보 공유나 질문은 댓글로 부탁드립니다.
'프로그래밍 > 리눅스' 카테고리의 다른 글
[프로그래밍] ASCII table, 아스키 코드표 (4) | 2020.12.03 |
---|---|
[리눅스] 컴파일을 위한 Makefile - 간단 예제 simple example (1) | 2020.12.02 |
[리눅스] sftp 자동화 스크립트 - sshpass (6) | 2020.11.30 |
[리눅스] sshpass download 및 install (1) | 2020.11.30 |
[리눅스] hostname, 호스트명 변경 방법 (11) | 2020.11.27 |
댓글