Як переконатися, що порт 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.