리눅스 tcptraceroute 사용 방법 (포트 오픈 확인)

리눅스에서 tcptraceroute를 이용해서 TCP 연결 경로를 추적할 수 있습니다. 포트 연결 상태를 확인할 때 traceroute를 사용기도 하지만, traceroute는 ICMP 패킷을 사용하기 때문에 포트 LISTENING 상태와 상관없이 네트워크 수준에서 막힐 수가 있습니다. 반면 tcptraceroute는 TCP 패킷을 이용하기 때문에 정확히 확인이 가능합니다.

tcptraceroute

구문

tcptraceroute [대상 호스트] [포트 번호]

 

예시) TCP 연결 성공 (포트 오픈)

[root@localhost ~]# tcptraceroute naver.com 443
traceroute to naver.com (223.130.195.95), 30 hops max, 60 byte packets
 1  gateway (192.168.91.2)  0.161 ms  0.111 ms  0.085 ms
 2  223.130.195.95 (223.130.195.95) <syn,ack>  5.526 ms  5.471 ms  7.108 ms

 

traceroute

 

  • 1번 홉 : 로컬 네트워크의 게이트웨이입니다. 로컬 네트워크의 게이트웨이와 짧은 시간 내 연결이 잘 이루어지고 있습니다.
  • 2번 홉 : 네이버의 IP 주소인 223.130.195.95까지 도달하는 데 성공했고, 해당 IP에서 SYN/ACK 응답을 받았습니다. 이는 443 포트가 열려 있으며 연결을 수락하는 준비가 되어 있음을 나타냅니다. 응답 속도도 5~7ms 사이로 빠른 편입니다.

 

예시) TCP 연결 실패 (포트 오픈되지 않음)

이번엔 443이 아닌 4433 같은 열려있지 않은 포트로 TCP 패킷을 보내보겠습니다. 그럼 로컬 네트워크의 게이트웨이까지만 연결이 성공하고, 그 뒤의 홉에서는 모두 응답이 없는 것(* * *)이 확인됩니다. 패킷은 최대 홉인 30에서 멈춥니다.

[root@localhost ~]# tcptraceroute naver.com 4433
traceroute to naver.com (223.130.200.107), 30 hops max, 60 byte packets
 1  gateway (192.168.91.2)  0.177 ms  0.086 ms  0.048 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

 

반응형

댓글

Designed by JB FACTORY