Я установил сервер Apache на свой компьютер. Я установил и назначил корневую папку и т. Д. Когда я захожу в http://localhost/
, он работает нормально, сообщая мне, что Apache установлен правильно. Однако, когда я ввожу свой IP-адрес в браузер, он не работает и выдает ошибку «Тайм-аут соединения». Я попытался настроить все на своем маршрутизаторе (например, переадресацию портов), но безрезультатно. Когда я подключил свой компьютер напрямую к модему, минуя маршрутизатор, я могу получить доступ к корневой папке, введя свой IP-адрес в браузере. Однако корневая папка недоступна через Интернет в соответствии с http://downforeveryoneorjustme.com/
и друг, который пытался получить к нему доступ через Интернет. Я попытался указать свой сервер и привязать Apache к моему IP-адресу, используя ServerName и Listen, соответственно, в файле httpd.conf. Тем не менее, безрезультатно.
Есть предположения? Заранее спасибо.
Ребята, я тупой. Это был брандмауэр моего компьютера. Я думал, что разрешил порт 80, поэтому отклонил его. Плюс проблемы, которые я действительно указал на другой источник. Но увы, после отключения брандмауэра все заработало, и тогда я понял, что на самом деле я не разрешил порт 80.
Большое спасибо за ответы.
Я собирался предложить проверить правила вашего брандмауэра через iptables
, но тот факт, что вы можете попасть на свой сайт, когда подключены напрямую к сети (то есть в обход маршрутизатора), говорит мне, что проблема связана с маршрутизатором, а не с вашим сервером. Мог ли ваш друг получить доступ к сайту через IP, когда вы были подключены напрямую к сети? Если они могли, то скорее всего виноваты ваши правила переадресации портов на маршрутизаторе. Если это не так, проверьте, не iptables
вызывает проблему, запустив:
# iptables -L -n | grep 80
Вам нужно будет сделать это как root.
Пожалуйста, предоставьте дополнительную информацию, какая у вас ОС?
Первое, что вы должны проверить, это ваш файл конфигурации apache, httpd.conf
.
Если у вас он привязан к localhost, он же 127.0.0.1, или если он привязан ко всем IP-адресам, доступным на вашем компьютере.
Для этого проверьте Listen
и VirtualHost
директивы в вашем httpd.conf
файл.
Если они такие:
Listen 127.0.0.1:80
или
<VirtualHost 127.0.0.1:80>
они привязаны к вашему IP-адресу localhost, поэтому использование вашего IP-адреса не сработает.
Если это не так, если ваш брандмауэр, вы, вероятно, захотите отключить брандмауэр на несколько секунд или минут и попытаться получить к нему доступ в течение этого периода, чтобы определить, блокировал ли ваш брандмауэр или нет.
После того, как вы проверили вышеизложенное, если вы можете получить доступ со своего компьютера с помощью IP-адреса, но люди из другого соединения не могут, это может означать, что ваш интернет-провайдер блокирует использование низких портов 1-1024, чтобы их клиенты не могли создавать серверы в своем подключении.
Аналогичным образом проверьте, какие IP-адреса фактически привязаны к Apache, с помощью следующей команды:
netstat -an | grep: 80 | grep СЛУШАТЬ
Если результат : 80 или :::, то Apache прослушивает все IP-адреса, связанные с вашим сервером. В противном случае Apache привязан только к одному IP-адресу.
Если вы собираетесь выполнить привязку только к одному адресу, это должен быть интерфейс Ethernet, подключенный к вашей локальной сети. Вы должны настроить Apache для прослушивания немаршрутизируемого частного IP-адреса, используемого вашим сервером за маршрутизатором на основе NAT, а не общедоступного IP-адреса, назначенного вашим интернет-провайдером.
На маршрутизаторе на основе NAT настройте порт 80 для переадресации на порт 80 на частном IP-адресе, назначенном вашему серверу Apache.
Как предлагал другой ответ, дважды проверьте, не блокирует ли iptables входящий трафик.
Надеюсь это поможет.
Когда вы могли «получить доступ к корневой папке, набрав мой IP-адрес в браузере», это было из вашей локальной сети? (Если так.)
Я подозреваю, что ваш интернет-провайдер не разрешает внешний доступ к клиентским сетям через входящий порт 80. Вы можете проверить эту теорию (если это позволяет ваш маршрутизатор), установив переадресацию порта на прямой трафик на Ваш_Внешний_IP: 8888 к Внутренний_IP вашего компьютера: 80.
Предполагая, что у вас есть Apache, настроенный для прослушивания порта 80 (должен быть по умолчанию), а брандмауэр вашего компьютера настроен для передачи трафика на порт 80, это должно сказать вам, что это настройки переадресации вашего маршрутизатора или ваш LSP активно серьезно относится к их "нет". серверы "Условия использования.
Итак, очевидно, что у вас есть возможность подключения к другим протоколам из этих мест? Это не проблема маршрутизации?
Анализ пакетов может предоставить дополнительную информацию.
Также проверьте следующее;