Linux

통신 상태 확인 방법

jih0ssang 2023. 11. 25. 15:31

참고 블로그: https://meetup.nhncloud.com/posts/204

 

IP 패킷 도착 확인

ping

  • ICMP 패킷을 보내고 다시 돌려받는 명령어
  • 특정 IP로부터 응답을 받을 수 있는지, 응답에 얼마나 걸리는지 확인
  • 보안상의 이유로 ping 응답을 막아놓는 경우도 있을 수 있음
  • 예를 들어, naver.com은 ping을 허용하지 않지만 웹 사이트를 이용하는데 문제가 없습니다.
  • ping 142.251.42.196

 

DNS 이름 해석 가능한지 여부

nslookup 

  • nslookup www.example.com

 

대상 서버의 포트가 열려 있는지 확인

telnet

  • 원격 로그인 서비스이나, 서버와 클라이언트의 통신이 가능한지 확인하는 용도로도 사용
  • 특정 IP와 특정 포트로 원격 접속
  • 원격 로그인 목적에는 telnet은 데이터를 암호화하지 않고 전송해 보안상 취약하므로, SSH(Secure Shell)이 대체함.
  • 실패하더라도 일단 붙는다. 실패하면 에러 띄워준다.
$ telnet 127.0.0.1 10002
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

$ 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.

 

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

  • wget, curl 없이도 파일 받아올 수 있음
  • BASH 쉘에서 지원하는 기능

성공

$ echo > /dev/tcp/127.0.0.1/22
$ echo $?
0

 

실패

$ echo > /dev/tcp/127.0.0.1/10002
bash: connect: 연결이 거부됨
bash: /dev/tcp/127.0.0.1/10002: 연결이 거부됨
$ echo $?
1

 

curl

  • 웹 브라우저처럼 요청을 보내고 응답을 받는 도구라고 생각하면 된다.
  • 즉 endpoint에 HTTP 프로토콜을 이용하여 PUT, POST 등의 요청을 보내고 그 결과를 확인하는 데에 활용할 수 있다. curl의 장점은 HTTP 프로토콜뿐 아니라 다양한 프로토콜을 이용할 수 있다는 점이다.
  • curl naver.com
  • curl 10.0.2.49:5432

 

라우팅 정상 동작 여부 

  • windows는 tracert,   Mac과 Linux는 traceroute
  • traceroute 8.8.8.8