UDPポート上のサーバーへの接続を確認する


14

HP-UXマシンがUDPを使用して特定のポートでリモートマシン(私は制御できません)と通信できるかどうかを知りたいです。

telnetを試しましたが、UDPをサポートしているようには見えません。netcatを使用しますが、バンドルが見つかりませんでした。このマシンは生産中ですので、コンパイルやインストールに煩わされたくありません...(nmap、netcat from source ...)

これを行う簡単な方法はありますか?

回答:


16

UDPポートへのPingは、本質的に接続がないため、一種の注意が必要です。リモートホストを制御できない場合、UDPデータグラムが実際に受信されているかどうかを実際に知ることはできません。私は経由して、すでにリモートホストが到達可能であるかどうかを知っていると仮定pingtraceroutemtr、など(ない場合は、その最初のチェック!)

次に、がないためnetcat、UDPパケットを生成する何らかの方法が必要になります。

bashあなたは特別なデバイスにデータをリダイレクトする場合、シェルは、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データ依存アプリケーションを実行し、ネットワークトラフィックを監視することです。


10

を使用できますnetcat。OSXでは、これは私のコマンドです:

$ nc -vnzu <IP> <PORT>
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif (null)
src <SOURCE IP> port <SOURCE PORT>
dst <DEST IP> port <DEST PORT>
rank info not available

完璧、ncはすべてに対応しています!
ショエイブ・カーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.