Перевірте підключення до сервера на порту UDP


14

Я хочу знати, чи машина HP-UX може спілкуватися з віддаленою машиною (над якою я не контролюю) на певному порту за допомогою UDP.

Я спробував telnet, але він, схоже, не підтримує UDP. Я б використовував netcat, але мені не вдалося знайти жодного пакета. Ця машина є у виробництві, тому я не хочу заплутатись над компіляцією чи встановленням речей занадто багато ... (nmap, netcat від джерела ...)

Будь-який простий спосіб зробити це?

Відповіді:


16

Пінгінг UDP-порту є дещо складним, оскільки немає підключень . Якщо у вас немає контролю над віддаленим хостом, ви, можливо, ніколи не дізнаєтесь, чи дійсно приймаються ваші дейтаграми UDP. Я припускаю , що ви вже знаєте , чи доступний віддалений хост, через ping, traceroute, mtrі т.д. (Якщо немає, перевірте , що першим!)

Далі, оскільки у вас немає 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))

Незалежно від того, як ви збираєтеся генерувати ваш пакет "ping" UDP, ви хочете знати, чи отримала його ціль. Якщо цільовий порт відкритий (тобто служба прослуховується на даному порті), то те, що відбувається, буде визначено додатком. Сподіваємось, ви помітите певну поведінку чи вказівку з віддаленої системи.

Якщо цільовий порт закритий (тобто жодна служба не прослуховується на цьому порту), вам слід отримати відповідь пакета помилок ICMP у відповідь. Використовуйте улюблений нюховий мережевий sniffer, щоб стежити за ним. Або, можливо, ваша система 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 працює на все!
Шойб Хан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.