woonizzooni

tcping 설치 및 사용법 본문

Network

tcping 설치 및 사용법

woonizzooni 2019. 9. 17. 18:34

TL;DR

사용자 OS환경별 참고 ( 공통 : 다운로드 & PATH 설정)

 

 

Linux - Redhat 계열 (CentOS 등) 

설치
$ su - 혹은 su 
# yum install tcping
  ....
  Transaction Test Succeeded
  Running Transaction
    Installing : tcping-1.3.5-13.el6.x86_64                                                                        1/1 
    Verifying  : tcping-1.3.5-13.el6.x86_64                                                                        1/1 

  Installed:
    tcping.x86_64 0:1.3.5-13.el6                                                                                       

Complete!
# which tcping
  /usr/bin/tcping

사용법
# tcping
error: Usage: tcping [-q] [-t timeout_sec] [-u timeout_usec] 

사용예 : 너무 단순한데?? -_-
$ tcping -t 5 www.daum.net 80
  www.daum.net port 80 open.
$ tcping -t 5 www.daum.net 8080
  www.daum.net port 8080 closed.

 

Linux - Ubuntu 
참고1 : https://www.kiritostudio.com/tcping-on-ubuntu-14-04/

설치
$ sudo apt install hping3
$ which hping3
$ /usr/bin/hping3
$ sudo ln -s /usr/bin/hping3 /usr/bin/tcping <----  여기부터는 개인 취향 -_-;;;
$ which tcping
$ /usr/sbin/tcping

사용법
$ tcping --help
usage: hping3 host [options]
  -h  --help      show this help
  -v  --version   show version
  -c  --count     packet count
  -i  --interval  wait (uX for X microseconds, for example -i u1000)
      --fast      alias for -i u10000 (10 packets for second)
      --faster    alias for -i u1000 (100 packets for second)
      --flood      sent packets as fast as possible. Don't show replies.
  -n  --numeric   numeric output
  -q  --quiet     quiet
  -I  --interface interface name (otherwise default routing interface)
  -V  --verbose   verbose mode
  -D  --debug     debugging info
  -z  --bind      bind ctrl+z to ttl           (default to dst port)
  -Z  --unbind    unbind ctrl+z
      --beep      beep for every matching packet received
Mode
  default mode     TCP
  -0  --rawip      RAW IP mode
  -1  --icmp       ICMP mode
  -2  --udp        UDP mode
  -8  --scan       SCAN mode.
                   Example: hping --scan 1-30,70-90 -S www.target.host
  ..... 엄청 많은 옵션 -_-


사용예 (80포트로, 4번 시도, SYN 플래그(tcp연결시도))
$ sudo tcping aa -p 80 -c 4 -S
  HPING www.daum.net (enp0s5 203.113.167.16): S set, 40 headers + 0 data bytes
  len=48 ip=203.133.167.16 ttl=128 id=45925 sport=80 flags=SA seq=0 win=32768 rtt=8.0 ms
  len=48 ip=203.133.167.16 ttl=128 id=45926 sport=80 flags=SA seq=1 win=32768 rtt=7.7 ms
  len=48 ip=203.133.167.16 ttl=128 id=45927 sport=80 flags=SA seq=2 win=32768 rtt=15.7 ms
  len=48 ip=203.133.167.16 ttl=128 id=45928 sport=80 flags=SA seq=3 win=32768 rtt=15.6 ms

  --- www.daum.nethping statistic ---
  4 packets transmitted, 4 packets received, 0% packet loss
  round-trip min/avg/max = 7.7/11.7/15.7 ms

 

참고2 : http://xmodulo.com/how-to-install-tcpping-on-linux.html

설치
$ sudo apt install tcptraceroute

$ wget http://www.vdberg.org/~richard/tcpping
$ move tcpping tcping  <--- 이름이 tcpping이어서 그냥 내 편의상 tcping으로 변경함 -_-
$ chmod 755 tcping

사용법
$ ./tcping <--- tcptraceroute를 이용한 쉘 스크립트 파일임.
tcpping v1.7 Richard van den Berg <richard@vdberg.org>

Usage: tcpping [-d] [-c] [-C] [-w sec] [-q num] [-x count] ipaddress [port]

        -d   print timestamp before every result
        -c   print a columned result line
        -C   print in the same format as fping's -C option
        -w   wait time in seconds (defaults to 3)
        -r   repeat every n seconds (defaults to 1)
        -x   repeat n times (defaults to unlimited)

See also: man tcptraceroute

사용예
$ ./tcping -r 1 www.daum.net 
  seq 0: tcp response from 203.133.167.16 [open] 5.753 ms
  seq 1: tcp response from 203.133.167.16 [open] 5.951 ms
  ...

$ ./tcping -r 1 www.daum.net 8080
  seq 0: tcp response from 203.133.167.16 [closed] 5.614 ms
  seq 1: tcp response from 203.133.167.16 [closed] 4.868ms
  ...

** Windows10의 Ubuntu쉘에서는 이 스크립트가(= tcptraceroute) 정상동작하지 않는다 -_-;;
   (로우소켓 권한 오류? 암튼 안됨. 윈도우즈에서는 윈도우쉘에서 동작 권함)

 

 

MacOS

참고 : http://macappstore.org/tcping/

터미널열고
Homebrew미설치되어 있을 경우
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

설치
$ brew install tcping 
$ which tcping
   /usr/local/bin/tcping

사용법
$ tcping 
error: Usage: tcping [-q] [-t timeout_sec] [-u timeout_usec] 

실행 예: CentOS것과 사용법 및 실행 결과 동일
$ tcping -t 1 www.daum.net 80
www.daum.net port 80 open.
$ tcping -t 1 www.daum.net 8080
www.daum.net port 8080 closed.

 

Windows 계열

설치
원하는 위치(디렉토리)에 다운로드 :  https://elifulkerson.com/projects/tcping.php

사용 예
> tcping -t www.daum.net
> tcping -t www.daum.net 8080

사용법
> tcping
Usage: tcping [-flags] server-address [server-port]

Usage (full): tcping [-t] [-d] [-i interval] [-n times] [-w ms] [-b n] [-r times] [-s] [-v] [-j] [-js size] [-4] [-6] [-c] [-g count] [-S source_address] [--file] [--tee filename] [-h] [-u] [--post] [--head] [--proxy-port port] [--proxy-server server] [--proxy-credentials username:password] [-f] server-address [server-port]

 -t     : ping continuously until stopped via control-c
 -n 5   : for instance, send 5 pings
 -i 5   : for instance, ping every 5 seconds
 -w 0.5 : for instance, wait 0.5 seconds for a response
 -d     : include date and time on each line
 -b 1   : enable beeps (1 for on-down, 2 for on-up,
                        3 for on-change, 4 for always)
 -r 5   : for instance, relookup the hostname every 5 pings
 -s     : automatically exit on a successful ping
 -v     : print version and exit
... 옵션 다양

 


개요

 

서버의 네트웍 연결 상태를 확인하고 싶을 때,

ping차단 (=ICMP차단) 설정되어 있는 서버의 네트웍 상태를 확인하고 싶을 때,

특정 tcp포트가 열려 있는지 알고 싶을 때,

 

"telnet 서버주소 포트" 시도 후

'Escape character is "]"' 문자열이 보이는지 확인하여 연결 상태를 확인할 수 있다.

 

tcp패킷을 직접 raw소켓을 열어 syn을 보내고, ack를 받는 방법으로 확인할 수도 있고,

브라우저를 tcp클라이언트로 이용하여 'http://주소:포트' 를 시도하고

tcpdump, wireshark로 패킷을 덤프하여 syn 송신여부, ack수신여부로 연결상태를 확인할 수도 있겠다.

 

linux계열에서는 nc, nmap등으로 확인할 수도 있겠고,

windows에서는 sysinterals의 utility인 PsPing을 사용해도 되겠고...

 

이름이 동일하거나 비슷한 용도의 것을 tcping로 강제 ㅎㅎ 변경해서 정리해둔다.

 

 

'Network' 카테고리의 다른 글

홈 네트워크 구성도  (0) 2019.06.19
Comments