Linux 환경에서 서버의 특정 포트가 열려 있는지 확인하고 싶을 때, 사용하는 명령에 대하여 알아본다.
ncat을 사용한 포트 Open 확인
ncat(nc)은 네트워크 도구로, TCP/UDP 연결을 열고, 데이터를 전송하고, 포트를 검사하는 등 다양한 네트워크 작업을 수행할 수 있습니다.
ncat 사용법 :
nc -zv [IP] [Port]
ncat 옵션 :
- -z : 연결만 시도 (데이터 전송 X)
- -v : 상세 출력
- -u : UDP 프로토콜 사용
Example :
root@ubt2404-01:~# nc -zv 192.168.0.90 6160
Connection to 192.168.0.90 6160 port [tcp/*] succeeded!
root@ubt2404-01:~# nc -zv 192.168.0.90 6163
nc: connect to 192.168.0.90 port 6163 (tcp) failed: Connection timed out
대상 서버(192.168.0.90)에서 6160/tcp 포트는 Open되어 있고, 6163/tcp 포트는 Close 상태이거나 방화벽 등에 의해 차단됨을 나타낸다.
nmap 명령을 사용한 포트 Open 확인
nmap은 네트워크 스캔, 보안 취약점 탐지, 서비스 확인 등을 위한 강력한 오픈소스 도구다. nmap(Network Mapper)을 사용해서 서버의 특정 포트가 열려 있는지 확인할 수 있다.
nmap 사용법 :
nmap -p [Port] [IP]
주요 상태(STATE) 코드 :
- open : 포트가 열려 있고 서비스가 응답 중
- closed : 포트는 열려 있지 않지만 대상 시스템은 응답함
- filtered : 방화벽 등의 이유로 상태를 판별할 수 없음
- unfiltered : 포트는 열려 있지 않지만 필터링도 되지 않음
- `open : filtered`
- `closed : filtered`
Example :
root@ubt2404-01:~# nmap -p 6160 192.168.0.90
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-29 14:50 KST
Nmap scan report for vbr-01.ste01.com (192.168.0.90)
Host is up (0.00035s latency).
PORT STATE SERVICE
6160/tcp open ecmp
MAC Address: 00:0C:29:47:0F:76 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
root@ubt2404-01:~# nmap -p 6163 192.168.0.90
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-29 14:50 KST
Nmap scan report for vbr-01.ste01.com (192.168.0.90)
Host is up (0.00027s latency).
PORT STATE SERVICE
6163/tcp filtered pscribe
MAC Address: 00:0C:29:47:0F:76 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.29 seconds
대상 서버(192.168.0.90)에서 6160/tcp 포트는 Open 상태이고, 6163/tcp 포트는 filtered 상태이므로 방화벽 등의 이유로 상태를 판별할 수 없음을 나타낸다.
bash의 네트워크 리다이렉션 기능을 사용한 포트 Open 확인
bash 쉘의 built-in 기능 활용하여 서버의 특정 포트가 열려 있는지 확인할 수 있다.
bash의 network redirection 기능 사용법 :
echo > /dev/tcp/[ip]/[port]
실행 결과 확인 :
# echo $?
- 0 - 연결 성공
- 1- 연결 실패
Example :
root@ubt2404-01:~# echo > /dev/tcp/192.168.0.90/6160
root@ubt2404-01:~# echo $?
0
root@ubt2404-01:~# echo > /dev/tcp/192.168.0.90/6163
-bash: connect: Connection timed out
-bash: /dev/tcp/192.168.0.90/6163: Connection timed out
root@ubt2404-01:~# echo $?
1
대상 서버(192.168.0.90)에서 6160/tcp 포트는 $? 결과가 0이므로 Open 상태이고, 6163/tcp 포트는 $? 결과가 1이므로 Connection Refused 상태임을 나타낸다.
참고
Different ways to use /dev/tcp/host/port command and where to find manual pages on this
리눅스에서 특정 서버 포트 확인 : nmap 활용 가이드
'백업환경 > Endpoints' 카테고리의 다른 글
| [Windows] Windows에서 특정 포트 Open 확인 (0) | 2025.10.29 |
|---|---|
| [Windows] Windows Defender 방화벽 On/Off (netsh 명령어) (0) | 2025.10.29 |