Как подключиться к этому локальному хосту с другого компьютера в той же сети?



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

1398   8  

8 ответов:

это определенно возможно. Мы возьмем общий случай с Apache здесь.

допустим, вы большой поклонник Symfony2 и хотите получить доступ к своему сайту symfony по адресу http://symfony.local/ С 4 разных компьютеров (основной, на котором размещен ваш сайт, а также Mac, Windows и дистрибутив Linux, подключенный (беспроводной или нет) к основному компьютеру.

Общий Эскиз:

enter image description here


1настройка a виртуальный хост:

сначала вам нужно настроить виртуальный хост в вашем apache . На XAMP, вы можете найти вот этот файл: C:\xampp\apache\conf\extra\httpd-vhosts.conf. На МАМП, вы можете найти вот этот файл: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf. этот шаг подготавливает веб-сервер на вашем компьютере для обработки symfony.local запросы. Вам нужно указать имя виртуального хоста, а также корневой папке вашего сайта. Чтобы сделать это, добавьте следующую строку в конце файл. Вам нужно изменить DocumentRoot туда, где находится ваша основная папка. Вот я и взял /Applications/MAMP/htdocs/Symfony/ как корень моего сайта.

<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
    ServerName symfony.local
</VirtualHost>

2настройка файла hosts:

чтобы клиент (ваш браузер в таком случае) понял, что symfony.local на самом деле означает, что вам нужно отредактировать файл hosts на вашем компьютере. Каждый раз, когда вы вводите URL-адрес в браузере, ваш компьютер пытается понять, что это значит! symfony.local не значит все что угодно для компьютера. Так что он будет пытаться решить имя symfony.local на IP-адрес. Он сделает это, сначала заглянув в файл hosts на вашем компьютере, чтобы узнать, может ли он соответствовать IP-адресу, который вы ввели в адресной строке. Если он не может, то он спросит DNS-серверы. Хитрость здесь состоит в том, чтобы добавить следующее в файл hosts.

  • On MAC этот файл находится в /private/etc/hosts;
  • On LINUX этот файл находится в /etc/hosts;
  • On WINDOWS этот файл находится в \Windows\system32\private\etc\hosts;
  • On WINDOWS 7 этот файл находится в \Windows\system32\drivers\etc\hosts;
  • On WINDOWS 10 этот файл находится в \Windows\system32\drivers\etc\hosts;

Hosts file

##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1           symfony.local

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

3открыть symfony.local С другого компьютера:

мы, наконец, приходим к вашему главному вопросу, который является:

как теперь я могу получить доступ к моему сайту через другой компьютер?

Ну это теперь легко! Нам просто нужно рассказать другим компьютеры, как они могли найти symfony.local! Как нам это сделать?

3aполучить IP-адрес компьютера, на котором размещен интернет-сайт:

сначала нам нужно знать IP-адрес на компьютере, на котором размещен веб-сайт (тот, над которым мы работали с самого начала). В терминале, на MAC и LINUX тип ifconfig |grep inet на WINDOWS тип ipconfig. Предположим, что IP-адрес этого компьютера 192.168.1.5.

3bотредактируйте файл hosts на компьютере, с которого вы пытаетесь получить доступ к веб-сайту.:

опять же, на MAC этот файл находится в /private/etc/hosts; on LINUX, в /etc/hosts; и WINDOWS, в \Windows\system32\private\etc\hosts (если вы используете WINDOWS 7 этот файл находится в \Windows\system32\drivers\etc\hosts).. Трюк теперь использовать IP-адрес компьютера, к которому мы пытаемся получить доступ / поговорить:

##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5         symfony.local

4наконец-то наслаждайтесь результатами в вашем браузере

теперь вы можете зайти в свой браузер и ввести http://symfony.local чтобы красиво видеть ваш сайт на разных компьютерах! Обратите внимание, что вы можете применить ту же стратегию, если вы являетесь пользователем OSX, чтобы проверить свой веб-сайт в Internet Explorer через Virtual Box (если вы не хотите использовать компьютер с Windows). Это красиво объяснил в создание тестовой среды Windows / IE на OSX.


вы также можете получить доступ к localhost с мобильных устройств

вы можете задаться вопросом, как получить доступ к сайту localhost с мобильного устройства. В некоторых случаях, вы не сможете изменить файл hosts (iPhone и iPad...) на вашем устройстве (джейлбрейк исключен).

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

на Mac, я бы рекомендовал:тестирование веб-сайта Mac OS X с использованием локального имени хоста на мобильном устройстве: используя SquidMan в качестве прокси. Это 100% бесплатное решение. Некоторые люди также могут использовать Чарльз как прокси-сервер, но это 50$.

на Линуксе, вы можете приспособить путь Мак ОС выше с помощью кальмаров как прокси-сервер.

на Windows, вы можете сделать это с помощью Саша. Решение описано в следующем посте: Мониторинг трафика iPhone с помощью Fiddler


Edit 23/11/2017: Эй, я не хочу изменять файл Hosts

@Dre. Любой возможный способ доступа к веб-сайту с другого компьютера не является редактирование файла хоста вручную? допустим, у меня есть 100 компьютеры разыскиваются для доступа на сайт

это интересный вопрос, и поскольку он связан с вопросом OP, позвольте мне помочь.

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

давайте представим, что у вас есть роутер (192.168.1.1). Этот маршрутизатор имеет сервер DHCP и IP-адреса для 100 машин в сети.

теперь, допустим, у вас есть, как и выше, в той же сети, машина в 192.168.1.5, который имеет свой сайт. Мы будем называть эту машину Помпеи.

$ echo $HOSTNAME
pompei

как и раньше, эта машина Помпеи at 192.168.1.5 работает HTTP Server, которая обслуживает ваш сайт symfony.local.

для каждой машины, чтобы знать, что symfony.local находится на Помпеи теперь нам понадобится пользовательский DNS-сервер в сети, который знает, где symfony.local хранится. Затем устройства в сети смогут разрешать доменные имена, обслуживаемые Помпеи внутренне.

3 простых шага.

Шаг 1: DNS-сервер

настройка DNS-сервера в сети. Давайте его на Помпеи для удобства и использовать что-то вроде dnsmasq.

Dnsmasq обеспечивает система доменных имен (DNS) forwarder,....

мы хотим, чтобы Помпеи для запуска DNSmasq для обработки DNS-запросов Hey, pompei, where is symfony.local и ответа Hey, sure think, it is on 192.168.1.5 but don't take my word for it.

Go ahead install dnsmasq, файл конфигурации dnsmasq обычно находится в /etc/dnsmasq.conf в зависимости от вашей среды.

я лично использую no-resolv и серверы google server=8.8.8.8 server=8.8.8.4.

*Примечание:* всегда перезапускайте DNSmasq при изменении файла/etc / hosts, так как в противном случае никакие изменения не вступят в силу.

Шаг 2: Брандмауэр

на работу, Помпеи необходимо разрешить входящие и исходящие пакеты "домена", которые идут от и до порта 53. Конечно! Это DNS пакеты и если Помпеи не позволяет им, нет никакого способа для вашего DNS-сервера, чтобы быть достигнут вообще. Идти вперед и откройте этот порт 53. В linux вы бы классически использовали iptables для этого.

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

#
# Allow outbound DNS port 53
#
 iptables -A INPUT -p tcp --dport 53 -j ACCEPT
 iptables -A INPUT -p udp --dport 53 -j ACCEPT

 iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
 iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

 iptables -A INPUT -p udp --sport 53 -j ACCEPT
 iptables -A INPUT -p tcp --sport 53 -j ACCEPT

 iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
 iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

Шаг 3: Маршрутизатор

сообщите маршрутизатору, что ваш dns-сервер включен 192.168.1.5 сейчас. Большую часть времени, вы можете просто войти в свой маршрутизатор и очень легко изменить вручную.

вот это, когда вы находитесь на машине и просите symfony.local, он спросит вашего DNS-сервера здесь symfony.local размещается, и как только он получил свой ответ от DNS-сервера, затем отправит соответствующий HTTP-запроса до Помпеи on 192.168.1.5.

я позволяю тебе играть с этим и наслаждаться поездкой. Эти 2 шага являются основными рекомендациями, поэтому вам придется отлаживать и тратить несколько часов, если вы делаете это в первый раз. Допустим, это немного более продвинутая сеть, есть первичный DNS-сервер, вторичные DNS-серверы, etc.. Удачи вам!

если обе машины находятся в одной рабочей группе, откройте cmd.exe на машине, к которой вы хотите подключиться, типа ipconfig и обратите внимание на IP в IPv4 Address линии.

затем на машине, с которой вы хотите подключиться, используйте http:// + the IP of the target machine.

это должно сделать это.

этот инструмент спас меня много, так как у меня нет прав администратора на моей машине уже был установлен nodejs. По какой-то причине конфигурация в моей сети не дает мне доступ к другим машинам, просто указывая IP в браузере.

# Using a local.dev vhost
$ browser-sync start --proxy

# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001

# Using a localhost address
$ browser-sync start --proxy localhost:8001

# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1

http://www.browsersync.io/docs/command-line/

для тестирования на обоих ноутбуках на одной беспроводной сети и через интернет вы можете использовать такую услугу, как http://localhost.беги/ или https://ngrok.com/

возможно, ваши брандмауэры не позволяют вам получить доступ к веб-серверу localhost.
Поместите IP-адреса обоих компьютеров internet security antivirus network security в качестве безопасных IP-адресов, если это необходимо.
Как найти IP-адрес вашего ПК с windows: Пуск > (Выполнить) введите: cmd (Enter)
(Откроется командная строка черного ящика)
введите ipconfig (Enter)
Допустим, ваш веб-сервер Apache или IIS установлен на вашем ПК: 192.168.0.3
и вы хотите получить доступ к вашему веб-серверу с вашего ноутбука. (IP ноутбука-192.168.0.5)
На вашем ПК вы вводите: http://localhost/ внутри Вашего браузера Firefox или Internet Eplorer для доступа к вашим данным на вашем веб-сервере.
На вашем ноутбуке вы вводите http://192.168.0.3/ для доступа к веб-серверу на вашем ПК.

Для всех этих вещей для работы вам нужно правильно установить веб-сервер (например, IIS, Apache, XAMP, WAMP и т. д.).

Если это так не работает, попробуйте пинговать ваш компьютер с вашего ноутбука:
Откройте команду propmt на вашем ноутбуке: пуск > cmd (Enter)
ping 192.168.1.3 (Enter)
Если пинг не удается, то брандмауэры блокируют ваше соединение или ваш сетевой кабель неисправен. Перезагрузите модем или сетевой коммутатор и ваши машины.
Закройте такие программы, как программы чата, использующие ваши порты.
Вы также можете попробовать другой номер порта: http:192.168.0.3:80 или http:192.168.0.3:81 или каких-либо случайных номер в конце

на Mac OS X:

  1. в терминале, выполните ifconfig | grep 192. чтобы получить внутренний IP-адрес вашей машины в текущей сети. Это может быть что-то вроде 192.168.1.140

  2. запустить сервер. Например, node server.js может запустить сервер на каком-то порту.

  3. на вашем телефоне, посетите 192.168.1.140:3000 или любой порт, на котором работает ваш сервер.

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

проверьте следующее, (для ubuntu apache2)

  $ cat /etc/apache2/ports.conf

если установлено следующее,

NameVirtualHost *:80  
Listen 127.0.0.1:80  

затем измените его обратно на значение по умолчанию

NameVirtualHost *:80  
Listen 80  

Если вы находитесь на Windows, используйте ipconfig чтобы получить локальный IPv4-адрес, а затем указать его в файле конфигурации Apache: httpd.conf, например:

Listen: 10.20.30.40:80

перезапустить сервер Apache и проверить его с другого компьютера в сети.

Comments

    Ничего не найдено.