Telnet

驗證與 UDP 埠上的伺服器的連接

  • September 24, 2015

我想知道 HP-UX 機器是否可以使用 UDP 在特定埠上與遠端機器(我無法控制)通信。

我試過telnet,但它看起來不支持UDP。我會使用 netcat,但我找不到任何捆綁包。這台機器正在生產中,所以我不想過多地編譯或安裝東西……(nmap,netcat from source……)

有什麼簡單的方法可以做到這一點嗎?

ping UDP 埠有點棘手,因為本身沒有**連接。**如果您無法控制遠端主機,那麼您可能永遠不會真正知道您的 UDP 數據報是否真正被接收。我假設您已經知道遠端主機是否可以通過ping, traceroute,mtr等訪問。(如果沒有,請先檢查!)

接下來,由於您沒有netcat,您將需要某種生成 UDP 數據包的方法。

bash您將數據重定向到特殊設備時,shell 會發送 UDP 數據包/dev/udp/host/port。例如:

#!/bin/bash
host="10.10.10.10"
port=12345
echo "PING" >/dev/udp/$host/$port

當然,Python 也完全支持 UDP,例如

#!/bin/python
import socket
host="10.10.10.10"
port=12345
udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_sock.sendto('PING', (host, port))

無論您如何設法生成 UDP“ping”數據包,您都想知道目標是否收到了它。如果目標埠是開放的(即服務正在偵聽給定埠),那麼會發生什麼將是應用程序定義的。希望您會注意到遠端系統的一些行為或指示。

如果目標埠已關閉(即沒有服務在該埠上偵聽),那麼您應該得到一個 ICMP 錯誤數據包作為響應。使用您最喜歡的有線級網路嗅探器進行監視。或者,也許您的 HP-UX 系統在某處記錄了 ICMP 錯誤(抱歉,我對 HP-UX 沒有任何經驗)。

不幸的是,如果目標有防火牆,則在目標埠關閉時您可能不會得到響應。知道遠端主機是否響應的唯一可靠方法是執行依賴於 UDP 數據的應用程序並觀察網路流量。

引用自:https://serverfault.com/questions/193425