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

Сервер Apache не транслируется в Интернет

Я установил сервер 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 активно серьезно относится к их "нет". серверы "Условия использования.

Итак, очевидно, что у вас есть возможность подключения к другим протоколам из этих мест? Это не проблема маршрутизации?

Анализ пакетов может предоставить дополнительную информацию.

Также проверьте следующее;

  • использовать nslookup для проверки запроса / ответа DNS
  • проверить вирусные хосты
  • включите подробное ведение журнала для соответствующих служб и изучите журналы.