Как сделать сервер LAMP общедоступным?

616
Alex Kio

Я купил Raspberry Pi 2 для размещения веб-сервера на моем маршрутизаторе ASUS RT-N66U, на котором установлена ​​последняя версия прошивки Merlin.

У меня запущен стек LAMP, и я также изменил AllowOverrideна Allfor <Directory /var/www/html/>в моей конфигурации Apache и перенес сайт в этот каталог.

ipconfig = 192.168.x.x

CanYouSeeMe.org говорит IP =, 24.245.x.xно он не может видеть службу на порту 80

На маршрутизаторе я перенаправил порт 80 / TCP на 192.168.x.x

Я владею, .comкоторый направлен на192.168.x.x

На любом компьютере, подключенном к моей локальной сети, я могу получить доступ к сайту как с внешнего адреса, так и с моего .comадреса. Как только я отключаюсь от локальной сети (скажем, отключаю Wi-Fi), я больше не могу получить доступ ни к одному из них.

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

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

0
Что вы подразумеваете под `ipconfig = 192.168.xx`? JakeGould 8 лет назад 0

1 ответ на вопрос

1
JakeGould

Я владею, .comкоторый направлен на 192.168.x.x.

Диапазон 192.168.x.xсети зарезервирован для частных сетей LAN, а не для общедоступных адресов WAN. Что вам нужно сделать, это установить .comадрес, чтобы указать 24.245.x.x.

Тем не менее, после того, как вы это сделаете, вам также нужно убедиться, что ваш маршрутизатор ASUS RT-N66U может выполнять петлевое / связывание NAT, где он будет достаточно умен, чтобы понять, что запросы на .comадрес, поступающие из вашей локальной сети, должны 192.168.x.xвместо этого идти на этот адрес. по 24.245.x.xадресу.

Но, проверяя документацию по маршрутизатору ASUS RT-N66U, там, похоже, нет никаких ссылок на петлевую / заколочную связь NAT. Поэтому, если вы хотите протестировать веб-сайт внутри вашей локальной сети, вам, возможно, придется вручную отредактировать файл hosts, чтобы он указывал на .comэтот 192.168.x.xадрес.

Независимо от этого, просто невозможно, чтобы 192.168.x.xадрес когда-либо был доступен напрямую кому-либо во внешнем мире, если вы подключите его к своему .comдомену. Это должно быть связано с 24.245.x.xадресом.

Я обновил свой домен для пересылки на http: //24.245.xx/ и перепроверил все настройки в моем маршрутизаторе. Прошивка merlin https://github.com/RMerl/asuswrt-merlin/wiki имеет NAT (фактически две формы: ASUS, Merlin). Я отключил брандмауэры, включил NAT, включил переадресацию портов, переадресовал порты 80 и 100 на 192.168.xx и все еще получаю ошибки соединения. Я даже пробовал 24.245.xx: 80 и 24.245.xx: 100, но не повезло. Любые идеи о том, что я должен попробовать дальше? Спасибо за помощь, кстати. Alex Kio 8 лет назад 0
@AlexKio Когда вы говорите, «действительно имеет NAT», почти у любого / каждого маршрутизатора в мире есть NAT. Это не то, что вам нужно; вам нужен маршрутизатор, который поддерживает петлевую трансляцию NAT / шпильку. В прошлом все, что я описал, должно работать как положено. Единственное, о чем я могу думать, это то, что ваша конфигурация Apache явно привязана к адресу `192.168.xx`, и это следует изменить. Но у меня действительно не так много других советов, которые я могу дать, чтобы помочь вам. JakeGould 8 лет назад 0

Похожие вопросы