Доступ до localhost (xampp) з іншого комп’ютера через локальну мережу - як це зробити?


150

Я тільки що створив мережу wi-fi вдома. У мене всі мої файли на настільному комп’ютері (192.168.1.56) і хочу отримати доступ до localhost з іншого комп'ютера (192.168.1.2).

На своєму робочому столі я можу отримати доступ до localhost через звичайний http: // localhost . Apache працює як порт 80, як завжди.

Що саме я повинен зробити, щоб досягти цього? В мережі є документація, але вони або не працюють, або є занадто фрагментарними і незрозумілими для розуміння.

Я думаю, що я повинен внести зміни до файлу httpd.conf мого apache та до файлу hosts. Будь-які ідеї щодо того, які зміни потрібно внести?



1
Ось що я зробив і працював для мене на Windows 10: перейдіть до cmd і введіть ipconfig, потім знайдіть свою ipv4 адресу та перейменуйте URL свого веб-сайту на цей ip, наприклад: 192.168.0.2/example . Потім знайдіть у вікні "Дозволити програму через брандмауер Windows", натисніть на неї, потім натисніть змінити налаштування та переконайтесь, що на сервері http apache поставлено галочку. Сподіваюся, що це допомагає
csandreas1

У мене є сайт з назвою app.sitename.com. Тепер я можу отримати доступ до сайту на іншому ПК в тій же мережі, використовуючи IP-адресу. Як отримати доступ із субдоміаном. app.ipaddress.com не працює. Що мені робити, щоб додати піддомен у віддалений ПК?
vicky

Відповіді:


112

Localhost - це лише ім'я, яке дається для зворотного зв'язку, наприклад, таке, що називає себе "я" ..

Щоб переглянути його з інших комп'ютерів, швидше за все, вам потрібно лише зайнятись http://192.168.1.56 або http: // myPcsName, якщо це не працює, є ймовірність, що на вашому комп'ютері працює брандмауер або httpd.conf слухає лише 127.0.0.1


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: // ім'я комп’ютера (де ви змінюєте брандмауер та працює на ньому xampp) у своєму веб-переглядачі та щасливі дні :)


7
Я перейшов до Панелі управління> Брандмауер Windows> Дозволити програму через брандмауер Windows> Дозволити інший додаток> Переглянути: XAMPP / apache / bin / httpd.exe і дозволити це. Це працює зараз!
shasi kanth

Дякую. Працює чудово.
Jewhuq

Щоб додати виняток брандмауера Windows, ви можете відвідати це, щоб дізнатися, як: tomshardware.com/news/…
Alejandro Nava

37

це дуже просто

  1. Перейдіть на панель керування XAMPP
  2. Клацніть на apache> config> Apache (httpd.conf) введіть тут опис зображення
  3. Шукайте Слухайте 80 і замініть Слухайте 8080
  4. Після цього перевірте свій локальний ip за допомогою команди ipconfig (cmd console)
  5. Шукайте локальний сервер ServerName: 80 та замініть локальним ip: 8080 (ex.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 8080

  9. перезапустити xampp
  10. потім натисніть IP: 8080 (ex.192.168.1.156: 8080) з іншого комп'ютера

якщо замість усієї передачі ... jsut статичний IP. як би це було?
Алехандро Маляачі Кінтана

не працює. в моєму ПК це добре працює, але не працює з іншого ПК.
MH Fuad

Це не працює для мене. Я отримую помилку в сертифікаті: сертифікат сервера НЕ містить ідентифікатор, який відповідає імені сервера
Jon Vote

19

Це кроки, які слід виконати, коли ви хочете, щоб ваша програма PHP була встановлена ​​на локальному сервері (не в Інтернеті)

  1. Отримайте внутрішній IP або статичний 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, переконавшись, що на сервері вказано #Liste 192.168.1.193:80
  7. У корені програми config.php (db-з'єднання) замініть localhost на IP-адресу сервера

Примітка. Якщо встановлений брандмауер, переконайтеся, що ви додали http-порти 80 та 8080 до винятків і дозволяйте слухати. Перейдіть до Панелі управління> Брандмауер Windows> Дозволити програмі спілкуватися через брандмауер Windows> Додати ще одну назву програми: http-порт: 80 Додати ще один як http - 8080

Якщо IIS (Microsoft .Net Internet Internet Server Server) встановлений з будь-яким додатком Microsoft .Net, який уже знаходиться на сервері, він би вже займав 80 портів. У цьому випадку змініть #Liste 192.168.1.193:80 на #Liste 192.168.1.193:8080

Сподіваюся, це допомагає! :)


Це вирішило це для мене. Чудові речі! Я завжди видаляв #перед локальною IP-адресою, і він не працював, коли я включив хеш-коментар, #він працював з коробки, не перезавантажуючи гостьову машину, просто службу XAMPP Apache і баг її там. Хороший. Тепер, як я змушую його посилатися на призначені VirutalHosts на хост-машині?
lowtechsun

Щоб отримати доступ до призначених VirtualHosts на машині хосту від гостя, мені просто довелося ввести IP-адресу хоста та ім’я сервера (-ів) VirtualHost у файлі HOSTS гостя. Зроблено. Будь-хто знає, як забрати трафік з браузера гостя на сервер хостингу Apache з Fiddler. Працюйте над хостом, але не отримуйте трафіку від гостей.
lowtechsun

Привіт, як щодо діапазону IP-адрес, наприклад, 192.168.1-100. Як це встановити?
dkjain

6

Це має бути все, що потрібно для базової установки

Така конфігурація не порушує phpMyAdmin у localhost

На пристрої, на якому працює сервер, рекомендується статичний 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.
#

Дозвольте гостьовим машинам і собі. З безпеки можна уникнути дозволу від усіх, але замість цього використовувати конкретний гостьовий IP, наприклад, дозволити від 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>

Перезавантажте всі сервіси та поставте Інтернет із піктограми лотка


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 і перевірте її, сподіваємось, це має спрацювати ...


5

Іноді проблемою може стати ваш брандмауер. Переконайтесь, що ви відключили моніторинг брандмауера. Це працювало для мене.


4

Якщо ви використовуєте XAMPP 1.8.3, перейдіть до файлу httpd-xampp.conf та шукайте "# # Нова концепція безпеки XAMPP # сервер-статус | інформація про сервер))">

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

"

Виріжте цей код і збережіть його десь для подальшого використання, тобто відновлення цієї функції (пам’ятайте, що видалення цього коду робить ваш комп'ютер вразливим). Збережіть зміни на httpd-xampp.conf, перезавантажте служби на XAMPP і все.


Для версії 7 XAMPP "Вимагати локальний" розміщено у файлі apache / conf / extra / httpd-vhosts.conf
vivanov

3

Якщо ви підключені до мережі Wi-Fi, то це набагато простіше. Просто знайдіть Ip, у якому ви підключились до Wi-Fi. Наприклад:

ваш-ip - "10.10.55.67".

Потім запустіть сервер xampp у вашій машині.

Потім введіть будь-який інший комп'ютер, підключений до того ж Wi-Fi n / w

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 з віддалених пристроїв

Необхідна умова : Ваш веб-сайт наразі працює з таким інструментом, як живий серверhttp://localhost:8081/

а) Опублікувати в тому ж мережі

У цій же мережі ви можете отримати доступ до свого комп'ютера з поточною IP-адресою або ім'ям хоста. Ви можете знайти ip-адресу, що працює, ipconfig | grep IPv4або ім'я хоста, надіславши ping -aдо цього ip.

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
    


Доступ до віддалених пристроїв із локальних інструментів розробника

Щоб підключити інструменти розробника свого веб-переглядача з підключеним пристроєм, дотримуйтесь вказівок на початку роботи з віддаленою налагодженням пристроїв Android

  1. На телефоні увімкніть Параметри розробника та Налагодження через USB
  2. Підключіть телефон до комп'ютера через USB та встановіть протокол (не передача файлів / медіа)
  3. Відкрийте інструменти Dev> Додаткові інструменти> Віддалена налагодження (спробуйте тут, якщо пристрій не виявлено )

  4. Знайдіть свій сайт та натисніть «Оглянути», що відкриє нове вікно інспектора


Подальше читання:



1

Ось що я зробив і працював для мене у Windows 10 :

1) Натисніть Windows + r і введіть cmd . У командному рядку введіть ipconfig
2) знайдіть свою ipv4 адресу та перейменуйте URL свого веб-сайту на цей ip, наприклад: http://192.168.0.2/example .
3) Переконайтеся, що ваш брандмауер має доступ до HTTP-сервера Apache . У вікні пошуку " Дозволити програму через брандмауер Windows " натисніть на неї, а потім клацніть зміни параметрів у верхньому правому куті та переконайтесь, що сервер Apache HTTP має одну галочку зліва та одну приватну чи загальну. Сподіваюся, це допомагає

Тепер ви можете отримати доступ до веб-сайту з інших ПК у мережі


1

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

Поставте IPv4 адресу в інший браузер комп’ютера. наприклад, http // 192.168.0.102

Примітка

  • Поворот вашого брандмауера Windows (якщо він не працює, інакше його необов’язково)

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>

<Файли ".ht *"> Вимагати локальний #Попросити всіх відмовлено </Files>
asd

3
Ласкаво просимо до переповнення стека! Хоча цей фрагмент коду може вирішити питання, зокрема пояснення дійсно допомагає покращити якість вашої публікації. Пам'ятайте, що ви відповідаєте на запитання читачів у майбутньому, і ці люди можуть не знати причини вашої пропозиції щодо коду. Будь ласка, намагайтеся не переповнювати свій код пояснювальними коментарями, це зменшує читабельність і коду, і пояснень!
kayess

0

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


0

У мене виникло це питання. Я використовував XAMPP у віртуальній машині, яка мала мережеві настройки як "NAT". Я змінив його на "Містко" і проблему вирішили.


0

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

Відкрити CMD: ipconfig

Адаптер бездротової локальної мережі Wi-Fi: IPv4-адреса. . . . . . . . . . . : xx.xxx.xx.xxx



0

Якщо комусь все ще важко, ця проста річ працювала для мене:

  1. Скажімо, в основній системі хостинг ПК ... Перейдіть до Панелі управління> Брандмауер Windows Defender> Дозволити програму або функцію через брандмауер Windows Defender> Змінити налаштування> Знайти "Apache HTTP Server"> Поставте обидва прапорці (у розділі Приватний та Публічний). Див. Знімок екрана

    • У моєму випадку було два записи "Apache HTTP Server", тому я встановив обидві прапорці для обох записів.
  2. У будь-якій іншій системі, підключеній до однієї мережі ... Відкрийте браузер> тип: IP-адреса вашого ПК на хостингу, а потім на панелі URL-адреси назва вашого проекту. Приклад: 192.168.72.111/example.com/

Сподіваюся, це допомагає! Дякую.


-1

Тож я намагався вирішити подібну проблему з підключенням до зовсім іншого сервера в моїй власній локальній мережі, щоб при перериванні живлення та відновленні відновлення того, що мій сервер повертається в Інтернеті, а інші системи все ще можуть мати з'єднання з автоматизацією. Однак моя проблема полягала в тому, що DHCP надав моєму серверу різні IP-адреси. Цей потік відповів на мою проблему з NAMESERVER, який вікна мають у своєму розпорядженні. Я підключався безпосередньо до моїх серверів IP додаю http://192.168.1.5 через пакетний файл, щоб ініціалізувати з'єднання, але коли трапляться проблеми з живленням, він не підключатиметься. Я змінив файл .bat, щоб він вказав на http: // DESKTOP-currentnamewhereserver: portі зробили. Проблема вирішена. ЯКЩО я не змінюю імена своїх комп’ютерів, тоді, коли DHCP передає DESKTOP-фактичне ім'я деіндесервер новою 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. : Ваш апарат налаштований на прослуховування лише локальних запитів.

    • (Рішення) ви можете це, відкривши файл httpd.conf і замінивши Слухати 127.0.0.1:80 на Прослуховування 80 або * Прослухати : 80
  4. Конфлікт порту з іншими серверами (IIS тощо)

    • (Рішення) Вимкніть сервер apache та відкрийте локальний хост у браузері. якщо будь-яка відповідь отримана, тоді вимкніть цей сервер, тоді запустіть Apache.

якщо все вище не працює, то, ймовірно, є якась проблема конфігурації на апаш-сервері.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-адресу під підключеним.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.