學習 Telnet 命令以測試和解決連接問題

已發表: 2022-11-22

Telnet 是一種流行的網絡協議,可讓您以虛擬方式連接到遠程計算機。 它是 1969 年開發的舊協議。

如今,SSH(Secure Shell) 已經取代了 Telnet。 SSH 也是一種網絡通信協議,可讓網絡和系統管理員安全地連接到遠程計算機。

至於 Telnet,它現在主要用於解決和測試連接問題。 學習 Telnet 命令可以幫助您更好地管理網絡。

在本文中,我們將仔細研究 telnet 命令,包括了解它的工作原理以及如何解決連接問題。 讓我們開始吧。

什麼是遠程登錄?

Telnet 是一種網絡協議,代表Teletype Net work。 它提供了一個命令行界面/解釋器來與遠程服務器進行通信。 系統和網絡管理員使用 Telnet 的終端到終端通信來獲得遠程控制並執行不同的操作,例如初始設備設置。

為了便於使用 Telnet 協議,您需要 Telnet Client。 客戶端使用戶能夠通過 TCP/IP 在遠程系統上登錄和使用應用程序。 Telnet 客戶端使用 Telnet 服務器應用程序來執行操作。 此外,Telnet 客戶端可用於所有現代操作系統,例如 Windows、Linux 和 macOS。

注意:在本文中,當我們提到“Telnet”時,如果另有說明,則表示“Telnet 客戶端”。

Telnet 安全嗎?

在 1969 年成立期間,安全性並不是執行網絡任務時的主要關注點。 這就是 Telnet 不使用任何加密的原因。 由於它不安全,因此也不建議通過 TCP/IP 網絡連接到遠程客戶端。 如果這樣做,您就會暴露在可以中斷未加密數據的黑客面前。 SSH 是一個很好的替代協議,它提供了一種安全的方式來遠程連接到服務器。

Telnet 是如何工作的?

從視覺上看,Telnet 協議的工作原理如下。

互聯網
Telnet 的工作原理

Telnet 是一種面向文本的通信,它創建了一個雙向(客戶端-服務器協議)交互式通信系統。 它利用八字節連接進行傳輸。 此外,您需要連接到終端的鍵盤和屏幕才能使用 Telnet。

您從終端輸入命令以連接到遠程計算機。 連接後,Telnet 使您可以控制服務器,包括其文件和進程。

要連接到遠程服務器,用戶應在命令提示符中輸入“Telnet”。 語法是:

 telnet hostname port

連接成功後,您可以使用 Telnet 提示符輸入更多 Telnet 命令。

您可以使用 Telnet 的不同用途是:

  • 檢查開放端口
  • 編輯文件,運行程序
  • 配置交換機、路由器等網絡設備。

要結束會話,您需要在 Telnet 提示符中鍵入“Telnet”。

如何在 Windows/Linux 和 macOS 中啟用 Telnet 客戶端

Telnet 客戶端可用於所有主要平台和操作系統。 但是,您需要先安裝或啟用它,然後才能使用它。

#1。 視窗

如果您使用的是 Windows 7 或更高版本(8、10、11)或 Windows Vista,您可以按照以下步驟啟用 Telnet 客戶端:

  • 轉到開始菜單並蒐索控制面板。 您也可以通過按 Win + R 鍵然後鍵入“control”來打開控制面板。 它應該打開控制面板。
  • 現在選擇“程序”>“程序和功能”。
  • 選擇“從左窗格中打開或關閉 Windows 功能”。
  • 現在選中“Telnet 客戶端”旁邊的框,然後按“確定”。
  • 現在,一旦 Windows 啟用它並顯示消息“Windows 已完成請求的更改”,請按“關閉”。
telnet 客戶端啟用窗口
在 Windows 中啟用 Telnet

注意:您可以立即開始使用 Telnet Client,而無需重新啟動計算機。

#2。 Linux

就像 Windows 一樣,Linux 也沒有預裝 Telnet。

要在 Ubuntu 中安裝 Telnet,您需要使用以下命令。

 # sudo apt-get install telnet

注意:該命令因您的 Linux 發行版而異。

#3。 蘋果系統

MacOS 還支持 Telnet。 要安裝它,您需要使用 Homebrew。 如果未預安裝 Homebrew,則可以通過運行以下命令來安裝它:

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

它會要求您輸入管理員密碼以授權安裝。

安裝 Homebrew 後,鍵入以下命令以在 MacOS 上安裝 Telnet。

 brew install telnet

使用 Telnet 測試網絡連接並排除故障

儘管 Telnet 不是遠程連接的理想選擇,但它對於測試和排除網絡連接故障仍然很有用。

在我們繼續之前,讓我們快速瀏覽一下 Telnet 語法。

 telnet <server/host IP address> <port>

此處,服務器/主機 IP 地址是您要連接的服務器。 端口是 TCP 端口號。

例如,如果要連接到端口為 80 的服務器 IP 地址 example.com,則需要鍵入以下命令。

 telnet example.com 80

這意味著您必須事先知道遠程服務器的 IP 地址/名稱和端口號才能進行故障排除。

讓我們開始吧。

Web 服務器故障排除

Telnet 提供了一種測試服務器連通性的簡便方法。 您需要做的就是連接到服務器/主機 IP 地址和接受連接的端口。

例如,如果您在端口 532 連接到 23.45.75.22,則需要運行以下命令。

 telnet 23.45.75.22 532

從這裡開始,可能會發生兩件事:

  1. 連接到服務器成功。 它將顯示“已連接到服務器”或任何其他確認消息或等待其他輸入。
  2. 與服務器的連接不成功。 在這種情況下,您會收到諸如“連接失敗”或“連接被拒絕”之類的消息
  3. Telnet 不返回任何消息。

Telnet 嘗試連接到遠程服務器失敗的原因有多種。 此外,如果 Telnet 未返回任何錯誤消息,則可能是防火牆或防病毒軟件阻止了您端或服務器的連接。

如果我們在端口 80 連接到 geefklare.com,您會看到一個即時連接,因為它正在等待進一步的命令。

 telnet geefklare.com 80 Connected to geekflare.com. Escape character is '^]'.

現在,輸入以下命令。

 GET / HTTP/1.1 Host: geekflare.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 [Additional server output follows]

現在,查看連接到服務器的失敗嘗試。

 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 遠程訪問服務器,您還可以使用它來檢查端口是否打開。

要檢查服務器上的端口是否打開,您需要使用以下命令。

 telnet <server IP address> <port>

比如你的服務器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) 管理郵件服務器之間的通信。

您可以使用 Telnet 對 SMTP 服務器進行故障排除,以查看它們是否正在接收和發送郵件。 您向 SMTP 服務器發送手動消息請求。 如果一切正常,您會收到回复。

Telnet 讓您可以通過兩種方式測試 STMP 連接:

  1. 測試從 Internet 到您的郵件服務器的郵件流。
  2. 測試從您的郵件服務器到另一台服務器的郵件流。

要運行示例交換,請在終端中鍵入以下命令。

 telnet mail.geekflare.com 25 Trying 192.168.0.68… Connected to mail.geekflare.com Escape character is '^]'. 220-mail.geekflare.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.geekflare.com 250-geekflare.com Hello geekflare.com [192.168.3.200] 250-AUTH PLAIN LOGIN QUIT

在這裡,用戶鍵入的另外兩個命令是:

  1. EHLO 郵箱.geekflare.com
  2. 退出

ECLO 命令在使用 MAIL FROM 命令之前識別域名。 QUIT 命令退出 Telnet 會話。

如果您需要更高級的命令,請查看這篇關於使用 Telnet 測試 Exchange 服務器上的 SMTP 通信的文章。

FTP 服務器故障排除

就像 SMTP 和 Web 服務器一樣,您也可以對 FTP 服務器進行故障排除。 您需要做的就是輸入 FTP 服務器 IP 地址並連接到端口 21。

 telnet ftp.geekflare.com 21

如果嘗試成功,您現在已連接到服務器。 否則,您會看到一條錯誤消息。

 Error #0 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname)

SSH 故障排除

SSH 是安全連接的現代版本,取代了 Telnet。 您可以使用 Telnet 查看服務器是否正在運行 SSH。

為此,請使用帶有服務器 IP 地址和端口 22 的 Telnet 命令。

 telnet geekflare.com 22 Trying 192.168.0.62… Connected to geekflare.com. Escape character is '^]'. SSH-2.0-OpenSSH_5.3

最後的話

Telnet 是當今時代的便利工具。 它可以讓您成功排除網絡連接故障,而無需嚴重依賴更複雜的工具或命令行。 使用 Telnet,您可以檢查是否可以訪問 Web 服務器,查看端口是否打開,以及排除 SSH 和 FTP 故障。

您可以查看這篇關於如何解決“找不到 telnet 命令”錯誤的文章。