728x90
서비스 중인 port 연결 확인을 위해 보통 telnet 을 많이 사용한다. 웹이라면 curl 이나 wget 을 사용할 것이다.
그런데, telnet 이 설치가 안되어 있는 환경(컨테이너 또는 보안상 telnet 설치를 못하는) 에서 연결 테스트하기가 난감하다.
그럴때, 리눅스에 기본적으로 설치되는 외부 명령어인 echo 를 이용하면 연결 테스트를 할 수 있다.
# echo > /dev/tcp/www.naver.com/80
#
-> 실행 즉시 바로 프롬프트가 나오면 정상 연결
# echo > /dev/tcp/www.naver.com/80
-bash: connect: Connection timed out
-bash: /dev/tcp/www.naver.com/8081: Connection timed out
-> 실행후 타임아웃 메시지가 나오면 연결 실패
위의 방법을 응용해서 다음과 같은 스크립트를 작성할 수 있다.
# vi connect-test.sh
------------------
#! /bin/bash
while read -a LINE
do
echo > /dev/tcp/${LINE[0]}/${LINE[1]} && echo "${LINE[0]} ${LINE[1]} up" || echo "${LINE[0]} ${LINE[1]} down"
done < servers.txt
# vi server.txt
apis.naver.com 443
www.googleapis.com 443
kapi.kakao.com 443
api.kakao.com 443
# ./connect-test.sh
apis.naver.com 443 up
www.googleapis.com 443 up
kapi.kakao.com 443 up
api.kakao.com 443 up
또다른 방법으로는 curl 에서 지원하는 프로토콜 방식으로 확인할 수 있다.
curl 로 보통 주소 앞에 http 나 https 대신에 telnet 으로 바꾸고 "-v" 으로 추가해서 진행 메시지를 확인한다(-verbose).
-v 옵션을 추가안하면 "Trying ...", "connet to" 메시지가 안 보이니 추가해주는게 좋다.
% curl -v telnet://10.166.114.208:29309
* Trying 10.166.114.208:29309...
* connect to 10.166.114.208 port 29309 failed: Connection refused
* Failed to connect to 10.166.114.208 port 29309 after 9 ms: Connection refused
* Closing connection 0
curl: (7) Failed to connect to 10.166.114.208 port 29309 after 9 ms: Connection refused
% curl -v telnet://10.166.114.208:29306
* Trying 10.166.114.208:29306...
* Connected to 10.166.114.208 (10.166.114.208) port 29306 (#0)
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
* Failure writing output to destination
* Closing connection 0
예제에서는 open 안되어 있는 29309 포트로는 실패하고, open 되어 있는 29306 포트로는 연결 성공했다.
'Engineering > Linux' 카테고리의 다른 글
지난 파일 삭제 명령어 on Linux (0) | 2023.05.12 |
---|---|
yum install Could not retrieve mirrorlist error was14: HTTPS Error 404 - Not Found (0) | 2023.05.10 |
scp 로 파일 복사시 패스워드 미리 입력하는 스크립트 (0) | 2021.11.02 |
putty 에서 깨진 한글 보기 (0) | 2019.04.12 |
네트워크 설정 on CentOS 6 (0) | 2018.09.20 |