Веб-сервер Apache недоступен публично

Веб-сервер Apache недоступен публично

У меня есть веб-сервер Apache (2.4.10), работающий на настольном компьютере с Debian (Jessie, 8).

У рабочего стола есть статический локальный IP-адрес (192.168.xx), а мой WAN (публичный) IP-адрес также был зафиксирован моим провайдером (82.xxx). Добавлена ​​переадресация порта 80 на этот рабочий стол.

Я могу получить доступ к веб-странице из моей локальной сети без проблем, но я не могу получить к ней доступ с помощью адреса WAN, внутри или снаружи моего дома: я получаю сообщение "Веб-страница недоступна - ERR_CONNECTION_REFUSED" от Chrome. Обратите внимание, что я могу открыть свой маршрутизатор с помощью адреса WAN (на другом порту).

Сама веб-страница представляет собой не более чем «index.html» с надписью Hello World.

Я пробовал отключить брандмауэр iptables, не помогло. Я пробовал другой порт, кроме 80, не помогло. Я звонил интернет-провайдеру, и порт 80 не заблокирован. Я уже с ума сошел в гугле. Есть ли у кого-нибудь предложения, как сделать сайт доступным?

решение1

Я решил это!

Благодаря Moonpoint я понял, что проблема была в переадресации портов. Поэтому я еще раз взглянул и заметил, что для правила порта 80 "Интерфейс WAN" был установлен на "ADSL" (по умолчанию). Я не знаю, что это значит, поэтому я никогда его не менял. Я пробовал разные варианты и установка на "ETHWAN" решила проблему. Теперь я могу получить доступ к веб-странице публично, и я добавил no-ip DDNS, который также работает.

EDIT: Теперь я узнал, что интерфейс ETHWAN WAN был просто добавлен к маршрутизатору моим интернет-провайдером и является интерфейсом для подключения по оптоволокну.

решение2

Когда вы утверждаете, что пытались отключить брандмауэр iptables, но безуспешно, вы имеете в виду, что вы отключили брандмауэр iptables, но все равно не смогли подключиться к веб-серверу с внешнего IP-адреса, или вы имеете в виду, что вам не удалось отключить брандмауэр iptables на основе хоста? Проверьте журналы доступа и ошибок Apache для вашего веб-сайта, чтобы увидеть, зарегистрирована ли какая-либо попытка доступа к системе с внешнего IP-адреса в каком-либо из этих файлов. Проверьте ваш /etc/httpd/conf/httpd.confфайл Apache. Есть ли в нем какой-либо раздел, похожий на следующий, где-либо в файле:

<Directory /home/www/example>
      Order Deny,Allow
      Deny from all
      Allow from 192.168 127.0.0.1
 </Directory>

В приведенном выше примере доступ разрешен со всех, кромелокальный хостадрес 127.0.0.1 и системы в той же локальной сети, т. е. 192.168.xxx.xxx, запрещены. Если вы хотите сделать сервер доступным для всего мира, "Запретить всем" будет неуместным.

Вы можете локализовать проблему в системе Debian, на которой запущен веб-сервер Apache, или маршрутизаторе, на котором настроена переадресация портов, при условии отсутствия промежуточного сетевого оборудования, используяtcpdumpкоманда в системе Debian Linux. Выполните команду tcpdump -i any port 80как root. Это заставит tcpdump искать только соединения с портом 80 на любом интерфейсе, игнорируя остальной трафик. Затем попробуйте подключиться к веб-серверу с внешнего адреса. Если tcpdump показывает, что трафик на порт 80 достигает системы Linux, то переадресация портов работает правильно. Если нет, у вас, вероятно, проблема с переадресацией портов, поэтому дважды проверьте, что вы перенаправляете порт 80 на правильный IP-адрес веб-сервера.

Связанный контент