Uzyskiwanie dostępu do hosta lokalnego (XAMPP) z innego komputera przez sieć LAN - jak to zrobić?

150

Właśnie założyłem w domu sieć Wi-Fi. Mam wszystkie pliki na moim komputerze stacjonarnym (192.168.1.56) i chcę uzyskać dostęp do hosta lokalnego z innego komputera (192.168.1.2).

Na moim komputerze mogę uzyskać dostęp do hosta lokalnego przez zwykły adres http: // localhost . Apache działa jak zwykle na porcie 80.

Co dokładnie muszę zrobić, aby to osiągnąć? W sieci jest dokumentacja, ale albo nie działają, albo są zbyt fragmentaryczne i mylące, aby je zrozumieć.

Myślę, że muszę dokonać zmian w pliku httpd.conf mojego Apache i pliku hosts. Jakieś pomysły, jakie zmiany wprowadzić?

bcosynot
źródło
2
Osoby, które znalazły to pytanie, mogą być zainteresowane Jak połączyć się z tym hostem lokalnym z innego komputera w tej samej sieci? .
Martin Thoma
1
Oto, co zrobiłem i pracowałem dla mnie w systemie Windows 10: przejdź do cmd i wpisz ipconfig, a następnie znajdź swój adres IPv4 i zmień nazwę adresu URL swojej witryny na ten adres IP, np .: 192.168.0.2/example . Następnie wyszukaj w systemie Windows „Zezwól aplikacji na przechodzenie przez zaporę systemu Windows”, kliknij ją, a następnie kliknij Zmień ustawienia i upewnij się, że serwer http Apache jest zaznaczony. Mam nadzieję, że to pomoże
csandreas1
Mam witrynę o nazwie app.sitename.com. Teraz mogę uzyskać dostęp do witryny na innym komputerze w tej samej sieci przy użyciu adresu IP. Jak uzyskać dostęp za pomocą subdomian. app.ipaddress.com nie działa. Co mam zrobić, aby dodać subdomenę na zdalnym komputerze?
vicky

Odpowiedzi:

112

Lokalny host to po prostu nazwa nadana pętli zwrotnej, np. Jest to jak nazywanie siebie „ja”.

Aby wyświetlić to na innych komputerach, prawdopodobnie potrzebujesz tylko http://192.168.1.56 lub http: // myPcsName, jeśli to nie zadziała, istnieje szansa, że ​​na twoim komputerze działa zapora ogniowa lub httpd.conf nasłuchuje tylko na 127.0.0.1

BugFinder
źródło
httpd.conf: Posłuchaj 80, jeśli muszę coś zmienić, co byś polecił?
bcosynot
1
Mówi tylko, że słuchaj na porcie 80, prawdopodobnie już nasłuchuje. netstat -a, poszukaj elementów na porcie 80, powie ci, na których adresach IP nasłuchuje
BugFinder
1
To znaczy, że nasłuchuje każdego żądania na porcie 80, a nie tylko lokalnego hosta, więc jeśli twój komputer nazywa się vr3609, to http do niego powinno przenieść cię do Twojej witryny.
BugFinder
1
jeśli http na adres IP swojego serwera z serwera, czy to działa? jeśli tak, to sugeruje, że na serwerze znajduje się zapora ogniowa, która blokuje dostęp do niego innym maszynom.
BugFinder
1
Ok, 192.168.1.56, to ta z witryną po prawej? Musisz spojrzeć na konfigurację tego. Jaki system operacyjny to działa? To, jakie oprogramowanie zapory jest na nim zainstalowane, będzie się różnić. Musisz dowiedzieć się, jakie oprogramowanie zapory na nim jest, a następnie wymyślić, jak dodać do niego port 80, aby wpuszczać inne komputery. Jeśli jego okna, prawdopodobnie są częścią twojego oprogramowania antywirusowego, a może nawet Microsoft . Jeśli szanse na Linuksa są jego ipchains, ale jest to zupełnie nowy obszar pytań.
BugFinder
46

Dzięki za szczegółowe wyjaśnienie.

Tylko do opracowania, w Windows przejdź do Panelu sterowania -> Zapora, w wyjątkach „dodaj http i port 80”. Następnie w sekcji Usługi zaznacz „http (port serwera WWW 80)” i „https (port serwera WWW 443)” TYLKO jeśli potrzebujesz również protokołu HTTPS. OK, OK, Zamknij

Następnie przejdź do dowolnego komputera w sieci i wpisz w przeglądarce internetowej http: // nazwa-komputera (gdzie zmieniasz zaporę ogniową i ma na niej uruchomiony xampp) i szczęśliwe dni :)

Radża
źródło
7
Poszedłem do Panelu sterowania> Zapora systemu Windows> Zezwalaj aplikacji przez Zaporę systemu Windows> Zezwalaj na inną aplikację> Przeglądaj do: XAMPP / apache / bin / httpd.exe i zezwoliłem na to. Już działa!
shasi kanth
Dziękuję Ci. Pracować w porządku.
jewelhuq
Aby dodać wyjątek Zapory systemu Windows, możesz odwiedzić to, aby dowiedzieć się, jak to zrobić
Alejandro Nava,
37

to jest bardzo łatwe

  1. Przejdź do panelu sterowania XAMPP
  2. Kliknij apache> config> Apache (httpd.conf) wprowadź opis obrazu tutaj
  3. Wyszukaj Listen 80 i zamień na Listen 8080
  4. Następnie sprawdź lokalny adres IP za pomocą polecenia ipconfig (konsola cmd)
  5. Wyszukaj ServerName localhost: 80 i zastąp lokalnym adresem IP: 8080 (np. 192.168.1.156: 8080)
  6. Następnie otwórz apache> config> Apache (httpd-xampp.conf) wprowadź opis obrazu tutaj
  7. Szukaj

       <Directory "C:/xampp/phpMyAdmin">
           AllowOverride AuthConfig
           **Require local**   Replace with   **Require all granted**
           ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
       </Directory>```
    
    
  8. Przejdź do xampp> config> kliknij ustawienie usługi i portu i zmień port Apache 8080

  9. zrestartuj xampp
  10. następnie wybierz swój adres IP: 8080 (np. 192.168.1.156: 8080) z innego komputera
Rahul Shewale
źródło
jeśli zamiast wszystkich przyznanych ... wyrzuć statyczny adres IP. jak by to było
Alejandro Maliachi Quintana
nie działa. w moim komputerze działa dobrze, ale nie działa z innego komputera.
MH Fuad
To nie działa na mnie. Otrzymuję błąd certyfikatu: certyfikat serwera NIE zawiera identyfikatora zgodnego z nazwą serwera
Jon Głosował
19

Oto kroki, które należy wykonać, jeśli chcesz, aby aplikacja PHP została zainstalowana na serwerze LAN (nie w sieci)

  1. Uzyskaj wewnętrzny adres IP lub statyczny adres IP serwera (np .: 192.168.1.193)
  2. Otwórz plik XAMPP> apache> conf> httpd.conf w notatniku
  3. Wyszukaj Listen 80
  4. Powyższa linia brzmiałaby następująco - #Listen 0.0.0.0:80 / 12.34.56.78:80
  5. Zmień adres IP i zastąp go statycznym adresem IP
  6. Zapisz plik httpd.conf, upewniając się, że serwer wskazuje #Listen 192.168.1.193:80
  7. W katalogu głównym aplikacji config.php (połączenie db) zamień localhost na adres IP serwera

Uwaga: Jeśli jest zainstalowana zapora, upewnij się, że dodajesz porty http 80 i 8080 do wyjątków i zezwalasz na nasłuchiwanie. Wybierz Panel sterowania> Zapora systemu Windows> Zezwól programowi na komunikację przez zaporę systemu Windows> Dodaj inny program Nazwa: http Port: 80 Dodaj jeszcze jeden jako http - 8080

Jeśli IIS (Microsoft .Net Application Internet Information Server) jest zainstalowany z jakąkolwiek aplikacją Microsoft .Net już na serwerze, to zajęłoby już 80 portów. W takim przypadku zmień #Listen 192.168.1.193:80 na #Listen 192.168.1.193:8080

Mam nadzieję że to pomoże! :)

Shreedhar Bhat
źródło
To rozwiązało to dla mnie. Świetne rzeczy! Zawsze usuwałem #przed lokalnym adresem IP i nie działało, kiedy dodałem skrót komentarza, #który działał po wyjęciu z pudełka bez ponownego uruchamiania maszyny wirtualnej gościa, tylko usługa XAMPP Apache i huk, jest tam. Niezłe. Teraz, jak mogę to zrobić, aby połączyć się z moimi przypisanymi VirutalHosts na maszynie hosta?
lowtechsun
Aby uzyskać dostęp do przypisanych VirtualHosts na maszynie hosta od gościa, po prostu musiałem wprowadzić adres IP hosta i nazwę serwera (serwerów) VirtualHost w pliku HOSTS gościa. Gotowe. Każdy wie, jak odebrać ruch z przeglądarki Gościa na serwer Hosts Apache za pomocą Fiddlera. Pracuj na hoście, ale nie otrzymuj ruchu od gościa.
lowtechsun
Cześć, a co z zakresem adresów IP np. 192.168.1-100. Jak to ustawić?
dkjain
6

To powinno wystarczyć do podstawowej konfiguracji

Ten rodzaj konfiguracji nie psuje phpMyAdmina na hoście lokalnym

Zalecane jest statyczne IP na urządzeniu, na którym działa serwer

W tym przykładzie zastosowano adres IP 192.168.1.x. Twoja konfiguracja sieci może korzystać z innego adresu IP

W httpd.conf w Apache powinieneś mieć:

# 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

Pozostawiłbym pustą nazwę, aby otrzymała wartości domyślne:

# 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.
#

Zezwól na maszyny gości i siebie. Ze względów bezpieczeństwa możesz uniknąć Zezwalaj dla wszystkich, ale zamiast tego użyj określonego adresu IP gościa, na przykład Zezwól z 192.168.1.xxx, gdzie xxx to adres IP komputera gościa. W takim przypadku może być konieczne rozważenie statycznych adresów IP również na komputerach gości

# 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>

Uruchom ponownie wszystkie usługi i ustaw w trybie online za pomocą ikony w zasobniku

Razaman
źródło
6

Przejdź do xampp-control na pasku zadań

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

Notatnik otworzy się z plikiem konfiguracyjnym

Szukaj

Posłuchaj 80

Jedna linia nad nią będzie wyglądała tak: 12.34.56: 80

Zmień to

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

Zrestartuj usługę Apache i sprawdź, mam nadzieję, że powinno działać ...

Joish
źródło
5

Czasami problemem może być zapora sieciowa. Upewnij się, że wyłączyłeś monitorowanie zapory antywirusowej. U mnie to zadziałało.

Mateo Jovani
źródło
4

Jeśli używasz XAMPP 1.8.3, przejdź do pliku httpd-xampp.conf i wyszukaj „# # Nowa koncepcja bezpieczeństwa XAMPP # status-serwera | informacje-serwera))”>

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

"

Wytnij ten kod i zapisz go gdzieś do późniejszego wykorzystania, np. Przywrócenia tej funkcji (pamiętaj, że usunięcie tego kodu naraża Twój komputer na niebezpieczeństwo). Zapisz zmiany na httpd-xampp.conf, zrestartuj usługi na XAMPP i to wszystko.

OnsareTM
źródło
W przypadku XAMPP w wersji 7 opcja „Require local” znajduje się w pliku apache / conf / extra / httpd-vhosts.conf
vivanov
3

Jeśli jesteś podłączony do sieci Wi-Fi, jest to znacznie prostsze. Po prostu znajdź adres IP, w którym połączyłeś się z Wi-Fi. Na przykład:

your-ip to „10.10.55.67”.

Następnie uruchom serwer xampp na swoim komputerze.

Następnie na dowolnym innym komputerze podłączonym do tej samej sieci Wi-Fi n / w wpisz

http://your-ip

Na przykład:http://10.10.55.67

Krishna M
źródło
3

To narzędzie bardzo mnie uratowało, ponieważ nie mam uprawnień administratora na moim komputerze i mam już zainstalowany nodejs. Z jakiegoś powodu konfiguracja w mojej sieci nie daje mi dostępu do innych maszyn po prostu wskazując adres IP w przeglądarce.

# 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/

Thiago C. S Ventura
źródło
3

Uzyskaj dostęp do hosta lokalnego z urządzenia zdalnego

Warunek wstępny : Twoja witryna jest obecnie uruchomiona z narzędziem takim jak serwer na żywohttp://localhost:8081/

a) Opublikuj w tej samej sieci

W tej samej sieci możesz uzyskać dostęp do swojego urządzenia za pomocą aktualnego adresu IP lub nazwy hosta. Możesz znaleźć działający adres IP ipconfig | grep IPv4lub nazwę hosta, wysyłając ping -ado tego adresu IP.

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

Uwaga : aby uzyskać najlepsze wyniki, użyj portu 80, połącz się z siecią prywatną i sprawdź ustawienia zapory.

b) Publikuj w dowolnej sieci (łatwiejsze)

  1. Opcja 1 - możesz użyć ngrok, aby zapewnić przekierowanie portów przez publiczne porty ngrok

    Pobierz ngrok i uruchom następujące polecenie:

    $ ./ngrok http 8081
    

  2. Opcja 2 - Możesz użyć localhost.run do utworzenia tunelu ssh za pomocą następującego polecenia:

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


Uzyskaj dostęp do urządzenia zdalnego z lokalnych narzędzi deweloperskich

Aby połączyć narzędzia programistyczne przeglądarki z podłączonym urządzeniem, postępuj zgodnie z instrukcjami zawartymi w artykule Wprowadzenie do zdalnego debugowania urządzeń z systemem Android

  1. W telefonie włącz Opcje programisty i debugowanie USB
  2. Podłącz telefon do komputera przez USB i ustaw protokół (nie przesyłanie plików / multimediów)
  3. Otwórz narzędzia deweloperskie> Więcej narzędzi> Debugowanie zdalne (spróbuj tutaj, jeśli urządzenie nie zostało wykryte )

  4. Znajdź swoją witrynę i kliknij Sprawdź, co spowoduje otwarcie nowego okna inspektora


Dalsze czytanie:

KyleMit
źródło
1

Oto, co zrobiłem i pracowałem dla mnie w systemie Windows 10 :

1) Naciśnij Windows + r i wpisz cmd . W wierszu polecenia wpisz ipconfig
2) znajdź swój adres IPv4 i zmień nazwę adresu URL witryny na ten adres, np .: http://192.168.0.2/example .
3) Teraz upewnij się, że Twoja zapora ma dostęp do serwera Apache HTTP . Wyszukaj w systemie Windows hasłoZezwalaj aplikacji przez zaporę systemu Windows ”, kliknij je, a następnie w prawym górnym rogu kliknij zmień ustawienia i upewnij się, że serwer Apache HTTP ma jeden znacznik po lewej stronie, a drugi - prywatny lub publiczny. Mam nadzieję, że to pomoże

Teraz możesz uzyskać dostęp do strony internetowej z innych komputerów w sieci LAN

csandreas1
źródło
1

Najpierw przejdź do centrum sieci i udostępniania na komputerze z systemem Windows. I wykonaj kilka czynności, aby uzyskać adres IPv4. Wystarczy zobaczyć ilustrację obrazu

Umieść adres IPv4 w innej przeglądarce komputera. na przykład http // 192.168.0.102

Uwaga

  • Wyłącz zaporę systemu Windows (jeśli nie działa, w przeciwnym razie jest opcjonalna)
To jest Enam
źródło
0

Najpierw przejdź do wiersza polecenia i wpisz

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

następnie dodaj poniżej swój adres IP, a następnie adres URL swojej witryny.

Po drugie przejdź do wiersza polecenia i wpisz notepad c:/xampp/bin/apache/apache2.4.18/conf/extra/httpd-vhosts.conf

następnie dodaj to poniżej

documentroot "Directory of your site"
Allow from all
Require all granted
Carl James Omandam
źródło
0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>
asd
źródło
<Files ".ht *"> Wymagaj lokalnego #Require all denied </Files>
asd
3
Witamy w Stack Overflow! Chociaż ten fragment kodu może rozwiązać problem, dołączenie wyjaśnienia naprawdę pomaga poprawić jakość Twojego posta. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a osoby te mogą nie znać powodów, dla których zaproponowałeś kod. Prosimy również starać się nie zatłaczać kodu komentarzami wyjaśniającymi, ponieważ zmniejsza to czytelność zarówno kodu, jak i wyjaśnień!
kayess
0

Wymień Require Localsię Require all grantedw xampp\apache\conf\extra\httpd-xampp.confpliku.

Sumit
źródło
0

Miałem ten problem. Używałem XAMPP na maszynie wirtualnej, która miała ustawienie sieciowe jako „NAT”. Zmieniłem to na „Bridged” i problem został rozwiązany.

Vidhyadhar Dharmadhikari
źródło
0

Host w lokalnym IP,

Otwórz CMD: ipconfig

Adapter bezprzewodowej sieci LAN Wi-Fi: adres IPv4. . . . . . . . . . . : xx.xxx.xx.xxx

Vineesh TP
źródło
0

Spróbuj:

http://ipaddressofpcwhichhasdatabase:portnumber(80 by default)/filename.extension
Chinthan Narayan
źródło
0

Jeśli komuś nadal jest ciężko, zadziałała ta prosta rzecz:

  1. W twoim głównym systemie powiedzmy Hosting PC ... Wybierz Panel sterowania> Zapora systemu Windows Defender> Zezwalaj aplikacji lub funkcji przez Zaporę Windows Defender> Zmień ustawienia> Znajdź „Serwer Apache HTTP”> Zaznacz oba pola wyboru (w obszarze Prywatne i Publiczny). Zobacz zrzut ekranu

    • W moim przypadku były dwa wpisy „Apache HTTP Server”, więc zaznaczyłem oba pola wyboru dla obu wpisów.
  2. W każdym innym systemie podłączonym do tej samej sieci ... Otwórz przeglądarkę> wpisz: adres IP komputera hostującego, a następnie nazwę projektu w pasku adresu. Przykład: 192.168.72.111/example.com/

Mam nadzieję, że to pomoże! Dzięki.

nareshsr
źródło
-1

Próbowałem więc rozwiązać podobny problem z połączeniem się z zupełnie innym serwerem w mojej własnej sieci LAN, aby po przerwie w zasilaniu, a następnie przywróceniu, mój serwer wrócił do trybu online, a inne systemy nadal mogły mieć łączność z automatyzacją. Jednak moim problemem było to, że DHCP czasami dawało mojemu serwerowi różnicowy adres IP. Ten wątek odpowiedział na mój problem z NAMESERVER, który Windows ma natywnie. Łączyłem się bezpośrednio z moim serwerem IP dodaj http://192.168.1.5 przez plik wsadowy, aby zainicjować połączenie, ale gdy wystąpią problemy z zasilaniem, nie można połączyć. Zmieniłem plik .bat, aby wskazywał na http: // DESKTOP-currentnamewhereserver: porti zrobione. Problem rozwiązany. JEŚLI nie zmienię nazw moich komputerów, wtedy gdy DHCP przekaże PULPITOWI-rzeczywistemu serwerowi nowy adres IP, będzie on nadal identyfikował się jako własna nazwa w sieci LAN i dlatego będzie mógł zaakceptować połączenie niezależnie od jego adresu IP. Po prostu podaj innym osobom w twojej bezprzewodowej sieci LAN nazwę twojego komputera obsługującego serwer Apache i powiedzmy, że jego nazwa to DESKTOP-DOUGHFACTORYHUT, oni wpiszą http: // DOUGHFACTORYHUT: 80 lub inny numer portu, który twoja konfiguracja Apache jest ustawiona na LOCALHOST: 80, które zasadniczo są tym samym, co jest podłączone do lokalnego dynamicznego adresu IP przypisanego przez DHCP lub STATYCZNY adres IP, który ustawiłeś na serwerze.

Mark Hartman
źródło
-2

W pełni zgadzam się z BugFinder.

Mówiąc prościej, po prostu wpisz adres IP 192.168.1.56 w przeglądarce działającej na 192.168.1.2 !

jeśli to nie zadziała, możliwe są następujące przyczyny:

  1. Problem z łącznością sieciową:

    • Przede wszystkim sprawdź łączność sieciową za pomocą polecenia ping 192.168.1.56 w wierszu poleceń / terminalu na komputerze 192.168.1.2.
  2. Problem z zaporą: Twoje ustawienia zapory systemu Windows nie mają reguły zezwalającej na XAMPP (apache). (Najbardziej prawdopodobny problem)

    • (rozwiązanie) przejdź do zaawansowanych ustawień zapory i dodaj reguły ruchu przychodzącego i wychodzącego dla pliku wykonywalnego Apache.
  3. Problem z konfiguracją Apache. : Twój apache jest skonfigurowany do nasłuchiwania tylko lokalnych żądań.

    • (Rozwiązanie) Możesz to zrobić, otwierając plik httpd.conf i zamień Listen 127.0.0.1:80 na Listen 80 lub * Listen : 80
  4. Konflikt portów z innymi serwerami (IIS itp.)

    • (Rozwiązanie) Wyłącz serwer Apache, a następnie otwórz hosta lokalnego w przeglądarce. jeśli zostanie uzyskana jakakolwiek odpowiedź, wyłącz ten serwer i uruchom Apache.

jeśli wszystko powyższe nie działa, prawdopodobnie wystąpił problem z konfiguracją na serwerze Apache. spróbuj go znaleźć, w przeciwnym razie po prostu zainstaluj go ponownie i przenieś wszystkie pliki php (htdocs) do nowej instalacji XAMPP / WAMP.

Smit Patel
źródło
1
Przede wszystkim ten post ma 5 lat, więc ta odpowiedź prawdopodobnie nie będzie pomocna dla OP. Po drugie, możesz użyć Markdown, aby poprawić formatowanie swojej odpowiedzi, aby była bardziej czytelna i łatwiejsza do naśladowania. Zaufaj mi, że dobrze jest wiedzieć. :-)
Isiah Meadows
-3

Aby uruchomić serwer Nodejs przez sieć

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

uruchom http: // yournetworkipaddress: 3000, aby uzyskać dostęp do aplikacji przez sieć lokalną (LAN)

Kroki, aby znaleźć IP sieci.

System operacyjny Mac

  1. Przejdź do Preferencje systemowe> Sieć
  2. Sprawdź adres IP sieci pod podłączonym.
Sumit Kasana
źródło