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

Как я могу узнать, открыт порт или нет?

Я установил сервер Apache на свой компьютер с Windows 7. Мне удалось отобразить index.php по умолчанию, набрав http: // localhost / в адресной строке моего браузера.

Однако я все еще не могу увидеть эту страницу, набрав IP-адрес своего компьютера (ни локально (с того же компьютера), ни глобально (с другого компьютера, подключенного к Интернету)).

Мне сказали, что мне нужно открыть 80 порт. Я сделал это (как описано Вот), но это не решило проблему.

Прежде всего, я хотел бы проверить, какие порты открыты, а какие нет. Например, я не уверен, что мой порт 80 был закрыт до того, как я попытался открыть. Я также не уверен, что он открылся после того, как я попытался его открыть.

Я попытался запустить очень простой веб-сервер, написанный на Python. Для этого я использовал порт 81, и он работал! И порт 81 открыть не пробовал. Значит, по умолчанию открылся. Итак, если 81 открыт по умолчанию, почему 80 нет? Или это так?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
1. В моем файле httpd.conf есть "Listen 80".
2. Этот сайт сообщает мне, что порт 80 на моем компьютере открыт.
3. Я получаю разные ответы, если пытаюсь http: // myip: 80 и http: // myip: 81. В последнем случае браузер (Chrome) пишет мне, что ссылка не работает. В первом случае я получаю: Запрещено. У вас нет разрешения на доступ к этому серверу.
4. IE пишет, что «Веб-сайт отказался показать эту веб-страницу».

Если вы просто проверяете свои порты снаружи. Используйте этот инструмент:

http://www.yougetsignal.com/tools/open-ports/

Он попытается подключиться к вашему IP-адресу через определенный порт и сообщит вам, открыт он или закрыт для внешнего мира.

Местные проблемы тоже? Похоже, вам мешает брандмауэр Windows 7. Добавьте исключение с помощью этого руководства ...

http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html

Бег netstat -a -n или ss -a -n из командной строки покажет все открытые сетевые подключения и порты прослушивания на вашем компьютере. 0.0.0.0:80 будет означать, что он прослушивает порт 80 всех IP-адресов (localhost и ваши общедоступные / частные IP-адреса), где как 127.0.0.1:80 будет означать, что он прослушивает только локальный хост. Можете добавить -b к команде, и он покажет, какой исполняемый файл использует этот порт. Вы можете получить ту же информацию с помощью монитора ресурсов в Windows 7 в разделе «Порты прослушивания» на вкладке «Сеть».

Если вы хотите узнать, открыт ли он с другого сервера, вы можете просто telnet serverName 80 и посмотрите, открывается ли сеанс. Если нет, то либо сервер не слушает, либо порт заблокирован брандмауэром.

Если он открывается, а затем сразу закрывается, по крайней мере, Windows 2003, тогда программное обеспечение (например, Exchange) может не быть настроено для прослушивания этого конкретного интерфейса или IP, но оно прослушивает другие порты. Я видел, как IIS ведет себя так, потому что это глупо, а Apache - нет.

Вы написали:

В первом случае я получаю: Запрещено. У вас нет разрешения на доступ к этому серверу.

Хотя это может показаться странным, на самом деле вы не есть проблема с открытыми портами (но с конфигурацией Apache).

Это сообщение «Запрещено» приходит с вашего сервера Apache; это означает, что ваш веб-сервер является доступны из Интернета.

Вам необходимо настроить Apache, чтобы разрешить обслуживание всем хостам - иначе они получат страницу «Запрещено». IIRC, Apache изначально настроен так, чтобы разрешать запросы только с локального компьютера.

Где-то в вашей конфигурации Apache, вероятно, есть такой раздел (фактический каталог может быть другим):

<Directory "/home/piskvor/www">
    Allow from 127.0.0.1
    Deny from all
(...)

Если вы хотите, чтобы любой компьютер мог видеть ваши страницы, вам необходимо изменить Deny from all к Allow from all. Дополнительную информацию см. В документации модуля доступа..

Чтобы увидеть открытые порты, вам, вероятно, следует использовать nmap. У них есть версия для Windows: http://nmap.org/dist/nmap-5.21-setup.exe

Недостаточно, если вы видите, что ваш порт 80 открыт с локального хоста - может быть, что-то мешает, если вы попробуете его из другого места, поэтому я рекомендую nmap

На клиенте вы вводите: nmap ip-of-your-server

Если вы хотите протестировать это в своей локальной сети, скачайте Nmap Если вы хотите узнать, насколько порт доступен для внешнего мира, запустите сканирование в https://www.grc.com/x/ne.dll?bh0bkyd2

Порты сервера могут быть привязаны к одному IP-адресу или ко всем доступным IP-адресам. Похоже, ваша установка Apache настроена для привязки только к 127.0.0.1, и вам нужно настроить ее для привязки к *. В вашем httpd.conf (в каталоге Apache conf) найдите строку вроде Listen localhost:80 и измените его на Listen 80.

telnet <host> <port> твой друг. Он установлен практически на каждом компьютере в мире.

Правки после перечитывания вопроса:

Вот несколько полезных советов по диагностике

  1. если вы можете получить доступ к сайту через localhost, но не через локальный IP-адрес вашего сайта (192.168. *) с других хостов в вашей сети, вероятно, это проблема брандмауэра Windows.

  2. если вы можете получить доступ к сайту с других локальных компьютеров, но не из Интернета на ваш общедоступный IP-адрес, это проблема конфигурации маршрутизатора / переадресации портов.

В командной строке введите:

netstat -ano, look for 0.0.0.0:80 

... или ваш IP: 80. Это сообщит вам, открыт ли порт 80 на вашем компьютере. Теперь, если вы хотите проверить и посмотреть, можете ли вы получить к нему доступ из-за пределов своей сети, определите, есть ли у вас какой-то брандмауэр. Если вы это сделаете, вам нужно будет перенаправить порт 80 на ваш веб-сервер.

Если вы работаете в Windows, используйте SysInternals TCPView. Он может сказать вам, какая программа использует какой порт.

В команде DOS:

C:\Windows\system32>netstat -a -b

使用中連線

  協定   本機位址               外部位址               狀態
  TCP    0.0.0.0:80             801781-N1:0            LISTENING     [Skype.exe]
  TCP    0.0.0.0:135            801781-N1:0            LISTENING      RpcSs      [svchost.exe]
  TCP    0.0.0.0:443            801781-N1:0            LISTENING     [Skype.exe]
...