Bash

通過執行一行命令使用 telnet 測試遠端 TCP 埠

  • February 18, 2022

我有許多帶有非常有限的命令和磁碟空間的 linux 機器。但它上面有telnet命令。

我遠端連接到每個探針(以程式方式)並通過 SSH 發出一行 linux 命令。

我需要執行一個命令來連接到特定的機器,使用 telnet,然後立即斷開連接

我可以做到所有這些,但立即斷開連接。Telnet 打開某種控制台或終端,我想不出一條命令來執行 telnet 命令然後立即斷開連接。

如果我這樣做,我可以輕鬆地解析文本輸出以獲取無法連接到指定埠上的機器的錯誤消息,而這正是我正在尋找的。

那麼如何執行單行命令以使用 telnet 連接到機器並隨後斷開連接?

您應該能夠將exit命令通過管道傳輸到telnet. 嘗試:

echo 'exit' | telnet {site} {port}

看看這是否有效。(它似乎在我的網路伺服器上工作,但 YMMV)。

下面給出最簡單和最簡單的方法。

sleep <n> | telnet <server> <port>
  • n- 自動退出前的等待時間(以秒為單位)。它可能是小數,如 0.5。請注意,某些必需的輸出可能不會在指定的等待時間內返回。所以我們可能需要相應地增加。
  • server- 目標伺服器 IP 或主機名。
  • port- 目標服務埠號。

您還可以將輸出重定向到文件,如下所示:

sleep 1 | telnet <server> <port> > output.log

引用自:https://unix.stackexchange.com/questions/86556