텔넷(Telnet)으로 포트(Port) 상태 쉽게 확인하기

Telnet(Telnet)은 네트워크 관리자나 개발자들이 원격 컴퓨터와의 연결 상태를 확인하고 특정 포트의 개방 여부를 테스트하는 데 매우 유용한 도구입니다. 이 글에서는 Telnet을 사용하여 네트워크 포트 연결 상태를 확인하는 방법에 대해 상세히 알아보겠습니다.

1. 텔넷(Telnet)이란?

Telnet은 "Teletype Network Protocol"의 약자로 원격 컴퓨터에 접속하여 데이터를 주고받을 수 있는 네트워크 프로토콜입니다. Windows, macOS, Linux와 같은 다양한 운영체제에서 사용할 수 있으며, 주로 특정 포트가 열려 있는지 확인하는 데 사용됩니다.

Telnet을 활용한 포트 점검은 TCP 연결 테스트로 이루어지며, 연결이 성공하면 포트가 열려 있음을 의미하고, 실패하면 포트가 닫혀 있거나 방화벽 등에 의해 차단되었음을 나타냅니다.

2. Telnet 실행하기 위한 기본 준비

2-1. 명령 프롬프트 관리자 권한 실행 필수

Telnet을 사용하려면 Telnet 클라이언트가 활성화되어 있어야 합니다. Telnet 클라이언트를 활성화하려면 우선 명령 프롬프트를 관리자 권한으로 실행해야 합니다.

  • 윈도우 키를 누른 후 시작 메뉴에서 "cmd"를 검색합니다.
  • 검색 결과에서 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭한 후 관리자 권한으로 실행을 선택합니다.

2-2. Telnet 클라이언트 활성화하기 (명령 프롬프트)

명령 프롬프트를 관리자 권한으로 실행한 뒤 아래 명령어를 입력합니다:

Dism /Online /Enable-feature /FeatureName:TelnetClient

명령어 실행 후 Telnet 클라이언트가 활성화됩니다.

참고로 다시 비활성화 시키고 싶다면 다음 코드를 입력하면 됩니다. 위 코드에서 enable을 disable로 바꾸기만 하면 됩니다.

Dism /Online /Disable-feature /FeatureName:TelnetClient
Dism 명령어를 이용해 Windows의 TelnetClient 기능을 활성화함. "작업을 완료했습니다."라는 메시지로 완료 확인.

3. Telnet 명령어 기본 구문

Telnet 명령어의 기본 구문은 다음과 같습니다:

telnet [도메인 또는 IP] [포트]

여기서:

  • [도메인 또는 IP]는 연결하려는 서버의 도메인 이름이나 IP 주소입니다.
  • [포트]는 서버가 수신 대기 중인 포트 번호입니다.

4. Telnet 사용 예시

4-1. 성공적인 연결 예시

특정 서버의 80번 포트(HTTP 기본 포트)가 열려 있는지 확인하려면 위에서 설명한 사전 준비 후에 명령 프롬프트 창에서 다음을 입력합니다.

telnet google.com 80

연결이 성공하면 다음과 같이 명령프롬프트 창의 제목 표시줄(Title Bar)이 "Telnet google.com"으로 바뀝니다.

Telnet google.com 이 title bar에 나타남.

이는 google.com의 80번 포트가 열려 있으며 접속 가능하다는 것을 의미합니다.


4-2. 실패한 연결 예시

특정 서버의 닫혀 있는 포트(예: MySQL 기본 포트인 3306)에 연결을 시도해봅시다. 이를 위해 다음을 입력해봅니다.

참고로 3306 포트는 데이터베이스에 직접 접근 가능한 포트이기 때문에, 보안상 외부에서 접근하지 못하게 방화벽으로 막아두는 게 일반적입니다. 그렇기 때문에 연결 실패 예시로 보여드리는 것입니다.

telnet google.com 3306

위 명령어를 입력하면 연결이 실패하기 때문에 다음과 같은 오류 메시지가 표시됩니다:

telnet google.com 3306 명령어로 포트 3306(MySQL 기본 포트) 연결 시도했으나, 연결할 수 없다는 메시지 출력됨.

이는 해당 포트가 닫혀 있거나 방화벽에 의해 차단되었음을 의미합니다.

참고로 연결 대상 google.com... 상태에서 시간이 조금 흐른 후에 연결할 수 없다고 나타납니다.

5. 윈도우에서 Telnet 클라이언트 활성화 방법

윈도우 운영체제에서는 보안상의 이유로 Telnet 클라이언트가 기본적으로 비활성화되어 있습니다. Telnet을 사용하기 전에 먼저 활성화해야 합니다.

우리는 이미 글 초반부에서, 명령 프롬프트창에서 명령어를 내려 Telnet을 활성화 시켰습니다. 그렇기 때문에, 섹션 5,6 부분은 생략하고 넘어가셔도 됩니다. '명령 프롬프트를 통한 활성화 말고도 다음과 같은 방법들이 있다는 것이 있구나' 하고 넘어가시면 됩니다.


방법 1: GUI를 통한 Telnet 활성화

  1. 제어판 열기
  2. 프로그램 및 기능 선택
  3. Windows 기능 켜기/끄기 클릭
  4. Telnet 클라이언트 옵션을 찾아 체크박스 선택
  5. 확인 버튼 클릭
  6. 변경 사항이 적용되면 닫기 버튼 클릭

방법 2: 명령 프롬프트를 통한 Telnet 활성화

관리자 권한으로 명령 프롬프트를 실행한 후 다음 명령어를 입력합니다:

Dism /Online /Enable-feature /FeatureName:TelnetClient

또는 다음 명령어를 사용할 수도 있습니다:

pkgmgr /iu:"TelnetClient"

이 명령어를 실행하면 Telnet 클라이언트가 활성화됩니다.

방법 3: PowerShell을 통한 Telnet 활성화


PowerShell을 관리자 권한으로 실행한 후 다음 명령어를 입력합니다:

Install-WindowsFeature -name Telnet-Client

또는:

Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient

이 명령어를 실행하면 Telnet 클라이언트가 활성화됩니다.

6. 다양한 운영체제별 Telnet 활성화 방법

다양한 윈도우 버전에 따른 Telnet 활성화 방법을 표로 정리하면 다음과 같습니다:

운영체제 활성화 방법
Windows 7/8/10/11 제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기 > Telnet 클라이언트 체크 > 확인
Windows Server 2008 Server Manager > Features > Add Features > Telnet Client 체크박스 활성화 > Next > Install > Close
Windows Server 2012/2016 Server Manager > Add roles and features > Next(Features 단계까지) > Telnet Client 체크 > Install > Close
macOS (High Sierra 이전) 터미널에서 바로 telnet 명령어 사용 가능
macOS (High Sierra 이후) 이전 OS에서 복사하거나 소스에서 컴파일하여 사용

7. Telnet을 사용한 포트 확인의 중요성

특정 포트가 열려 있는지 닫혀 있는지 확인하는 것은 다음과 같은 이유로 중요합니다:

  1. 보안 위험 관리: 불필요하게 열려 있는 포트는 악성 프로그램이나 바이러스가 악용할 수 있는 보안 위험이 됩니다.
  2. 소프트웨어 기능 확인: 정당한 소프트웨어가 특정 포트를 통해 통신하는 경우, 해당 포트가 닫혀 있으면 프로그램이 오류를 발생시키고 오작동할 수 있습니다.
  3. 네트워크 문제 해결: 네트워크 연결 문제를 진단하는 데 도움이 됩니다.

8. 결론

Telnet은 네트워크 포트의 연결 상태를 확인하는 간단하면서도 강력한 도구입니다. 윈도우에서는 기본적으로 비활성화되어 있지만, GUI나 명령 프롬프트, PowerShell을 통해 쉽게 활성화할 수 있습니다. Telnet을 사용하여 특정 포트가 열려 있는지 닫혀 있는지 확인함으로써 네트워크 문제를 진단하고 보안 위험을 관리할 수 있습니다.

네트워크 관리자나 개발자라면 Telnet 사용법을 숙지하고 있는 것이 매우 유용할 것입니다. 특히 서버 관리나 네트워크 문제 해결 시 필수적인 도구라고 할 수 있습니다.