Verifikasi konektivitas ke server pada port UDP

14

Saya ingin tahu apakah mesin HP-UX dapat berkomunikasi dengan mesin jarak jauh (yang tidak saya kendalikan) pada port tertentu menggunakan UDP.

Saya mencoba telnet, tetapi sepertinya tidak mendukung UDP. Saya akan menggunakan netcat, tetapi saya tidak dapat menemukan bundel apa pun. Mesin ini dalam produksi jadi saya tidak ingin mengacaukan komplain atau menginstal banyak hal ... (nmap, netcat dari sumber ...)

Adakah cara sederhana untuk melakukan ini?

skinp
sumber

Jawaban:

16

Ping port UDP agak rumit, karena tidak ada koneksi , per se. Jika Anda tidak memiliki kendali atas host jarak jauh, maka Anda mungkin tidak pernah benar-benar tahu apakah datagram UDP Anda benar-benar diterima. Saya berasumsi Anda sudah tahu apakah remote host dapat dicapai, melalui ping, traceroute, mtr, dll (Jika tidak, periksa pertama!)

Selanjutnya, karena Anda tidak punya netcat, Anda perlu cara menghasilkan paket UDP.

The bashshell mengirimkan paket UDP ketika Anda mengarahkan data ke perangkat khusus /dev/udp/host/port. Sebagai contoh:

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

Python, tentu saja, juga sepenuhnya mampu UDP, misalnya

#!/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))

Terlepas dari bagaimana Anda membuat paket UDP "ping", Anda pasti ingin tahu apakah target menerimanya. Jika port target terbuka (yaitu layanan mendengarkan di port yang diberikan), maka apa yang terjadi akan ditentukan oleh aplikasi. Mudah-mudahan, Anda akan melihat beberapa perilaku atau indikasi dari sistem jarak jauh.

Jika port target ditutup (yaitu tidak ada layanan mendengarkan di port itu), maka Anda harus mendapatkan paket kesalahan ICMP kembali sebagai respons. Gunakan sniffer jaringan tingkat-kawat favorit Anda untuk melihatnya. Atau, mungkin sistem HP-UX Anda mencatat kesalahan ICMP di suatu tempat (maaf, saya tidak punya pengalaman dengan HP-UX).

Sayangnya, jika target di-firewall, Anda mungkin tidak mendapatkan respons ketika port target ditutup. Satu-satunya cara jitu untuk mengetahui apakah host jarak jauh responsif adalah dengan menjalankan aplikasi Anda yang bergantung pada data-UDP dan mengawasi lalu lintas jaringan.

Steven Monday
sumber
10

Anda bisa menggunakannya netcat. Di OSX, ini adalah perintah saya:

$ 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
f01
sumber
Sempurna, nc bekerja untuk semuanya!
Shoaib Khan