🖥️
텔넷이란 - 최초의 원격 터미널 접속 프로토콜
1969년 등장한 텔넷은 네트워크로 떨어진 컴퓨터의 명령줄(터미널)에 접속해 마치 앞에 앉은 것처럼 조작할 수 있게 해주는 프로토콜입니다.
텔넷(Telnet)은 인터넷의 전신인 아파넷(ARPANET) 시절부터 쓰인 매우 오래된 프로토콜로, 사용자가 입력한 키 입력을 네트워크 너머 서버로 그대로 전달하고 그 결과 화면을 다시 돌려받는 방식으로 원격 터미널 접속을 구현합니다. 오늘날 원격 서버 관리에 널리 쓰이는 SSH의 개념적 조상이라 할 수 있습니다.
🔢
기본 포트 23번과 동작 방식
텔넷은 기본적으로 TCP 23번 포트를 사용하며, 클라이언트와 서버가 연결되면 이후 모든 입출력이 그 연결을 통해 오갑니다.
텔넷 클라이언트가 서버의 23번 포트로 TCP 연결을 맺으면, 이후 사용자가 키보드로 입력하는 모든 내용이 실시간으로 서버에 전송되고 서버의 응답(화면 출력)이 그대로 클라이언트에 돌아옵니다. 로그인 절차, 명령어 실행 결과 등 모든 것이 이 하나의 텍스트 스트림으로 오갑니다.
🔓
왜 SSH로 대체됐나 - 평문 전송의 보안 문제
텔넷은 로그인 비밀번호를 포함한 모든 데이터를 암호화 없이 평문으로 주고받기 때문에, 통신 경로 중간에서 그대로 가로챌 수 있습니다.
텔넷이 설계된 시대에는 네트워크 도청에 대한 고려가 크지 않았기 때문에, 사용자 아이디와 비밀번호까지 포함한 모든 데이터가 암호화 없이 전송됩니다. 같은 네트워크에 있는 공격자가 패킷 캡처 도구만으로도 로그인 정보를 그대로 훔쳐볼 수 있다는 사실이 알려지면서, 1990년대 후반부터 모든 통신을 암호화하는 SSH(시큐어 셸)가 원격 접속의 표준으로 자리 잡았습니다.
🧪
그런데도 여전히 쓰이는 이유 - 포트 연결 테스트 도구
보안 접속용으로는 은퇴했지만, 특정 포트가 열려 있는지 빠르게 확인하는 간단한 진단 도구로는 지금도 자주 쓰입니다.
실제 로그인을 위해 텔넷을 쓰는 경우는 거의 사라졌지만, "telnet 서버주소 포트번호" 명령으로 해당 포트에 TCP 연결이 되는지만 빠르게 확인하는 용도로는 여전히 널리 쓰입니다. 연결에 성공하면 해당 포트가 열려 있고 방화벽도 막고 있지 않다는 뜻이며, 연결이 거부되거나 응답이 없으면 포트가 닫혀 있거나 경로 어딘가가 막혀 있다는 신호로 해석할 수 있습니다.
⚙️
Windows에서 telnet 명령어 활성화하는 방법
최신 Windows에는 텔넷 클라이언트가 기본적으로 꺼져 있어, "Windows 기능 켜기/끄기"에서 직접 활성화해야 명령어를 쓸 수 있습니다.
제어판의 "프로그램 및 기능"에서 "Windows 기능 켜기/끄기"로 들어가 목록에서 "텔넷 클라이언트" 항목에 체크한 뒤 확인을 누르면 설치가 진행됩니다. 설치가 끝나면 명령 프롬프트나 PowerShell에서 telnet 명령을 바로 사용할 수 있습니다. Mac과 리눅스는 대부분 기본적으로 telnet 명령이 포함되어 있거나 패키지 관리자로 손쉽게 설치할 수 있습니다.
📶
실무에서 텔넷으로 포트 열림 여부 확인하는 예시
이메일 서버의 25번 포트나 웹 서버의 80번 포트처럼, 특정 서비스가 정상적으로 열려 있는지 빠르게 확인할 때 자주 활용됩니다.
예를 들어 "telnet mail.example.com 25"를 입력했을 때 연결에 성공하고 서버의 인사말(배너)이 출력되면 해당 메일 서버의 SMTP 포트가 정상적으로 열려 있다는 뜻입니다. 반대로 "연결할 수 없습니다"라는 메시지가 나오면 방화벽이 막고 있거나 서비스가 꺼져 있을 가능성을 점검해야 합니다. 다만 어디까지나 연결 여부만 확인하는 용도이며, 실제 로그인이나 데이터 전송에는 절대 사용하지 않는 것이 안전합니다.