• ACL이나 보안 그룹(security group)으로 포트가 막혀 있는지, 열려있는지 확인하는 방법
  • 보통은 ping 같은 명령어로 ICMP 패킷을 쏴보고 해당 서버가 살아있는지 먼저 확인
  • ping으로는 살아 있는데, ssh 나 http 같은 건 안 되는 경우에, TCP 포트가 열려 있는 상태 확인
  • /dev/의 built-in에 대해서 조금 더 자세한 내용 참고 URL : https://tldp.org/LDP/abs/html/devref1.html

1. tcping

  • TCP SYN 패킷을 보내서 해당 포트가 열려 있는지 확인해주는 간단한 프로그램
  • 서버의 네트웍 연결 상태를 확인할 때, ping 차단(ICMP차단)된 서버의 네트웍 상태를 TCP를 통해 특정 tcp포트 확인
  • "telnet 서버주소 포트" 시도 후 'Escape character is "]"' 문자열이 보이는지 확인하여 연결 상태를 확인 가능
  • tcping을 쓰게 되면, ping처럼 round-trip time을 출력
  • TCP 연결 속도도 확인 가능
  • TCP 연결은 최대한 빠르게 처리하기 때문에 latency를 좀 더 정확히 보려면 ping보다는 tcpping을 써야 함
  • tcpping 명령어를 사용하기 위해서 tcping 패키지 설치 필요

    $ yum install -y tcping
    
    # 설치된 tcping 명령어 위치 확인
    $ which tcping
    /usr/bin/tcping
  • tcping 명령어 사용 예시

    # Open된 포트에서 tcping을 통해 접속 확인
    $ tcping -t 5 www.daum.net 80
    www.daum.net port 80 open.
    
    # Close된 포트에서 tcping을 통해 접속 확인
    $ tcping -t 5 www.daum.net 8080
    www.daum.net port 8080 closed.



2. telnet <IP><PORT>

  • 텔넷으로 IP, port를 명시하면 해당 서버에 저 포트가 열려 있는지 간단히 확인 가능
  • 연결 → 서버 연결되면 명령어가 입력이 안되기에 Ctrl+']' 를 누르시면 텔넷 프롬프트가 출력
  • 텔넷 프롬프트가 출력될 때 quit을 입력하여 종료
  • telnet 명령어 사용 예시

    # Close된 포트에서 telnet 접속 요청
    $ telnet 127.0.0.1 10002
    Trying 127.0.0.1...
    telnet: Unable to connect to remote host: Connection refused
    
    # Open된 포트에서 telnet 접속 요청
    $ telnet 127.0.0.1 22
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.1
    ^C^]
    telnet> quit
    Connection closed.



3. echo > /dev/tcp/<ip>/<port>

  • bash의 built-in 기능

  • /dev/tcp를 이용하면 wget이나 curl이 없어도 파일을 받아올 수 있음

  • 포트가 열려 있는 경우라면, 아무 메시지가 나오지 않은 상태로 끝남

  • echo $?을 통해 이전 명령어의 결과를 출력하면 0이 나옴

  • 바로 전 실행 명령이 0이면 정상적으로 끝났다는 유닉스 세계의 메시지

    $ echo > /dev/tcp/127.0.0.1/22
    $ echo $?
    0
  • 포트가 열려 있지 않은 경우에는 에러 메시지도 나오며, $?의 값이 1로 나옴 → 성공적으로 연결 X
    $ echo > /dev/tcp/127.0.0.1/10002
    bash: connect: 연결이 거부됨
    bash: /dev/tcp/127.0.0.1/10002: 연결이 거부됨
    $ echo $?
    1

+ Recent posts