apache (xampp) не доступен из интрасети

785
xIcarus

Итак, у меня есть веб-приложение, которое я хочу протестировать на множестве разных устройств. Чтобы сделать это легко, мне нужно выставить приложение в экстрасети, чтобы я мог получить к нему доступ из любого места.

Внутренний IP-адрес моей машины - 192.168.1.66, он назначен мной вручную с маршрутизатора.
DMZ настроен, поэтому 192.168.1.66 должен быть полностью открыт для экстрасети.

Однако Apache даже не отвечает из интранета.
Доступ к http: // localhost / app показывает мне установку XAMPP, но http://192.168.1.66/app - нет.

Среда является полностью стандартной установкой XAMPP под Windows. Я ничего не изменил, я только добавил веб-приложение в документ.
Httpd.conf имеет значение по умолчанию «Listen 80», так что это не должно быть проблемой.
Я попытался полностью отключить брандмауэр Windows, но безуспешно.

Я также понятия не имею, нормально ли это, но 'netstat -a' показывает несколько записей для порта 80 как такового:

TCP [::]:80 DESKTOP-DVN0SQB:0 LISTENING  TCP 192.168.1.66:80 DESKTOP-DVN0SQB:0 LISTENING  TCP 0.0.0.0:80 DESKTOP-DVN0SQB:0 LISTENING  

Netstat также показывает мне IP-адрес, который я не распознаю, 192.168.56.1. Меня сбивает с толку то, что я пытался получить к нему доступ, и, как ни странно, мое приложение можно найти по адресу http://192.168.56.1/app . Но это, кажется, локальный адрес, потому что я не могу получить к нему доступ с любого устройства в интрасети.

Что дает? Что это за адрес 192.168.56.1? Я помню, как видел похожий адрес, когда играл с Vagrant несколько дней назад, это могло быть связано? У меня больше нет Vagrant VM, я уничтожил их все (на случай, если это может быть связано).

И самое главное: почему я не могу получить доступ к Apache из интрасети? Потому что это определенно мешает мне получить доступ к нему из экстрасети.

0

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

1
Anaksunaman

[W] Почему я не могу получить доступ к Apache из интрасети?

Поскольку Apache, по-видимому, связан с сетевым адаптером, который не является частью интрасети, к которой вы пытаетесь получить доступ.

Для ясности, 192.168.1.x и 192.168.56.x в этом случае являются отдельными сетями (при условии, что стандартная маска подсети класса C равна 255.255.255.0).

Адрес, который использует Apache (192.168.56.1), скорее всего, является IP-адресом по умолчанию для виртуального сетевого адаптера, используемого для виртуальных машин. Apache, похоже, выбрал этот адаптер / IP в ответ на общую Listen 80директиву (как вы упомянули).

Я помню, как видел похожий адрес, когда играл с Vagrant несколько дней назад, это могло быть связано?

Это может быть связано. Если Vagrant установил какие-либо виртуальные сетевые адаптеры, если вы специально не удалили эти адаптеры, скорее всего, они все еще активны в вашей системе.

Если вы определенно не используете этот виртуальный сетевой адаптер, вы можете удалить его полностью.

В любом случае вы можете привязать Apache (при необходимости) к указанному IP в httpd.conf с помощью более конкретной директивы Listen, например:

Listen 192.168.1.66:80 

Пожалуйста, обратите внимание, поскольку вы сделали комментарии о Vagrant, я предполагаю, что ваш сервер / приложение не работает на виртуальной машине. Если это так (возможно, вы используете вместо этого VirtualBox), вам нужно настроить параметры виртуальной машины, чтобы сделать ее доступной для внутренней сети.

Спасибо за объяснение, Слушай 192.168.1.66:80 сработал. Ха, у меня было чувство, что VirtualBox / Vagrant как-то связан с этим. xIcarus 6 лет назад 1
Также нет, я не запускал приложение на виртуальной машине. Я использовал виртуальную машину ранее для других приложений. xIcarus 6 лет назад 0
Пожалуйста. Рад, что у вас все работает правильно. знак равно Anaksunaman 6 лет назад 0
0
Lorenzo

Как вы сказали, http: // localhost / app распознается во внутренней сети. Проблема связана с IPv4, на котором в данный момент запущено приложение, поэтому попробуйте это проверить. Я не знаю, какое приложение вы используете, но там должен быть файл config.php, в котором вы можете установить доверенный домен, к которому можно получить доступ.

Кроме того, я сомневаюсь, что к такому общему IPv4 (192.168.1.66) можно получить доступ отовсюду: я не знаю всей вашей конфигурации сети, но должен иметь динамический IP, назначенный глобально, а указанный адрес является только локальным.