webentwicklung-frage-antwort-db.com.de

Wie verbinde ich mich von einem anderen Computer im selben Netzwerk mit diesem localhost?

Ich arbeite gerade an einem Projekt und würde es gerne zu Hause auf zwei Laptops testen, von denen ein Laptop mit dem localhost verbunden ist. Ich verwende XAMPP. Wie mache ich das?

138
user1219572

Das ist definitiv möglich. Wir werden hier einen allgemeinen Fall mit Apache behandeln.

Angenommen, Sie sind ein großer Symfony2-Fan und möchten von 4 verschiedenen Computern (dem Hauptcomputer, auf dem Ihre Website gehostet wird, sowie von einem Mac, einer Windows- und einer Linux-Distribution aus (drahtlos oder nicht) auf Ihre Symfony-Website unter http://symfony.local/ zugreifen. zum Hauptcomputer.

Allgemeine Skizze:

enter image description here


1 Virtuellen Host einrichten:

Sie müssen zuerst einen virtuellen Host in Ihrer Apache-Datei httpd-vhosts.conf einrichten. Am XAMP finden Sie diese Datei hier: C:\xampp\Apache\conf\extra\httpd-vhosts.conf. Am MAMP finden Sie diese Datei hier: Applications/MAMP/conf/Apache/extra/httpd-vhosts.conf. Dieser Schritt bereitet den Webserver auf Ihrem Computer für die Verarbeitung von symfony.local-Anforderungen vor. Sie müssen den Namen des virtuellen Hosts sowie den Stamm-/Hauptordner Ihrer Website angeben. Fügen Sie dazu die folgende Zeile am Ende dieser Datei hinzu. Sie müssen DocumentRootan die Position ändern, an der sich Ihr Hauptordner befindet. Hier habe ich /Applications/MAMP/htdocs/Symfony/ als Stammverzeichnis meiner Website verwendet.

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

2 Konfigurieren Sie Ihre Hosts-Datei:

Damit der Client (in diesem Fall Ihr Browser) versteht, was symfony.local wirklich bedeutet, müssen Sie die hosts-Datei auf Ihrem Computer bearbeiten. Jedes Mal, wenn Sie eine URL in Ihren Browser eingeben, versucht Ihr Computer zu verstehen, was dies bedeutet! symfony.local hat für einen Computer keine Bedeutung. Daher wird versucht, den Namen symfony.local in eine IP-Adresse aufzulösen. Dies geschieht, indem zunächst in der Hosts-Datei auf Ihrem Computer geprüft wird, ob er eine IP-Adresse mit der in der Adressleiste eingegebenen übereinstimmt. Wenn dies nicht möglich ist, wird nach DNS-Server gefragt. Der Trick hier besteht darin, Folgendes an Ihre hosts-Datei anzuhängen.

  • Bei MAC befindet sich diese Datei in /private/etc/hosts;
  • Unter LINUX befindet sich diese Datei in /etc/hosts;
  • In WINDOWS befindet sich diese Datei in \Windows\system32\private\etc\hosts;
  • Unter WINDOWS 7 befindet sich diese Datei in \Windows\system32\drivers\etc\hosts;
  • Unter WINDOWS 10 befindet sich diese Datei in \Windows\system32\drivers\etc\hosts;

Hosts file

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

Von nun an verwendet Ihr Computer bei jeder Eingabe von symfony.local auf diesem Computer die Loopback-Schnittstelle, um eine Verbindung zu symfony.local herzustellen. Es versteht sich, dass Sie auf localhost (127.0.0.1) arbeiten möchten.

3 Von einem anderen Computer auf symfony.local zugreifen:

Wir kommen endlich zu Ihrer Hauptfrage:

Wie kann ich jetzt über einen anderen Computer auf meine Website zugreifen?

Nun, das ist jetzt einfach! Wir müssen nur den anderen Computern mitteilen, wie sie symfony.local finden konnten! Wie machen wir das?

3a IP-Adresse des Computers abrufen, auf dem sich die Website befindet:

Wir müssen zuerst die IP-Adresse des Computers kennen, auf dem sich die Website befindet (an der wir von Anfang an gearbeitet haben). Geben Sie im Terminal unter MAC und LINUXifconfig |grep inet und unter WINDOWSipconfigein. Angenommen, die IP-Adresse dieses Computers lautet 192.168.1.5.

3b Bearbeiten Sie die Hosts-Datei auf dem Computer, von dem aus Sie auf die Website zugreifen möchten.:

Wiederum befindet sich diese Datei auf MAC in /private/etc/hosts; on LINUX, in /etc/hosts; und unter WINDOWS in \Windows\system32\private\etc\hosts (wenn Sie WINDOWS 7 , diese Datei befindet sich in \Windows\system32\drivers\etc\hosts) .. Der Trick besteht nun darin, die IP-Adresse des Computers zu verwenden, auf den wir zugreifen/mit dem wir sprechen möchten:

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

4 Genießen Sie endlich die Ergebnisse in Ihrem Browser

Sie können jetzt in Ihren Browser gehen und http://symfony.local eingeben, um Ihre Website auf verschiedenen Computern zu sehen! Beachten Sie, dass Sie dieselbe Strategie anwenden können, wenn Sie OSX-Benutzer sind und Ihre Website in Internet Explorer über Virtual Box testen (wenn Sie keinen Windows-Computer verwenden möchten). Dies wird in Erstellen der Windows/IE-Testumgebung unter OSX sehr schön erklärt.


Sie können auch von mobilen Geräten auf Ihren lokalen Host zugreifen

Möglicherweise fragen Sie sich, wie Sie von einem mobilen Gerät aus auf Ihre localhost-Website zugreifen können. In einigen Fällen können Sie die Hosts-Datei (iPhone, iPad ...) auf Ihrem Gerät nicht ändern (Jailbreak ausgeschlossen).

Die Lösung besteht dann darin, einen Proxy-Server auf dem Computer zu installieren, auf dem sich die Website befindet, und über Ihr iPhone eine Verbindung zu diesem Proxy herzustellen. Es wird in den folgenden Beiträgen sehr gut erklärt und ist nicht so lang einzurichten:

Auf einem Mac würde ich empfehlen: Testen einer Mac OS X-Website unter Verwendung eines lokalen Hostnamens auf einem mobilen Gerät : Verwenden von SquidMan als Proxy. Es ist eine 100% kostenlose Lösung. Einige Leute können auch Charles als Proxy-Server verwenden, aber es sind 50 $.

Unter Linux können Sie das oben beschriebene Mac OS anpassen, indem Sie Squid als Proxyserver verwenden.

Unter Windows können Sie dies mit Fiddler tun. Die Lösung ist im folgenden Beitrag beschrieben: Überwachung des iPhone-Verkehrs mit Fiddler


Edit 23/11/2017: Hey, ich möchte meine Hosts-Datei nicht ändern

@Dre. Gibt es eine Möglichkeit, von einem anderen Computer aus auf die Website zuzugreifen, indem die Host-Datei nicht manuell bearbeitet wird? Nehmen wir an, ich habe 100 Computer, die auf die Website zugreifen wollten

Dies ist eine interessante Frage, und da sie mit der OP-Frage zusammenhängt, lassen Sie mich helfen.

Sie müssten eine Änderung in Ihrem Netzwerk vornehmen, damit jeder Computer weiß, wo Ihre Website gehostet wird. Die meisten gewöhnlichen Router tun das nicht Sie müssten also Ihren eigenen DNS-Server in Ihrem Netzwerk betreiben.

Angenommen, Sie haben einen Router (192.168.1.1). Dieser Router verfügt über einen DHCP-Server und weist 100 Computern im Netzwerk IP-Adressen zu.

Angenommen, Sie haben wie oben im selben Netzwerk einen Computer unter 192.168.1.5, auf dem sich Ihre Website befindet. Wir werden diese Maschine anrufen pompei.

$ echo $HOSTNAME
pompei

Das gleiche wie zuvor, diese Maschine pompei Bei 192.168.1.5 wird ein HTTP-Server ausgeführt, der Ihrer Website symfony.local dient.

Damit jeder Computer weiß, dass auf symfony.local gehostet wird pompei Wir benötigen nun einen benutzerdefinierten DNS-Server im Netzwerk, der weiß, wo symfony.local gehostet wird. Geräte im Netzwerk können dann Domänennamen auflösen, die von bereitgestellt werden pompei im Inneren.

3 einfache Schritte.

Step 1: DNS Server

Richten Sie einen DNS-Server in Ihrem Netzwerk ein. Lass es uns machen pompei für die Bequemlichkeit und verwenden Sie etwas wie dnsmasq .

Dnsmasq bietet Domain Name System (DNS) Weiterleitung, ... .

Wir wollen pompei DNSmasq ausführen, um DNS-Anforderungen zu verarbeiten Hey, pompei, where is symfony.local und Hey, sure think, it is on 192.168.1.5 but don't take my Word for it zu antworten.

Installieren Sie jetzt dnsmasq. Die dnsmasq-Konfigurationsdatei befindet sich in der Regel in /etc/dnsmasq.conf (abhängig von Ihrer Umgebung).

Ich persönlich benutze no-resolv und google server server=8.8.8.8 server=8.8.8.4.

* Hinweis: * Starten Sie DNSmasq IMMER neu, wenn Sie die Datei/etc/hosts ändern, da sonst keine Änderungen wirksam werden.

Step 2: Firewall

Arbeiten, pompei muss eingehende und ausgehende 'Domain'-Pakete zulassen, die von und zu Port 53 gehen. Natürlich! Dies sind DNS-Pakete und wenn pompei erlaubt sie nicht, es gibt keine Möglichkeit, dass Ihr DNS-Server überhaupt erreicht wird. Öffnen Sie den Port 53. Unter Linux verwenden Sie hierfür klassisch iptablesNAME _ .

Teilen, was ich mir ausgedacht habe, aber Sie werden sehr wahrscheinlich in Ihre Firewall eintauchen und alles gut verstehen müssen.

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

Step 3: Router

Teilen Sie Ihrem Router mit, dass sich Ihr DNS-Server jetzt in 192.168.1.5 befindet. Meistens können Sie sich einfach in Ihren Router einloggen und dies ganz einfach manuell ändern.

Das war's. Wenn Sie auf einem Computer nach symfony.local fragen, wird Ihr DNS-Server gefragt, wo symfony.local gehostet wird, und sobald er seine Antwort vom DNS-Server erhalten hat, wird der gesendet richtiges HTTP request ​​to pompei am 192.168.1.5.

Ich lasse dich damit spielen und genieße die Fahrt. Diese beiden Schritte sind die wichtigsten Richtlinien. Wenn Sie dies zum ersten Mal tun, müssen Sie einige Stunden debuggen und verbringen. Nehmen wir an, dies ist ein bisschen fortgeschrittener Netzwerkbetrieb, es gibt primäre DNS-Server, sekundäre DNS-Server, etc. . Viel Glück!

252
Mick

Zum Testen auf beiden Laptops auf demselben WLAN und im Internet können Sie einen Dienst wie http://localhost.run/ oder https://ngrok.com/

11
tommyvn

Wenn sich beide Maschinen in derselben Arbeitsgruppe befinden, öffnen Sie cmd.exe auf der Maschine, zu der Sie eine Verbindung herstellen möchten, geben Sie ipconfig ein, und notieren Sie die IP-Adresse in der Zeile IPv4 Address.

Verwenden Sie dann auf dem Computer, mit dem Sie eine Verbindung herstellen möchten, http:// + the IP of the target machine.

Das sollte es tun.

9
Codrin Eugeniu

Unter Mac OS X:

  1. Führen Sie im Terminal ifconfig | grep 192. aus, um die interne IP-Adresse Ihres Computers im aktuellen Netzwerk abzurufen. Es könnte so etwas wie 192.168.1.140 sein

  2. Starten Sie einen Server. Beispielsweise kann node server.js einen Server an einem Port starten.

  3. Besuchen Sie auf Ihrem Telefon 192.168.1.140:3000 oder auf welchem ​​Port Ihr Server gerade läuft.

6

Dieses Tool hat mich viel gespart, da ich keine Administratorrechte auf meinem Rechner habe und bereits nodejs installiert habe. Aus irgendeinem Grund gibt mir die Konfiguration in meinem Netzwerk keinen Zugriff auf andere Computer, die nur die IP-Adresse des Browsers zeigen.

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

6
Ventura

es kann sein, dass Ihre Firewalls Sie daran hindern, auf den Webserver des localhost zuzugreifen.
Geben Sie die IP-Adressen der Antivirus-Netzwerksicherheit Ihres Computers für die Sicherheit Ihrer beiden Computer als sichere IP-Adressen ein, falls erforderlich.
So finden Sie die IP-Adresse Ihres Windows-PCs: Start> (Ausführen) Geben Sie Folgendes ein: cmd (Eingabe)
(Dies öffnet den Blackbox-Befehl "Eingabeaufforderung").
Geben Sie ipconfig (Enter) ein.
Nehmen wir an, Ihr Apache oder IIS Webserver ist auf Ihrem PC installiert: 192.168.0.3
und Sie möchten mit Ihrem Laptop auf Ihren Webserver zugreifen. (die IP des Laptops ist 192.168.0.5)
Geben Sie auf Ihrem PC Folgendes ein: http: // localhost/in Ihrem Firefox- oder Internet-Eplorer-Browser, um auf Ihre Daten auf Ihrem Webserver zuzugreifen.
Geben Sie auf Ihrem Laptop http://192.168.0.3/ ein, um auf Ihren Webserver auf Ihrem PC zuzugreifen. 

Damit all diese Dinge funktionieren, müssen Sie einen Webserver ordnungsgemäß installiert haben (z. B. IIS, Apache, XAMP, WAMP usw.).

Wenn dies nicht funktioniert, versuchen Sie, Ihren PC von Ihrem Laptop aus anzupingen:
Öffnen Sie den Befehl propmt auf Ihrem Laptop: Start> cmd (Enter)
ping 192.168.1.3 (Eingeben)
Wenn der Ping-Befehl fehlschlägt, blockieren Firewalls die Verbindung oder die Netzwerkverkabelung ist fehlerhaft. Starten Sie Ihr Modem oder Ihren Netzwerk-Switch und Ihre Maschinen neu.
.__ Schließen Sie Programme wie Chat-Programme, die Ihre Ports verwenden.
Sie können auch eine andere Portnummer versuchen: Http: 192.168.0.3: 80 oder http: 192.168.0.3: 81 oder eine beliebige Zufallszahl am Ende

5
KarlosFontana

Dies ist eine Randnotiz, wenn nach dem Durchführen des obigen Schrittes noch immer kein lokaler Host von einem anderen Gerät aus erreichbar ist. Dies kann daran liegen, dass der Apache ports.conf so konfiguriert wurde, dass er lokal (127.0.0.1) und nicht außerhalb bedient wird.

folgendes prüfen (für Ubuntu Apache2)

  $ cat /etc/Apache2/ports.conf

wenn das Folgende eingestellt ist, 

NameVirtualHost *:80  
Listen 127.0.0.1:80  

Ändern Sie dann den Standardwert 

NameVirtualHost *:80  
Listen 80  
4
ken

Wenn Sie mit Windows arbeiten, verwenden Sie ipconfig , um die lokale IPv4-Adresse abzurufen, und geben Sie diese unter Ihrer Apache-Konfigurationsdatei an: httpd.conf

Listen: 10.20.30.40:80

Starten Sie Ihren Apache-Server neu und testen Sie ihn von einem anderen Computer im Netzwerk.

0
shasi kanth