Як переконатися, що порт UDP відкритий? [зачинено]


13

У мене тут дилема. У мене є пристрій, який спілкується з іншим віддаленим пристроєм, але між ними є брандмауер. Це з'єднання UDP, тому утиліти TCP не працюють для тестування, чи не відкрито конкретний порт. Я знаю, що ми могли б отримати це через брандмауер, але у мене немає доступу, тому я маю довести, що порт не відкритий.

Джерельна система - це система Windows 7, а система призначення - це пристрій під управлінням Linux.


1
Без доступу до брандмауера ви дійсно не можете сказати (якщо, звичайно, ваші системи не працюють).
— Рон Трунк

Питання щодо мереж, над якими ви не маєте контролю, тут явно поза темою.
— Рон Моупін

2
Я хотів би проголосувати, щоб залишити це відкритим. Я думаю, що це потрапляє в сіру зону, і це корисна теорія / питання усунення несправностей.
— Рон Трунк

1
... у вас є контроль над брандмауером та мережами? Якщо ні, то тут це поза темою.
— Крейг Костянтин

Це в даний час лабораторне середовище, ми намагаємося імітувати майбутню виробничу ситуацію. Я хотів би знайти спосіб усунення неполадок сесій UDP без необхідності розбору журналів на стороні сервера. Але дякую, я вважаю, що це неможливо за характером типу спілкування.
— JoeliNNaBit

Відповіді:


10

UDP - це, очевидно, протокол передачі та забуття. Наприклад, під час сканування UDP NMap єдиний спосіб остаточно довести, що порт UDP відкритий - це отримання відповіді з цього порту. Майте на увазі, що багато служб можуть не відповідати на довільні дані та вимагати запитів протоколу чи програми, щоб гарантувати відповідь. Однак деякі ICMP-коди можуть гарантувати закриття порту. RFC 792 і RFC 1122 дають нам хорошу інформацію щодо того, чого очікувати, коли порт закритий.

Наприклад, код 3 типу ICMP 3 "Порт призначення не досяжний" майже для всіх намірів і цілей майже гарантовано є закритим портом.

Повний список кодів можна знайти тут:

http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml


1
Дякую за відповідь. Докладніше я вивчу запити ICMP типу 3.
— JoeliNNaBit

7

Це швидкий рецепт:

1) Запустіть sniffer пакету:

sudo tcpdump -n -i eth2 icmp &
[1] 1409
$ tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes

2) Надіслати пакет UDP:

$ echo reply-me | nc -u 1.0.0.2 1000

3) Якщо ви отримуєте "порт ICMP недоступний", цей порт UDP закритий:

20:54:15.475211 IP 1.0.0.2 > 1.0.0.1: ICMP 1.0.0.2 udp port 1000 unreachable, length 45

4) В іншому випадку зазвичай або порт відкритий, або щось блокує ICMP.


1
Оскільки вихідною системою є Windows 7, команди Linux не працюватимуть.
— Рон Моупін

1
Так, це правда, але я спробую виконати віртуальну машину і перевірити, чи працює вона.
— JoeliNNaBit

4

"nc -uvz ip port"це не якось точно, ви, ймовірно, повинні використовувати "nmap -sU -p port ip", якщо результат показує "відкритим", тоді, можливо, порт udp відкритий, якщо він показує "відкритий | фільтрується", то, ймовірно, він закритий або фільтрується.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.