[ Linux ] telnet 말고 열린 port 확인 방법
리눅스 서버에 telnet 이 안깔린 상황이 의외로 많다
사유는
1. 회사들의 보안 강화
2. 가벼운 OS 설치를 위해 telnet을 따로 설치 않함
3. 예전에는 telnet 이 linux 기본 프로그램이었는데 최신판들은 아님
뭐 이런 경우들이 있겠다.
근데 방화벽이 열렸는지 다른 서버의 프로세스가 정상적으로 떠 있는지
확인 하기에 telnet 같이 좋은게 없는데...
대용할 수 있는 방법을 아래와 같이 적어 본다.
1. ncat
ncat -zv [ip] [port]
또는
nc -zv [ip] [port]
-z 는 열려 있는지 상태만 확인
-v 는 상세 내용 표현
tcp 가 아닌 udp 프로토콜을 확인 하고 싶으면 -u 옵션을 사용하면 됨
위의 사용예에서 보듯이 연결이 안되면 connection refused 가 나온다.
2. curl
모두가 알다시피 curl 을 linux 에서 간단하게 http 프로토콜 연결을 지원하는 tool 이다.
이걸 응용해서 다음과 같이 쓸수 있는데
curl -v [ip]:[port]
여기서 -v 는 상세 내용 표시
22번 포트로 연결 했을 때는 http 연결이기 때문에 protocol 이 안맞는 다고 나왔고
24번 포트로 연결 했을 때는 connection refused 이기 때문에 아예 연결이 안되는 것이다.
3. bash 쉘의 built in 기능 활용
echo > /dev/tcp/[ip]/[port]
위의 명령어를 실행 하고
echo $? 명령어 실행 시 0의 경우 연결 잘 됨, 1일 경우 연결 안됨이다.
물론 연결 안될때는 connection refused 로 바로 알수 있지만 더 확실하게
알고 싶을 때 0 이나 1로 확인 해보면 된다.