연결 문제를 테스트하고 문제를 해결하는 Telnet 명령 알아보기
텔넷은 원격 컴퓨터에 가상 연결을 설정하는 데 널리 쓰이는 네트워크 프로토콜입니다. 1969년에 처음 개발된 아주 오래된 프로토콜이죠.
최근에는 SSH(Secure Shell)가 텔넷을 대체하는 추세입니다. SSH 역시 네트워크 및 시스템 관리자들이 원격 컴퓨터에 안전하게 접속할 수 있도록 돕는 네트워크 통신 프로토콜입니다.
텔넷은 현재 주로 연결 문제를 해결하거나 테스트하는 용도로 사용됩니다. 텔넷 명령어를 익히면 네트워크 관리에 큰 도움이 될 수 있습니다.
본 글에서는 텔넷 명령어 작동 방식과 연결 문제 해결 방법을 포함하여 텔넷 명령어에 대해 자세히 알아보겠습니다. 자, 시작해볼까요?
텔넷이란 무엇일까요?
텔넷(Telnet)은 Teletype Network의 약자로, 원격 서버와 소통하기 위한 명령줄 인터페이스/해석기를 제공하는 네트워크 프로토콜입니다. 시스템 및 네트워크 관리자는 텔넷을 통해 터미널 간 통신을 하며 원격 제어를 수행하거나 초기 장치 설정과 같은 다양한 작업을 수행할 수 있습니다.
텔넷 프로토콜을 사용하려면 텔넷 클라이언트가 필요합니다. 클라이언트는 사용자가 TCP/IP 네트워크를 통해 원격 시스템에 로그인하고 애플리케이션을 사용할 수 있도록 해줍니다. 텔넷 클라이언트는 텔넷 서버 애플리케이션과 함께 작동하며, Windows, Linux, macOS 등 최신 운영체제에서 모두 사용 가능합니다.
참고: 이 글에서 "텔넷"이라는 용어는 별도의 언급이 없다면 "텔넷 클라이언트"를 의미합니다.
텔넷은 안전한가요?
1969년 처음 등장했을 때 보안은 네트워크 작업에서 우선 고려 사항이 아니었습니다. 이것이 텔넷이 암호화를 사용하지 않은 이유입니다. 안전하지 않으므로 TCP/IP 네트워크를 통해 원격 클라이언트에 연결하는 것은 권장되지 않습니다. 암호화되지 않은 데이터는 해커에게 노출될 수 있기 때문입니다. SSH는 서버에 원격으로 안전하게 접속할 수 있는 훌륭한 대안 프로토콜입니다.
텔넷은 어떻게 작동할까요?
텔넷 프로토콜의 작동 방식은 다음과 같습니다.
텔넷 작동 방식
텔넷은 클라이언트-서버 양방향 통신 시스템을 만드는 텍스트 기반 통신 프로토콜입니다. 데이터를 8비트 연결을 통해 전송하며, 텔넷을 사용하려면 터미널에 연결된 키보드와 화면이 필요합니다.
터미널에서 명령을 입력하여 원격 컴퓨터에 연결할 수 있습니다. 연결이 성공하면 텔넷은 파일 및 프로세스를 포함하여 서버에 대한 제어 권한을 제공합니다.
원격 서버에 연결하려면 명령 프롬프트에서 "Telnet" 명령을 입력해야 합니다. 구문은 다음과 같습니다.
telnet 호스트이름 포트
연결에 성공하면 텔넷 프롬프트에서 더 많은 텔넷 명령어를 입력할 수 있습니다.
텔넷을 사용하여 할 수 있는 몇 가지 작업은 다음과 같습니다.
- 열린 포트 확인
- 파일 편집 및 프로그램 실행
- 스위치, 라우터 등 네트워크 장치 구성
세션을 종료하려면 텔넷 프롬프트에서 "quit" 명령어를 입력해야 합니다.
Windows/Linux 및 macOS에서 텔넷 클라이언트 활성화 방법
텔넷 클라이언트는 모든 주요 플랫폼 및 운영체제에서 사용 가능합니다. 하지만 사용하기 전에 설치하거나 활성화해야 합니다.
#1. Windows
Windows 7 이상(8, 10, 11) 또는 Windows Vista를 사용하고 있다면 다음 단계에 따라 텔넷 클라이언트를 활성화할 수 있습니다.
- 시작 메뉴에서 제어판을 검색합니다. Win + R 키를 누른 다음 "control"을 입력하여 제어판을 열 수도 있습니다.
- 제어판이 열리면 "프로그램" > "프로그램 및 기능"을 선택합니다.
- 왼쪽 창에서 "Windows 기능 켜기/끄기"를 클릭합니다.
- "텔넷 클라이언트" 옆의 상자를 선택하고 "확인" 버튼을 누릅니다.
- 이제 Windows가 기능을 활성화하고 "Windows가 요청한 변경을 완료했습니다."라는 메시지가 나타나면 "닫기" 버튼을 클릭합니다.
Windows에서 텔넷 활성화
참고: 컴퓨터를 다시 시작하지 않고 바로 텔넷 클라이언트를 사용할 수 있습니다.
#2. Linux
Windows와 마찬가지로 Linux에도 텔넷이 미리 설치되어 있지 않습니다.
Ubuntu에 텔넷을 설치하려면 다음 명령어를 사용해야 합니다.
# sudo apt-get install telnet
참고: 명령어는 Linux 배포판에 따라 다를 수 있습니다.
#3. macOS
macOS 또한 텔넷을 지원합니다. 설치하려면 Homebrew를 사용해야 합니다. Homebrew가 미리 설치되어 있지 않다면 다음 명령어를 실행하여 설치할 수 있습니다.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
설치를 승인하기 위해 관리자 암호를 입력해야 할 수 있습니다.
Homebrew가 설치되었다면 다음 명령어를 입력하여 macOS에 텔넷을 설치합니다.
brew install telnet
텔넷을 사용하여 네트워크 연결 테스트 및 문제 해결
텔넷은 원격 연결에 이상적이지 않을 수 있지만, 네트워크 연결을 테스트하고 문제를 해결하는 데 여전히 유용합니다.
진행하기 전에 텔넷 구문을 간단히 살펴보겠습니다.
telnet <서버/호스트 IP 주소> <포트>
여기서 서버/호스트 IP 주소는 연결하려는 서버이고, 포트는 TCP 포트 번호입니다.
예를 들어 서버 IP 주소 example.com의 80번 포트로 연결하려면 다음 명령어를 입력해야 합니다.
telnet example.com 80
즉, 문제를 해결하기 전에 원격 서버의 IP 주소 또는 이름과 포트 번호를 미리 알아야 합니다.
자, 시작해볼까요.
웹 서버 문제 해결
텔넷은 서버 연결을 테스트하는 간편한 방법을 제공합니다. 서버/호스트 IP 주소와 연결을 허용하는 포트에 연결하기만 하면 됩니다.
예를 들어 23.45.75.22 주소의 532번 포트에 연결하는 경우 다음 명령어를 실행해야 합니다.
telnet 23.45.75.22 532
여기서 다음과 같은 세 가지 결과가 나타날 수 있습니다.
- 서버에 성공적으로 연결되었습니다. "서버에 연결됨"과 같은 확인 메시지가 표시되거나 추가 입력을 기다립니다.
- 서버 연결에 실패했습니다. 이 경우 "연결 실패" 또는 "연결 거부"와 같은 메시지가 표시될 수 있습니다.
- 텔넷이 아무 메시지도 반환하지 않습니다.
텔넷으로 원격 서버 연결 시도가 실패하는 데는 여러 가지 이유가 있습니다. 또한 텔넷이 오류 메시지를 반환하지 않는 경우 방화벽이나 백신 소프트웨어가 사용자 쪽 또는 서버 쪽에서 연결을 차단하고 있을 수 있습니다.
80번 포트로 geefklare.com에 연결하면 즉시 연결되고 추가 명령을 기다리는 것을 볼 수 있습니다.
telnet geefklare.com 80 Connected to koreantech.org.com. Escape character is '^]'.
이제 다음 명령어를 입력해보십시오.
GET / HTTP/1.1 Host: koreantech.org.com
그러면 다음과 같은 응답이 반환됩니다.
HTTP/1.1 200 OK Date: Fri, 18 Nov 2022 04:40:33 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 X-Frame-Options: SAMEORIGIN Referrer-Policy: same-origin Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 [추가 서버 출력]
이제 서버 연결 실패 사례를 살펴보겠습니다.
telnet 23.45.75.222 532 Connecting To 23.45.75.222...Could not open a connection to the host on port 532: Connect failed
포트가 열려 있는지 확인
텔넷을 통해 서버에 원격으로 접근할 수 있다면 포트가 열려 있는지 확인하는 데 사용할 수도 있습니다.
서버의 포트가 열려 있는지 확인하려면 다음 명령어를 사용해야 합니다.
telnet <서버 IP 주소> <포트>
예를 들어 서버 IP 주소가 23.45.47.53이고 확인하려는 포트가 532라고 가정해보겠습니다.
telnet 23.45.47.53 532
명령이 성공적으로 실행되면 포트가 열려 있다는 의미로 빈 화면이 나타납니다. "connecting..."이라고 표시된 후 오류 메시지가 나타나면 포트가 열려 있지 않은 것입니다.
Connection to 23.45.47.53:532 - fail Error #110 (Connection timed out)
SMTP 메일 서버 문제 해결
SMTP(Simple Mail Transfer Protocol)는 메일 서버 간 통신을 관리합니다.
텔넷으로 SMTP 서버 문제를 해결하여 메시지를 주고받을 수 있는지 확인할 수 있습니다. SMTP 서버에 수동으로 메시지 요청을 보내고, 모든 것이 정상이라면 응답을 받게 됩니다.
텔넷을 사용하면 두 가지 방식으로 SMTP 연결을 테스트할 수 있습니다.
- 인터넷에서 메일 서버로의 메일 흐름 테스트
- 메일 서버에서 다른 서버로의 메일 흐름 테스트
샘플 교환을 실행하려면 터미널에 다음 명령어를 입력합니다.
telnet mail.koreantech.org.com 25 Trying 192.168.0.68… Connected to mail.koreantech.org.com Escape character is '^]'. 220-mail.koreantech.org.com ESMTP Exim 4.7 220-We do not authorize the use of this system to 220 transport unsolicited and/or bulk e-mail.
EHLO mail.koreantech.org.com 250-koreantech.org.com Hello koreantech.org.com [192.168.3.200] 250-AUTH PLAIN LOGIN QUIT
여기서 사용자가 입력한 두 가지 명령어는 다음과 같습니다.
- EHLO mail.koreantech.org.com
- QUIT
ECLO 명령어는 MAIL FROM 명령어를 사용하기 전에 도메인 이름을 식별합니다. QUIT 명령어는 텔넷 세션을 종료합니다.
보다 고급 명령어가 필요한 경우 텔넷을 사용하여 Exchange 서버에서 SMTP 통신을 테스트하는 방법을 다룬 문서를 참고하십시오.
FTP 서버 문제 해결
SMTP 및 웹 서버와 마찬가지로 FTP 서버 문제도 해결할 수 있습니다. FTP 서버 IP 주소를 입력하고 21번 포트에 연결하기만 하면 됩니다.
telnet ftp.koreantech.org.com 21
연결 시도가 성공하면 서버에 연결된 것입니다. 그렇지 않다면 오류 메시지가 표시됩니다.
Error #0 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname)
SSH 문제 해결
SSH는 안전한 연결을 위한 최신 기술로 텔넷을 대체합니다. 텔넷을 사용하여 서버가 SSH를 실행 중인지 확인할 수 있습니다.
이렇게 하려면 서버 IP 주소 및 22번 포트와 함께 텔넷 명령어를 사용합니다.
telnet koreantech.org.com 22 Trying 192.168.0.62… Connected to koreantech.org.com. Escape character is '^]'. SSH-2.0-OpenSSH_5.3
마무리
텔넷은 현재도 유용한 도구입니다. 복잡한 도구나 명령줄에 크게 의존하지 않고도 네트워크 연결 문제를 성공적으로 해결할 수 있습니다. 텔넷을 사용하여 웹 서버에 액세스할 수 있는지 확인하고, 포트가 열려 있는지 확인하며, SSH 및 FTP 문제를 해결할 수 있습니다.
‘텔넷 명령어를 찾을 수 없습니다’ 오류를 해결하는 방법에 대한 이 글을 확인해볼 수도 있습니다.