Назад | Перейти на главную страницу

Почему я не могу проверить связь с портом 443 в Ubuntu?

Я открыл порт 443 через iptables:

pkts bytes target prot opt in  out source     destination
  45  2428 ACCEPT all  --  lo  *   0.0.0.0/0  0.0.0.0/0
   6  1009 ACCEPT tcp  --  *   *   0.0.0.0/0  0.0.0.0/0 tcp dpt:80
 141 10788 ACCEPT tcp  --  *   *   0.0.0.0/0  0.0.0.0/0 tcp dpt:22
   0     0 ACCEPT tcp  --  *   *   0.0.0.0/0  0.0.0.0/0 tcp dpt:80
   0     0 ACCEPT tcp  --  *   *   0.0.0.0/0  0.0.0.0/0 tcp dpt:443
   7  1140 ACCEPT all  --  *   *   0.0.0.0/0  0.0.0.0/0 state RELATED,ESTABLISHED
   6   360 DROP   all  --  *   *   0.0.0.0/0  0.0.0.0/0

И он слушает как netstat -a указывает:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:6311                  *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 gauss:ssh               ommited                 ESTABLISHED
tcp        0      0 gauss:ssh               ommited                 ESTABLISHED
tcp6       0      0 localhost:8005          [::]:*                  LISTEN     
tcp6       0      0 [::]:8009               [::]:*                  LISTEN     
tcp6       0      0 [::]:www                [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 [::]:https              [::]:*                  LISTEN     
udp        0      0 *:mdns                  *:*                                
udp        0      0 *:52703                 *:*                                
udp6       0      0 [::]:42168              [::]:*                             
udp6       0      0 [::]:mdns               [::]:*   

Однако я не могу пропинговать порт 443:

PING 443 (0.0.1.187) 56(124) bytes of data.
^C
--- 443 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6006ms

В чем дело?

Утилита ping делает то, что должна, запускает интерфейс ping с помощью ICMP, вы не можете просто пропинговать любой порт, который вам нравится. Я уверен, что есть миллион способов сделать это, но большинство людей просто используют «IP-порт telnet», то есть «telnet 1.2.3.4 25» для проверки соединения.

Вы не можете пинговать порты. Что происходит, так это то, что 443 конвертируется в IP-адрес, и ping пытается связаться с этим адресом (0.0.1.187).

ПИНГ 443 (0.0.1.187) 56 (124) байтов данных.

Обратите внимание, что приведенный выше IP-адрес интерпретируется с числа 443 (1 x 2561 + 187 х 2560 = 443).

ICMP (из них ping является частью) - это собственный протокол поверх IP. UDP / IP, TCP / IP и ICMP / IP. В протоколе ICMP нет портов, поэтому в командной строке нет параметра номера порта.

Существуют приложения TCP ping, которые будут выполнять аналогичные функции по TCP, и вы можете посмотреть на них. Ручной просмотр TCP-портов или служб часто выполняется с помощью telnet или nc (netcat).

Попробуйте использовать NMap для пингов вашего порта.

nmap -p 443 10.4.0.197

Starting Nmap 5.61TEST1 ( http://nmap.org ) at 2011-12-13 13:19 Pacific Standard Time
Nmap scan report for somecomputer (10.4.0.197)
Host is up (0.00s latency).
PORT    STATE  SERVICE
443/tcp closed https

Nmap done: 1 IP address (1 host up) scanned in 0.64 seconds

Вы считали, что ICMP нельзя использовать для проверки подключения к портам TCP / IP?

Используйте такой инструмент, как telnet или nmap, для проверки открытого или закрытого состояния порта. Вот пример использования Telnet для проверки подключения к VMware.. Вот некоторая информация о сканировании портов с помощью nmap.

Это совсем не способ делать это. ping отправляет пакеты эхо-запросов ICMP!

То, что вы хотите, вероятно, telnet xxxx 443, где xxxx имя вашего хоста (C-c для прерывания telnet, а затем exit).

Я неправильно это читаю, или вы слушаете только порт 443 для IPv6?

Можно ли предположить, что вы пытаетесь настроить веб-сервер? Если вы пытаетесь настроить apache или какой-либо другой веб-сервер, он не прослушивает порт 443 для трафика ipv4. Либо он настроен неправильно, либо у вас не запущен демон.

Я настоятельно рекомендую вам посещать базовые классы нетворкинга (без обид). Сетевое администрирование - это высокотехнологичная работа, к которой следует отнестись серьезно.

ping генерирует пакеты эхо-запроса ICMP, команда ping не предназначена для работы на верхних сетевых уровнях.

Понятие «порты» актуально только для протоколов UDP и TCP. Порты используются стеком TCP / IP как подсказка для демультиплексирования данных IP-пакетов и их доставки в нужное приложение.

Что касается того, что вы пытаетесь сделать, я лично использую nc -v hostname port команда.

С Уважением,

Если вы хотите проверить, открыт ли порт, вы можете использовать telnet. Как

telnet 192.168.2.22 443