Я установил сервер 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
источник
localhost
другие компьютеры.Запуск
netstat -a -n
илиss -a -n
из командной строки покажет все открытые сетевые подключения и порты прослушивания на вашем компьютере.0.0.0.0:80
будет означать, что он прослушивает порт80
всех ip-адресов (localhost и ваши публичные / частные IP-адреса), а127.0.0.1:80
это означает, что он прослушивает только localhost. Вы можете добавить-b
команду, и она покажет, какой исполняемый файл использует этот порт. Эту же информацию можно получить с помощью монитора ресурсов в Windows 7 в разделе «Порты прослушивания» на вкладке «Сеть».источник
Если вы хотите узнать, открыт ли он с другого сервера, вы можете просто
telnet serverName 80
посмотреть, открывается ли сеанс. Если это не так, то либо сервер не прослушивает, либо порт заблокирован брандмауэром.Если он открывается, а затем сразу же закрывается, по крайней мере, Windows 2003, тогда программное обеспечение (например, Exchange) может быть не настроено на прослушивание этого конкретного интерфейса или IP-адреса, но оно прослушивает другие порты. Я видел, как IIS ведет себя так, потому что это глупо, а Apache - нет.
источник
Вы написали:
Хотя это может показаться странным, на самом деле у вас нет проблем с открытыми портами (но с конфигурацией Apache).
Это «Запрещенное» сообщение приходит с вашего сервера Apache; это означает , что ваш веб - сервер является доступным из Интернета.
Вам нужно настроить Apache, чтобы разрешить обслуживание всем хостам - в противном случае они получат страницу «Запрещено». IIRC, Apache изначально настроен на разрешение запросов только с локального компьютера.
Где-то в вашей конфигурации Apache, вероятно, есть такой раздел (фактический каталог может отличаться):
Если вы хотите , чтобы разрешить любому компьютеру , чтобы увидеть ваши страницы, вам нужно изменить ,
Deny from all
чтобыAllow from all
. См. Документацию модуля доступа для получения дополнительной информации .источник
Чтобы увидеть открытые порты, вы, вероятно, должны использовать nmap. У них есть версия для Windows: http://nmap.org/dist/nmap-5.21-setup.exe
Недостаточно, если вы видите, что ваш порт 80 открыт с localhost - возможно, что-то стоит на пути, если вы попробуете это из другого места, поэтому я рекомендую nmap
С клиента вы набираете: nmap ip-of-your-server
источник
Если вы хотите проверить это в своей локальной сети, скачайте nmap. Если вы хотите узнать, доступен ли порт для внешнего мира, запустите сканирование по адресу https://www.grc.com/x/ne.dll?bh0bkyd2.
источник
Порты сервера могут быть привязаны либо к одному IP-адресу, либо к каждому доступному IP-адресу. Похоже, ваша установка Apache настроена на привязку только к 127.0.0.1, и вам нужно настроить ее на привязку к *. В вашем httpd.conf (в каталоге conf Apache) найдите строку как
Listen localhost:80
и измените ее наListen 80
.источник
telnet <host> <port>
твой друг. Его достоинство заключается в том, что он устанавливается практически на каждом компьютере в мире.Редактирует после перечитывания вопроса:
Вот несколько полезных советов по диагностике
если вы можете получить доступ к сайту через локальный хост, но не через локальный IP-адрес сайта (192.168. *) с других хостов в вашей сети, это, вероятно, проблема брандмауэра Windows.
если вы можете получить доступ к сайту с других локальных компьютеров сайта, но не из Интернета по общедоступному IP-адресу, это проблема конфигурации маршрутизатора / переадресации портов.
источник
Из командной строки введите:
... или ваш IP: 80. Это скажет вам, если порт 80 открыт на вашем компьютере. Теперь, если вы хотите проверить и получить доступ к нему из-за пределов вашей сети, определите, есть ли у вас своего рода брандмауэр. Если вы это сделаете, вам нужно будет перенаправить порт 80 на ваш веб-сервер.
источник
Если вы работаете в Windows, используйте SysInternals TCPView . Он может сказать вам, какая программа использует какой порт.
источник
В команде DOS:
источник