Как протестировать, если удаленный серверный порт доступен или не в Unix

Я работаю в компании по веб-разработке среднего размера. Наша интранет работала сложенный двойным образом приблизительно в течение года теперь. Наш интернет-провайдер еще не предоставляет IPv6, таким образом, мы используем туннель SixXs, который хорошо работает.

Наши общедоступные серверы размещаются в Колорадо и имеют собственную v6 возможность соединения с 6 месяцев. Все, что мы должны были сделать, было, спрашивают, который отчасти удивил меня. Не все hosters настолько далеко все же.

У меня был опыт нескольких лет с SixXs и IPv6 на моей домашней LAN, которая помогла много при реализации его на работе. К счастью управление понимает, что как webdev компания мы должны поддерживать и испытать много различных технологий, даже при том, что RoI еще не может быть очевидным. Наши причины совпали с Вашими: предвидение и выполнение его на наших условиях. Ваше планирование развертывания кажется разумным.

Наш опыт был главным образом положителен. Запуск рано помог моим программирующим коллегам привыкнуть к нему и адаптировать наши платформы и приложения для поддержки его. Вещи как проверка адреса IPv6 в PHP, например, для контроля ввода или для белого списка доступа, более тверды, чем мы сначала думали, таким образом, мы рады сделать это. Встроенная или общедоступная функциональность PHP была главным образом испорчена.

Проблема, с которой мы столкнулись, состоит в том, что, если возможность соединения IPv6 снижается, большинство хостов возьмет возрасты к нейтрализации к IPv4, и некоторые никогда не будут нейтрализация. Так как они предпочитают v6 по v4, они просто не соединятся. Некоторые приложения имеют переключатель для принуждения v4, но многие не делают. Удостоверьтесь, что протестировали это в своей лаборатории.

3
задан 15 July 2010 в 03:16
4 ответа

nmap большой универсальный инструмент для таких вещей и очень еще.

nmap host.domain.tld (или nmap host для локальной машины, или nmap <ipaddr> для проверки машины адресом не называют), перечислит, какие общие порты открыты.

nmap 192.168.23.1-254 -p 22,80,443 просканирует диапазон хостов адресом, чтобы видеть, открыты ли порты TCP, обычно связываемые с SSH, HTTP и HTTPS.

Посмотрите man nmap для значительно большего количества опций - это - раковина инструментов проверки сети.

У Вас не может быть nmap, установленного в данный момент, но это находится в примерно всех репозиториях стандарта дистрибутивов. Для debian или вариантов человечности aptitude install nmap установить его или найти его в диспетчере пакетов GUI по Вашему выбору. Если это не доступно легко в Вашей системе, получите его и больше информации из http://nmap.org/

Вы могли также просто использовать то же telnet клиентский метод, с которым Вы уже знакомы, поскольку это доступно также и обычно устанавливаемое в одном из пакетов по умолчанию, но nmap инструмент, который стоит узнать, поскольку это может быть полезно для диагностирования сетевых проблем, просто проверив, что вещи состоят в том, как они должны быть и так далее. Существует также несколько достойных графических фронтендов к нему, если Вы предпочли бы взаимодействовать с ним далеко от командной строки.

10
ответ дан 3 December 2019 в 04:38
  • 1
    +1 nmap путь лучше, чем telnet для этой задачи. –  David Z 15 July 2010 в 07:30

Если Вы используете удар, то страницы справочника указывают, что Вы могли записать в/dev/tcp/HostNameOrIP/port. Я использовал это несколько раз и если удаленный порт открыт, то нет никакого ответа. Если система не может соединиться с удаленным портом, то это указывает причину

[kevin@box ~]$ echo -n > /dev/tcp/www.yahoo.com/80
[kevin@box ~]$ nslookup www.no-such-domain.com
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find www.no-such-domain.com: NXDOMAIN

[kevin@box ~]$ echo -n > /dev/tcp/www.no-such-domain.com/80
-bash: www.no-such-domain.com: Name or service not known
-bash: /dev/tcp/www.no-such-domain.com/80: Invalid argument
[kevin@box ~]$ echo -n > /dev/tcp/192.168.3.3/80    #no such server on my network
-bash: connect: No route to host
-bash: /dev/tcp/192.168.3.3/80: No route to host
[kevin@box ~]$ echo -n > /dev/tcp/192.168.3.1/88    #nothing listening on port 88
-bash: connect: Connection refused
-bash: /dev/tcp/192.168.3.1/88: Connection refused
[kevin@box ~]$
5
ответ дан 3 December 2019 в 04:38
  • 1
    , которому я не советовал бы для доверия этому приему, потому что, по крайней мере, debian пакеты удара сняли изоляцию с этой функции. –  halp 15 July 2010 в 04:40
  • 2
    Который является, почему я ворчу в системах, в страницах справочника которых говорится, что это работает, но затем я не получаю 'такого файла или каталога'. –  Kevin M 24 July 2010 в 03:11

Можно использовать telnet на *отклоняют машину, также.

3
ответ дан 3 December 2019 в 04:38
  • 1
    +1 - существует даже SSL способный вариант. –  sybreon 15 July 2010 в 09:10
  • 2
    @sybreon - Я не знал об этом.. кто обеспечивает его? –  warren 15 July 2010 в 14:10

Чтобы проверить, доступен ли порт в Bash, можно использовать следующую однострочную команду:

$ </dev/tcp/example.com/80 && echo Port is open || echo Port is closed
Port is open

Чтобы проверить вручную, используйте команду telnet (как в Windows).

.
0
ответ дан 3 December 2019 в 04:38

Теги

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