Доступ к localhost (xampp) с другого компьютера по локальной сети - как?

150

Я только что настроил Wi-Fi дома. У меня есть все мои файлы на настольном компьютере (192.168.1.56), и я хочу получить доступ к локальному хосту с другого компьютера (192.168.1.2).

На моем рабочем столе я могу получить доступ к localhost через обычный http: // localhost . Apache работает на порту 80 как обычно.

Что именно я должен сделать, чтобы достичь этого? В сети есть документация, но она либо не работает, либо слишком фрагментарна и запутана, чтобы ее понять.

Я думаю, что я должен внести изменения в файл моего apache httpd.conf и файл hosts. Любые идеи относительно того, какие изменения внести?

bcosynot
источник
2
Люди, находящие этот вопрос, могут быть заинтересованы в том, как подключиться к этому локальному хосту с другого компьютера в той же сети? ,
Мартин Тома
1
Вот что я сделал и работал для меня в Windows 10: зайдите в cmd и введите ipconfig, затем найдите ваш адрес ipv4 и переименуйте URL вашего сайта в этот ip, например: 192.168.0.2/example . Затем найдите в окнах «Разрешить приложение через брандмауэр Windows», щелкните его, затем нажмите «Изменить настройки» и убедитесь, что на сервере http apache установлен флажок. Надеюсь, это поможет
csandreas1
У меня есть сайт с именем app.sitename.com. Теперь я могу получить доступ к сайту на другом компьютере в той же сети, используя IP-адрес. Как получить доступ с subdomian. app.ipaddress.com не работает. Что я должен сделать, чтобы добавить поддомен в удаленный компьютер?
Vicky

Ответы:

112

Localhost - это просто имя, данное для обратной петли, например, как будто я называю себя «я».

Чтобы просмотреть его с других компьютеров, скорее всего, вам нужно только выполнить http://192.168.1.56 или http: // myPcsName, если это не сработает, есть вероятность, что на вашем компьютере работает брандмауэр, или httpd.conf. только слушает на 127.0.0.1

BugFinder
источник
httpd.conf: Слушай 80, если мне нужно что-то изменить, что бы ты порекомендовал?
bcosynot
1
Это только говорит, слушают на порте 80, скорее всего, его уже слушают. netstat -a, найдите элементы на порте 80, он скажет вам, какие IP-
адреса он
1
Итак, это означает, что он прослушивает любой запрос на порту 80, а не только на localhost, поэтому, если ваш компьютер назывался vr3609, то http-адрес должен привести вас на ваш веб-сайт.
BugFinder
1
если вы http на IP-адрес вашего сервера с сервера, это работает? если это так, то он предлагает на сервере брандмауэр, блокирующий доступ к нему других машин.
BugFinder
1
Хорошо, 192.168.1.56, это тот, у которого сайт справа? Вы должны посмотреть на конфигурацию этого. Какая ОС работает? То, какое программное обеспечение брандмауэра используется, будет зависеть от этого. Вам необходимо выяснить, какое программное обеспечение брандмауэра установлено на нем, а затем решить, как добавить к нему порт 80, чтобы позволить другим компьютерам входить в него. Если его окна, скорее всего, являются частью вашего антивирусного программного обеспечения, или, возможно, даже могут быть Microsoft , Если его возможности Linux являются ipchains, но это совершенно новая область вопроса.
BugFinder
46

Спасибо за подробное объяснение.

Просто для разработки, в Windows, перейдите в Панель управления -> Брандмауэр, за исключением «добавить http и порт 80». Затем в разделе «Службы» установите флажки «http (порт 80 веб-сервера)» и «https (порт 443 веб-сервера)», ТОЛЬКО если вам нужен https для работы. Хорошо ок

Затем перейдите на любой компьютер в сети и введите http: // computer-name (где вы меняете брандмауэр и на нем запущен xampp) в своем веб-браузере и счастливых дней :)

Раджа
источник
7
Я зашел в Панель управления> Брандмауэр Windows> Разрешить приложение через брандмауэр Windows> Разрешить другое приложение> Перейти к: XAMPP / apache / bin / httpd.exe и разрешил его. Это работает сейчас!
Шаси Кант
Спасибо. Работает нормально.
Jewelhuq
Чтобы добавить исключение брандмауэра Windows, вы можете посетить это, чтобы узнать, как: tomshardware.com/news/…
Алехандро Нава
37

это очень просто

  1. Перейти к панели управления XAMPP
  2. Нажмите на apache> config> Apache (httpd.conf) введите описание изображения здесь
  3. Найдите « Listen 80» и замените « Listen 8080».
  4. После этого проверьте ваш локальный ip с помощью команды ipconfig (консоль cmd)
  5. Найдите ServerName localhost: 80 и замените его локальным IP- адресом: 8080 (например, 192.168.1.156: 8080).
  6. После этого откройте apache> config> Apache (httpd-xampp.conf) введите описание изображения здесь
  7. Ищи

       <Directory "C:/xampp/phpMyAdmin">
           AllowOverride AuthConfig
           **Require local**   Replace with   **Require all granted**
           ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
       </Directory>```
    
    
  8. Перейдите в xampp> config>, нажмите на настройку сервиса и порта и измените apache port 8080

  9. перезапустите xampp
  10. затем нажмите свой IP: 8080 (ex.192.168.1.156: 8080) с другого компьютера
Рахул Шевале
источник
если вместо всех гранулированных ... просто статический IP. как бы это было?
Алехандро Малиачи Кинтана
не работает. в моем компьютере это работает нормально, но не работает с другого компьютера.
MH Fuad
Это не работает для меня. Я получаю ошибку сертификата: сертификат сервера НЕ содержит идентификатор, соответствующий имени сервера
Jon Голосование
19

Это шаги, которые нужно выполнить, если вы хотите, чтобы ваше приложение PHP было установлено на сервере локальной сети (не в сети)

  1. Получить внутренний или статический IP-адрес сервера (например, 192.168.1.193)
  2. Откройте файл XAMPP> apache> conf> httpd.conf в блокноте
  3. Поиск для прослушивания 80
  4. Выше строки будет читать как-# Слушать 0.0.0.0:80 / 12.34.56.78:80
  5. Измените IP-адрес и замените его статическим IP-адресом.
  6. Сохраните файл httpd.conf, убедившись, что на сервере указан #Listen 192.168.1.193:80
  7. В корне приложения config.php (db connection) замените localhost на IP-адрес сервера

Примечание. Если установлен брандмауэр, убедитесь, что вы добавили http-порт 80 и 8080 к исключениям и разрешили прослушивание. Перейдите в Панель управления> Брандмауэр Windows> Разрешить программе общаться через брандмауэр Windows> Добавить другую программу Имя: http Порт: 80 Добавьте еще одну как http - 8080

Если IIS (Microsoft .Net Application Internet Information Server) установлен с любым приложением Microsoft .Net, уже установленным на сервере, то оно уже заняло бы 80 портов. В этом случае измените #Listen 192.168.1.193:80 на #Listen 192.168.1.193:8080

Надеюсь это поможет! :)

Шридхар Бхат
источник
Это решило это для меня. Отличный материал! Я всегда удалял #перед локальным IP-адресом, и он не работал, когда я включил хэш комментария, #он работал из коробки без перезапуска гостевой виртуальной машины, только служба Apache XAMPP и грохнул это там. Хороший. Теперь, как мне получить ссылку на мой назначенный VirutalHosts на хост-компьютере?
lowtechsun
Чтобы получить доступ к назначенным VirtualHosts на хост-машине от гостя, мне просто нужно было ввести IP-адрес хоста и имя сервера (-ов) VirtualHost в файле HOSTS гостя. Готово. Любой знает, как получать трафик с браузера гостя на сервер Apache Hosts с помощью Fiddler. Работайте на Хосте, но не получайте трафик от гостя.
lowtechsun
Привет, как насчет диапазона IP-адресов, например, 192.168.1-100. Как установить это?
dkjain
6

Это должно быть все, что вам нужно для базовой настройки

Такая конфигурация не нарушает phpMyAdmin на локальном хосте

На устройстве с сервером рекомендуется статический IP-адрес

В этом примере используется IP 192.168.1.x. Ваша сетевая конфигурация может использовать другой IP

В файле httpd.conf в Apache вы должны иметь:

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

Я бы оставил пустым имя, чтобы оно получало значения по умолчанию:

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#

Разрешите гостевые машины и себя. В качестве меры предосторожности вы можете избегать Allow from all, но вместо этого использовать определенный гостевой IP-адрес, например Allow from 192.168.1.xxx, где xxx - IP-адрес гостевого компьютера. В этом случае вам может потребоваться учитывать статические IP-адреса на гостевых машинах.

# Controls who can get stuff from this server.
#
#    Require all granted
#   onlineoffline tag - don't remove
     Order Deny,Allow
#     Deny from all
     Allow from all 
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost
     Allow from 192.168.1.*YOURguestIP*
     Allow from 192.168.1.*YOURselfIP*
</Directory>

Перезапустите все сервисы и выведите Online из иконки в трее

Razaman
источник
6

Перейти к xampp-control на панели задач

xampp-control -> Apache --> Config --> httpd.conf

Блокнот откроется с файлом конфигурации

Ищи

Слушай 80

На одну строчку над ним будет что-то вроде этого: 12.34.56: 80

Измени это

12.34.56:80 --> <your_ip_address eg:192.168.1.5>:80

Перезапустите сервис Apache и проверьте его, надеюсь, он должен работать ...

Joish
источник
5

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

Матео Йовани
источник
4

Если вы используете XAMPP 1.8.3 Перейдите в файл httpd-xampp.conf и найдите «# # Новая концепция безопасности XAMPP # server-status | server-info))»>

     Require local
     ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
     </LocationMatch>

"

Вырежьте этот код и сохраните его где-нибудь для последующего использования, т.е. восстановления этой функции (помните, что удаление этого кода делает ваш компьютер уязвимым). Сохраните изменения в httpd-xampp.conf, перезапустите службы на XAMPP и все.

OnsareTM
источник
Для XAMPP версии 7 «Требуется локальный» находится в файле apache / conf / extra / httpd-vhosts.conf
vivanov
3

Если вы подключены к сети Wi-Fi, то это намного проще. Просто найдите Ip, в котором вы подключены к Wi-Fi. Например:

ваш ip это "10.10.55.67".

Затем запустите сервер xampp на вашем компьютере.

Затем на любом другом компьютере, подключенном к тому же Wi-Fi н / ж, наберите

http://your-ip

Например:http://10.10.55.67

Кришна М
источник
3

Этот инструмент сильно меня спас, так как у меня нет прав администратора на моей машине, и у меня уже установлены 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/

Тиаго С. С Вентура
источник
3

Доступ к localhost с удаленного устройства

Условие : ваш сайт в настоящее время работает с таким инструментом, как live-сервер.http://localhost:8081/

а) Публикация в той же сети

В той же сети вы можете получить доступ к вашему компьютеру с вашим текущим IP-адресом или именем хоста. Вы можете найти работающий IP-адрес ipconfig | grep IPv4или имя хоста, отправив на этот IP-адрес ping -a.

http://192.128.1.18:80/
http://hostname:80/

Примечание . Для достижения наилучших результатов используйте порт 80, подключитесь к частной сети и проверьте настройки брандмауэра.

б) Публикация в любой сети (проще)

  1. Опция 1 - вы можете использовать ngrok для переадресации портов через общедоступные порты ngrok

    Скачайте ngrok и выполните следующую команду:

    $ ./ngrok http 8081
    

  2. Опция 2 - Вы можете использовать localhost.run для создания туннеля ssh с помощью следующей команды:

    ssh -R 80:localhost:8081 kylemit@ssh.localhost.run
    


Доступ к удаленному устройству из Local Dev Tools

Чтобы подключить инструменты разработчика браузера к подключенному устройству, следуйте инструкциям в разделе Начало работы с удаленной отладкой устройств Android.

  1. На вашем телефоне включите «Параметры разработчика» и «Отладка по USB»
  2. Подключите телефон к компьютеру через USB и установите протокол (не для передачи файлов / мультимедиа)
  3. Откройте Dev Tools> Дополнительные инструменты> Удаленная отладка (попробуйте здесь, если устройство не обнаружено )

  4. Найдите свой сайт и нажмите «Проверить», чтобы открыть новое окно инспектора.


Дальнейшее чтение:

KyleMit
источник
1

Вот что я сделал и работал для меня на windows 10 :

1) Нажмите windows + r и наберите cmd . В командной строке введите ipconfig
2) найдите свой адрес ipv4 и переименуйте URL вашего сайта в этот ip, например: http://192.168.0.2/example .
3) Теперь убедитесь, что ваш брандмауэр имеет доступ к серверу Apache HTTP . Поищите в окнах « Разрешить приложение через брандмауэр Windows », щелкните его, затем в правом верхнем углу нажмите « Изменить настройки» и убедитесь, что на HTTP-сервере Apache есть один тик слева и один для частного или общего доступа. Надеюсь, поможет

Теперь вы можете получить доступ к веб-сайту с других компьютеров в локальной сети.

csandreas1
источник
1

Сначала перейдите в центр управления сетями и общим доступом на своей машине с Windows. И просто выполните несколько шагов, чтобы получить свой IPv4-адрес. Просто посмотрите на изображение иллюстрации

Поместите адрес IPv4 в браузер другого компьютера. Например, HTTP // 192.168.0.102

Заметка

  • Turn Of Your Windows Firewall (если не работает, в противном случае его необязательно)
Это Энам
источник
0

Сначала перейдите в командную строку и введите

Notepad C:/windows/system32/drivers/etc/hosts

затем добавьте свой IP-адрес ниже, чем URL вашего сайта.

Во-вторых, вы идете в командную строку и введите notepad c:/xampp/bin/apache/apache2.4.18/conf/extra/httpd-vhosts.conf

затем добавьте это ниже

documentroot "Directory of your site"
Allow from all
Require all granted
Карл Джеймс Омандам
источник
0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>
ASD
источник
<Files ".ht *"> Требовать локального #Require all denied </ Files>
asd
3
Добро пожаловать в стек переполнения! Хотя этот фрагмент кода может решить вопрос, в том числе объяснение действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код. Также постарайтесь не переполнять ваш код пояснительными комментариями, это снижает удобочитаемость кода и пояснений!
kayess
0

Заменить Require Localна Require all grantedв xampp\apache\conf\extra\httpd-xampp.confфайле.

Sumit
источник
0

У меня была эта проблема. Я использовал XAMPP на виртуальной машине с сетевыми настройками как «NAT». Я изменил его на «Bridged», и проблема была решена.

Видхьядхар Дхармадхикари
источник
0

Хост по локальному IP,

Откройте CMD: ipconfig

Адаптер беспроводной локальной сети Wi-Fi: IPv4-адрес. , , , , , , , , , , : xx.xxx.xx.xxx

Винееш ТП
источник
0

Просто попробуй:

http://ipaddressofpcwhichhasdatabase:portnumber(80 by default)/filename.extension
Чинтан Нараян
источник
0

Если кому-то все еще трудно, эта простая вещь сработала для меня:

  1. В основной системе, скажем, на хостинге ПК ... Перейдите в Панель управления> Брандмауэр Защитника Windows> Разрешить приложение или функцию через Брандмауэр Защитника Windows> Изменить настройки> Найти «HTTP-сервер Apache»> Установите оба флажка (в разделе Личные и Public). Смотрите скриншот

    • В моем случае было две записи «Apache HTTP Server», поэтому я установил оба флажка для обеих записей.
  2. В любой другой системе, подключенной через ту же сеть ... Откройте браузер> введите: IP-адрес вашего хост-компьютера и имя вашего проекта в строке URL-адреса. Пример: 192.168.72.111/example.com/

Надеюсь, поможет! Спасибо.

nareshsr
источник
-1

Поэтому я пытался решить аналогичную проблему с подключением к совершенно другому серверу в своей локальной сети, чтобы при прерывании и восстановлении питания мой сервер возвращался в оперативный режим, а другие системы могли по-прежнему иметь связь с автоматизацией. Однако моя проблема заключалась в том, что DHCP иногда давал моему серверу разный IP. Эта тема ответила на мою проблему с NAMESERVER, которая есть у Windows изначально. Я подключался напрямую к своим серверам IP add http://192.168.1.5 через командный файл для инициализации соединения, но при возникновении проблем с питанием он не мог подключиться. Я изменил файл .bat так, чтобы он указывал на http: // DESKTOP-actualnamewhereserver: portи сделано. Задача решена. Если я не изменю имена своих компьютеров, тогда, когда DHCP передает DESKTOP-actualnamewhereserver новый IP-адрес, он все равно будет идентифицировать свое собственное имя в локальной сети и, следовательно, сможет принимать соединение независимо от его IP-адреса. Просто дайте другим людям в вашей беспроводной локальной сети имя вашего компьютера, на котором размещен сервер Apache, и предположим, что его имя DESKTOP-DOUGHFACTORYHUT, они будут вводить http: // DOUGHFACTORYHUT: 80 или любой другой номер порта, на котором ваша конфигурация apache настроена для хоста, например LOCALHOST: 80, которые по сути совпадают с вашим локальным динамическим IP-адресом, назначенным DHCP или STATIC IP, который вы задали серверу.

Марк Хартман
источник
-2

Я полностью согласен с BugFinder.

Проще говоря, просто введите IP-адрес 192.168.1.56 в ваш браузер, работающий на 192.168.1.2 !

если это не работает, то для этого есть следующие возможные причины:

  1. Проблема с сетевым подключением:

    • Прежде всего проверьте подключение к сети, используя команду ping 192.168.1.56 в командной строке / терминале на компьютере 192.168.1.2.
  2. Проблема с брандмауэром: в настройках брандмауэра Windows нет разрешающего правила для XAMPP (apache). (Наиболее вероятная проблема)

    • (решение) перейдите к расширенным настройкам брандмауэра и добавьте входящие и исходящие правила для исполняемого файла Apache.
  3. Проблема конфигурации Apache. : Ваш apache настроен на прослушивание только локальных запросов.

    • (Решение) это можно сделать, открыв файл httpd.conf и заменив Listen 127.0.0.1:80 на Listen 80 или * Listen : 80
  4. Конфликт портов с другими серверами (IIS и т. Д.)

    • (Решение) Выключите сервер Apache, а затем откройте локальный хост в браузере. если получен какой-либо ответ, выключите этот сервер и запустите Apache.

Если все вышеперечисленное не работает, то, возможно, существует проблема с настройкой на вашем apache server.try, чтобы выяснить это, иначе просто переустановите его и перенесите все php-файлы (htdocs) в новую установку XAMPP / WAMP.

Смит Патель
источник
1
Прежде всего, этому посту 5 лет, поэтому этот ответ, вероятно, не будет полезен ОП. Во-вторых, вы можете использовать Markdown, чтобы улучшить форматирование вашего ответа, чтобы сделать его более читабельным и легким для понимания. Поверьте мне, это приятно знать. :-)
Isiah Meadows
-3

Запустить сервер Nodejs через сеть

const port = process.env.PORT || 3000; 
const server = http.createServer( 
server.listen(port, '0.0.0.0', ()  => console.log(`Server started on port ${port}`)
));

запустите http: // yournetworkipaddress: 3000 для доступа к вашему приложению через локальную сеть (LAN)

Шаги по поиску вашей сети ip.

MacOS

  1. Перейдите в Системные настройки> Сеть
  2. Проверьте сетевой IP-адрес под подключенным.
Сумит Касана
источник