Я хочу получить доступ к своим локальным веб-сайтам по разработке, размещенным на другом локальном компьютере в моей домашней сети.
Я пробовал использоватьhttp://192.168.1.nnи http://localhost в браузере, но ни один из них не найден (мой серверный компьютер имеет статический IP-адрес 192.168.1.nn).
Когда я работаю на компьютере nn, у меня нет проблем с доступом к localhost и его веб-сайтам.
Я пытался использовать параметры Windows, чтобы разрешить неаутентифицированный доступ к компьютеру nn (в брандмауэре Defender, а также в Malwarebytes > Параметры > Список разрешенных > Добавить > 192.168.1.nn). Я пытался использовать правило переадресации портов в маршрутизаторе, чтобы перенаправить порт mm на компьютер nn (и используя адрес http://localhost:mm илиhttp://192.168.1.nn:mm). Я попробовал добавить эту строку в файл Hosts:
192.168.1.nn локальный хост
Я не очень хорошо разбираюсь во внутренних принципах работы сетей. Я хочу создать LAN-LAN Web-соединение на одном из моих компьютеров с другим,не предоставляя внешнему миру (WAN) доступ к чему-либов моей сети. Я надеюсь получить помощь с ответами, которые были проверены, поэтому они работают без лишних вопросов и ответов.
решение1
Поскольку вы, по-видимому, не хотите предоставлять дополнительную информацию по соображениям безопасности, вот несколько общих мыслей и комментариев о том, на что вы, возможно, захотите обратить внимание, чтобы решить эту проблему:
Сторонние приложения
Отключите все брандмауэры или антивирусное сканирование во время тестирования. Сторонние приложения или оборудование могут влиять на связь между двумя компьютерами, выходя за рамки установленных вами правил.
Если вы используете виртуальную машину для своего сервера, вам может потребоваться выполнить дополнительную настройку самой виртуальной машины (в дополнение к настройкам хоста), чтобы разрешить к ней доступ.
Программное обеспечение виртуальной машины может иметь опцию для виртуальных сетевых адаптеров "host-only", которые никогда не считаются частью локальной сети. Убедитесь, что вы не пытаетесь получить удаленный доступ через IP, назначенный какому-либо сетевому адаптеру "host-only" (если он есть).
Для доступа к виртуальным машинам может потребоваться переадресация портов (через программное обеспечение виртуальной машины), если на них не используется мостовой адаптер.
Если вы используете 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
, но может быть проигнорировано браузерами, которые вместо этого просто вернут локальный адрес обратной связи (ex. 127.0.0.1
), недоступный удаленно.При использовании Linux (например, Raspberry Pi или WSL) могут потребоваться дополнительные действия по настройке резолвера, которые вам, возможно, придется выполнить в дополнение к редактированию файла
hosts
.Для базового тестирования вам, скорее всего, придется продолжать использовать IP-адреса и избегать имен хостов любого типа, чтобы ограничить проблемы с подключением к самому серверу, а не к конкретному имени хоста.
Если вы хотите использовать имена хостов без изменения
hosts
для каждого устройства, вам необходимо настроить локальный DNS-сервер (и соответствующим образом настроить маршрутизатор).У вас должны быть
hosts
записи или записи DNS, указывающие на ваш сервер для любых имен хостов, с помощью которых вы хотите получить доступ к этому серверу.
Апачи
Убедитесь, что Apache запущен на удаленном сервере.
Хотя это и не помешает Apache отвечать, если у Apache нет виртуального хоста для заданного имени хоста, он может вернуть либо веб-страницу по умолчанию, либо страницу с ошибкой.
Конфигурация вашего сервера Apache или его виртуальных хостов может запретить вам доступ с другого компьютера, поэтому дважды проверьте, нет ли директив, ограничивающих доступ к вашему серверу. Настройки для любых
Require
директив — хорошее место для начала (значение для этих директив обычно должно бытьall granted
).Несоответствия или ошибки в ваших настройках
ServerRoot
иDocumentRoot
(а также любыхDocumentRoot
настройках каталога) вhttpd.conf
и/или любыхDocumentRoot
настройках /directory на данном виртуальном хосте могут вызывать403 Forbidden
ответы.Использование
.htaccess
файлов может ограничить доступ к серверу в зависимости от настроек в файлах.Убедитесь, что все
listen
директивы (например, вhttpd.conf
) установлены на что-то вродеlisten 80
and/or,listen 443
а не напр.listen 127.0.0.1:80
orlisten 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
папку перед перезапуском, чтобы они были доступны.