Используя '/dev/udp удара', как я знал бы, был ли порт открыт?

localinstall предназначается для установки пакетов, которые Вы имеете в своей локальной файловой системе. Если конфетка находит его в репозитории затем, необходимо использовать install вместо этого.

Править:

Причина yum install boost* сбои - то, потому что у Вас есть файлы, которые соответствуют тому шаблону, и Ваша оболочка является globbing он. Выйдите из подстановочного знака.

yum install 'boost*'
14
04.01.2016, 18:31
2 ответа

В общем, вы не можете.

В отличие от TCP, UDP Bondless. Вы не можете обнаружить, что порт открыт просто, сделав не так, как вы можете с TCP. Скорее, вам нужно отправлять данные в порт и посмотреть, что произойдет, и детали UDP, как реализованы в реальном мире, делают интерпретацию результатов сложно. Даже сложные инструменты на уровне пакетов, такие как NMAP Не удается сказать наверняка, если есть программа, прослушивающая данный порт UDP. NMAP классифицирует порты UDP на три группы:

  1. определенно открыт. Отправка пакета в порт, вызывала ответ данных с пункта назначения.
  2. определенно закрыт. Отправка пакета в порт, вызывала сообщение «Дознан к назначению ICMP» из машины назначения.
  3. либо открытый, либо отфильтрованный. Отправка пакета в порт не вызывает ответа. Может быть, есть брандмауэр, который бросает пакеты; Возможно, есть прослушивание программы и NMAP просто не выяснила, как получить ответ; Может быть, пользователь только что не повезло, и все пакеты были потеряны в пути.
10
27.01.2020, 19:50

Для tcp просто проверяем $? . Если соединение не удалось, $? не будет 0 :

$ >/dev/tcp/google.com/81
bash: connect: Network is unreachable
bash: /dev/tcp/google.com/81: Network is unreachable
$ echo $?
1

bash потребуется время, чтобы понять, что соединение не удалось. Вы можете использовать тайм-аут для запуска bash :

$ timeout 1 bash -c '>/dev/tcp/google.com/80' &&
  echo Port open ||
  echo Port close
Port open

Проверка порта udp более сложна.

Строго говоря, нет открытого состояния (конечно, udp - это протокол без сохранения состояния ) с udp. Есть только два состояния с udp, прослушивание или not . Если состояние , а не , вы получите ICMP Destination Unreachable .

К сожалению, брандмауэр или маршрутизатор часто отбрасывают эти ICMP-пакеты, поэтому вы не знаете, в каком состоянии находится порт udp.

13
27.01.2020, 19:50

Теги

Похожие вопросы