Windows 10/Apache/LAN как получить доступ к веб-сайтам, размещенным на другом локальном компьютере?

Вопрос или проблема

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

Я пробовал использовать http://192.168.1.nn и http://localhost в браузере, и ни один из них не найден (мой серверный компьютер имеет статический IP-адрес 192.168.1.nn).

Когда я запускаю на компьютере nn, у меня нет проблем с доступом к localhost и его веб-сайтам.

Я пробовал использовать настройки Windows, чтобы разрешить неаутентифицированный доступ к компьютеру nn (в брандмауэре Защитника, а также в Malwarebytes > Настройки > Список разрешений > Добавить > 192.168.1.nn). Я пробовал использовать правило переадресации портов в маршрутизаторе для переадресации порта mm на компьютер nn (и использовать адрес http://localhost:mm или http://192.168.1.nn:mm). Я пробовал добавить эту строку в файл Hosts:

192.168.1.nn localhost

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

Поскольку вы, похоже, не хотите предоставлять дополнительную информацию по соображениям безопасности, вот несколько общих мыслей и комментариев о том, на что вы можете обратить внимание, чтобы помочь решить эту проблему:

Приложения третьих сторон

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

  • Если вы используете виртуальную машину для вашего сервера, вам, возможно, нужно будет выполнить дополнительную настройку самой виртуальной машины (в дополнение к чему-либо на хосте), чтобы разрешить доступ к ней.

  • Программное обеспечение виртуальной машины может иметь опцию для “только хост” виртуальных сетевых адаптеров, которые никогда не считаются частью локальной сети. Убедитесь, что вы не пытаетесь получить удаленный доступ через IP-адрес, назначенный какому-либо “только хост” сетевому адаптеру (если он есть).

  • Виртуальные машины могут требовать переадресации портов (через программное обеспечение виртуальной машины), чтобы разрешить доступ к ним, если они не работают через мостовой адаптер.

  • Если вы используете WSL, возможно, вам нужно будет обновить его специально или Windows в целом.

Локальная сеть

  • Убедитесь, что компьютеры находятся в одной локальной сети. Проверьте сетевую маску на любом маршрутизаторе. Они обычно должны быть одинаковыми. Также убедитесь, что любые сетевые DHCP-серверы (вновь, скорее всего, на вашем маршрутизаторе и т. д.) выдают одинаковые диапазоны локальных адресов любым устройствам, которые вы хотите подключить.

  • Предполагая сетевую маску, например 255.255.255.0, если ваш сервер имеет адрес, например http://192.168.1.nn, а компьютер, который вы используете для доступа к серверу, имеет адрес, например http://192.168.2.nn, то они не находятся в одной локальной сети.

  • Если у вас нет специальной сетевой настройки, которую вы не указали, переадресация портов в вашем маршрутизаторе не должна быть необходима для базовой связи между устройствами в одной сети.

  • Если вы пытаетесь использовать мобильное устройство для доступа к вашему серверу из локальной сети, убедитесь, что вы используете Wi-Fi, а не тарифный план вашего оператора (поскольку это было бы полезно только для тестирования доступа WAN).

  • В общем, вы должны использовать только локальные адреса, назначенные вашим маршрутизатором (т.е. не любые IP-адреса, назначенные вашим провайдером).

  • Широко говоря, использование более чем одного маршрутизатора, точек доступа Wi-Fi или “новейшего” сетевого оборудования (например, оборудования мешевой сети) могло бы (теоретически) вызвать проблемы.

Имена хостов

  • Файл hosts применяется только к компьютеру, на котором он имеется. Таким образом, файл hosts на сервере не позволит другим компьютерам в локальной сети разрешить любые указанные имена хостов. Файл hosts на компьютере, пытающемся получить доступ, должен быть модифицирован.

  • localhost не является произвольным именем. Оно почти всегда относится только к локальному компьютеру. Это означает, что оно обычно не может использоваться для обращения к удаленному серверу (т.е. тому, который не расположен на том же компьютере). Обратите внимание, что это также может касаться виртуальных машин.

  • Изменение localhost в hosts возможно, но может игнорироваться браузерами, которые вместо этого просто возвращают локальный адрес обратной связи (например 127.0.0.1), который недоступен удаленно.

  • Если вы используете Linux (например, Raspberry Pi или WSL), вам может понадобиться выполнить дополнительные шаги по настройке резольвера в дополнение к редактированию вашего файла hosts.

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

  • Если вы хотите использовать имена хостов без изменения hosts для каждого устройства, вам нужно будет настроить локальный DNS-сервер (и соответственно настроить ваш маршрутизатор).

  • Вы должны иметь записи hosts или DNS-записи, указывающие на ваш сервер для любых имен хостов, с которыми вы хотите получить доступ к этому серверу.

Apache

  • Убедитесь, что Apache работает на удаленном сервере.

  • Хотя это не предотвратит ответ Apache, если Apache не имеет виртуального хоста для данного имени хоста, он может вернуть либо страницу по умолчанию, либо, возможно, страницу с ошибкой.

  • Конфигурация вашего сервера Apache или его виртуальных хостов может ограничивать доступ с другого компьютера, поэтому дважды проверьте, чтобы не было директив, ограничивающих доступ к вашему серверу. Настройки любых директив Require – хорошее место для начала (значение для этих директив обычно должно быть all granted).

  • Несоответствия или ошибки в ваших настройках ServerRoot и DocumentRoot (а также в любых настройках директории DocumentRoot) в httpd.conf и/или любых настройках DocumentRoot/директории в данном виртуальном хосте могут вызывать ответы 403 Forbidden.

  • Использование файлов .htaccess может ограничить доступ к серверу в зависимости от настроек в файлах.

  • Убедитесь, что любые директивы listen (например, в httpd.conf) установлены на что-то вроде listen 80 и/или listen 443, а не например listen 127.0.0.1:80 или listen 127.0.0.1:443. Второй тип директив связывает Apache с прослушиванием только на 127.0.0.1/localhost и он будет игнорировать запросы с любого компьютера, который не является сервером.

  • Если вы настроили Apache на listen на портах, отличных от 80 или порта 443 (портов по умолчанию HTTP/HTTPS), вам нужно будет включить этот порт с IP-адресом или именем хоста (например, 192.168.1.nn:8080 или local-example:80).

  • Любые изменения в Apache требуют перезапуска Apache для того, чтобы эти изменения вступили в силу.

  • В Linux, на системах, основанных на Debian/Ubuntu, вам может понадобиться создать символические ссылки на любые файлы в вашей папке sites-available в папку sites-enabled перед перезапуском, чтобы они стали доступны.

Ответ или решение

Чтобы получить доступ к веб-сайтам, размещённым на другом локальном компьютере в вашей домашней сети с использованием Windows 10 и Apache, необходимо убедиться, что вы правильно настроили сетевое окружение, параметры Apache и настройки безопасности. Ниже приведены подробные шаги и рекомендации, которые помогут вам устранить возникшие проблемы.

Шаг 1: Проверка локальной сети

  1. Убедитесь, что оба компьютера находятся в одной локальной сети.

    • Проверьте IP-адреса. Например, если один компьютер имеет адрес 192.168.1.nn, другой компьютер должен находиться в диапазоне 192.168.1.x (где x – любое число от 1 до 254, кроме nn).
    • Используйте команду ipconfig в командной строке Windows для проверки текущего IP-адреса и сетевой маски.
  2. Проверьте настройки DHCP на маршрутизаторе.

    • Убедитесь, что маршрутизатор выделяет адреса в одном диапазоне и что они не конфликтуют с настройками статических IP-адресов ваших устройств.

Шаг 2: Настройки Apache

  1. Проверьте, что Apache работает на сервере.

    • Откройте командную строку на сервере и выполните команду httpd -k start для запуска Apache, если он не запущен.
    • Убедитесь, что веб-сервер Apache настроен на прослушивание внешних IP-адресов, а не только локального адреса. Для этого проверьте файл конфигурации Apache (httpd.conf) на наличие строки:
      Listen 80
    • Измените её при необходимости, чтобы она не была ограничена только к локальному хосту (Listen 127.0.0.1:80).
  2. Проверьте конфигурацию виртуальных хостов.

    • Убедитесь, что в конфигурациях виртуальных хостов (если они используются) указаны правильные настройки доступа и правила. Например, в секции <Directory> должно быть указано Require all granted.
  3. Перезапустите Apache после изменений.

    • Не забывайте перезапускать сервер Apache после любых изменений в конфигурации, используя команду httpd -k restart.

Шаг 3: Настройки безопасности

  1. Настройки брандмауэра.

    • Откройте настройки брандмауэра Windows и проверьте, что входящие подключения на порту 80 разрешены.
    • Вы можете временно отключить брандмауэр для тестирования, но обязательно включите его после завершения.
  2. Проверьте наличие сторонних антивирусов/фаерволов.

    • Убедитесь, что настройки антивирусных программ (например, Malwarebytes) не блокируют доступ к серверу. Добавьте IP-адрес сервера в список разрешенных.

Шаг 4: Тестирование подключения

  1. Используйте IP-адрес для доступа.

    • Откройте браузер на другом компьютере и введите http://192.168.1.nn (где nn — это ваш статический IP-адрес сервера). Если у вас настроен доступ на другом порту (например, 8080), указывайте его как http://192.168.1.nn:8080.
  2. Избегайте использования localhost для внешних подключений.

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

Шаг 5: Дополнительные настройки (при необходимости)

  1. Работа в виртуальных машинах.

    • Если сервер развернут в виртуальной машине, убедитесь, что настройка сетевого адаптера правильная. Используйте режим "Bridged", чтобы позволить виртуальной машине действовать как отдельный компьютер в локальной сети.
  2. Обновление настроек Hosts (если необходимо).

    • Изменения в файле hosts применяются только на данном компьютере. Если вы хотите использовать имена вместо IP-адресов, добавьте соответствующие записи в файл hosts на клиентских машинах.

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

Оцените материал
Добавить комментарий

Капча загружается...