Alle Schritte zum Einrichten und Auflösen von subdomain.localhost auf 127.0.0.1?

1

Ich fühle mich plötzlich hartnäckig, weil meine Subdomain nicht funktioniert, weil localhost nicht funktioniert. Meine /etc/hosts Datei sieht so aus:

127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

127.0.0.1   develop2win.de
127.0.0.1   develop2win.de

127.0.0.1   alomvar.localhost

Wenn Sie alle Hostnamen für eine IP-Adresse wie folgt in eine Zeile schreiben, funktioniert dies ebenfalls nicht:

127.0.0.1   localhost alomvar.localhost develop2win.de www.develop2win.de

Ich habe auch den für OS X 10.9 Mavericks geeigneten DNS-Resolver mit dem folgenden Befehl neu gestartet:

dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Aber ausgeben nslookup alomvar.localhost am Terminal ergibt folgendes:

Server:     192.168.178.1
Address:    192.168.178.1#53

** server can't find alomvar.localhost: NXDOMAIN

Das ist die IP des Routers in meinem lokalen Netzwerk. Es scheint, als würde die localhost-Hostdatei in diesem Fall zur Auflösung übersprungen. Vor dem Prozess develop2win.de wurde erfolgreich aufgelöst und auf einen lokalen virtuellen Apache-Host verwiesen. Aber jetzt funktioniert auch nicht mehr der gleiche Fehler wie oben (WTF?). Allerdings schlicht nach oben schauen localhost funktioniert immer noch gut:

Server:     192.168.178.1
Address:    192.168.178.1#53

Name:   localhost
Address: 127.0.0.1

Update 1 : Ich habe auch einen Neustart ohne Änderung durchgeführt. Es scheint, als würden DNS-Abfragen nicht lokal gelöst, sondern an meinen Router gesendet.

Was vermisse ich? Hat jemand anderes versucht, eine Subdomain für localhost unter OS X Mavericks einzurichten? Hier geht es nicht einmal um Apache, nur um die DNS-Sache.

Hier ist ein Screenshot meiner DNS-Konfiguration in den Systemeinstellungen , Apropos. Da ich noch nicht genug Reputation habe, um Bilder einzubetten, ist dies ein Link zu einer externen Seite.

Update 2 : Ich habe mit überprüft host und ping Befehle im Terminal, wie auf dave_thompson_085 hingewiesen wurde. Für localhost funktioniert es gut:

$ host localhost
localhost has address 127.0.0.1

Aber für die Subdomain nicht:

$ host alomvar.localhost
Host alomvar.localhost not found: 3(NXDOMAIN)

Pinging localhost funktioniert auch gut:

$ ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.048 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.078 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.076 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.048/0.072/0.085/0.014 ms

Und jetzt, irritierend, funktioniert es auch für die Subdomain:

$ ping alomvar.localhost
PING alomvar.localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.091 ms
^C
--- alomvar.localhost ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.039/0.062/0.091/0.022 ms

Wie kann ich ohne Probleme pingen, aber die Subdomain nicht auflösen? Anscheinend sollte es so funktionieren, wenn ich sehe, wie andere Leute es im Internet gemacht haben. Ich bin kein Riss in Sachen Vernetzung. Ich habe wahrscheinlich etwas anderes gebrochen als das, was direkt zum Einrichten benötigt wird.

Ich habe auch ausgeführt dig auf localhost und der subdomain. Die Ausgabe ist ziemlich lang und ich denke, diese Frage ist schon ziemlich vollgestopft. Sehen Diese Datei für Dig-Ausgabe.

Update 3 : Wenn Sie meinen Mac vom Netzwerk trennen (Ethernet-Netzwerkadapter deaktivieren) dig und host Sie können auch nicht nach localhost suchen.

Update 4 : Ich habe herausgefunden, dass es in Browsern funktioniert, um zu zeigen, dass der virtuelle Apache-Host den so genannten Host hört. Es ist keine Lösung für das Problem, sondern ein Umstand, mit dem ich leben und arbeiten kann. Ich bin jedoch immer noch an einer Lösung des Problems interessiert. Wenn jemand eine weitere Idee hat, sag es mir.

Peter Thomas Horn
quelle
1
nslookup (und auch dig ) Spricht NUR mit DNS-Servern und verwendet nicht die vollständige DNS-Auflösungslogik wie andere (echte?) Programme. Versuchen host einfach auflösen, oder ping zu lösen und nur ein paar harmlose Pakete zu machen. Dies gilt zwar für die meisten, wenn nicht für alle Unix-Versionen, aber MacOSX betont dies in developer.apple.com/library/mac/documentation/Darwin/Reference/… unter "Mac OS X Notice".
dave_thompson_085
Vielen Dank für die Hinweise @ dave_thompson_085, ich habe meine Frage mit den Ergebnissen von aktualisiert host. dig und ping.
Peter Thomas Horn
Entschuldigung, ich hatte einen halben Fehler: Ich erinnerte mich host wie bei normaler Auflösung, aber bei erneuter Überprüfung der Manpage sehe ich auch NUR DNS-Server. Somit nslookup dig host Das Ignorieren der Daten in Ihrer hosts-Datei ist leider dokumentiert. Also geh mit ping.
dave_thompson_085
Ich habe das gleiche Problem 127.0.0.1 subdomain.localhost Innerhalb /etc/hosts/. subdomain.localhost pings gut, allerdings wenn ich den Browser unter öffne http://subdomain.localhost, Ich bekomme ein ERR_NAME_NOT_RESOLVED. Hast du eine Lösung gefunden?
user3019105

Antworten:

2

dig. host, und nslookup alle umgehen den Systemnamenauflöser und fragen den DNS direkt ab. Daher sehen sie keine Namen, die in / etc / hosts definiert sind (es sei denn, sie sind vorhanden.) ebenfalls definiert im DNS-Dienst) oder beliebige mDNS- (auch als Bonjour-) .lokale Namen oder Computereinträge in Verzeichnisdiensten oder ...

Wenn Sie sehen möchten, was der Systemauflöser sieht, ist das beste Werkzeug dscacheutil. Leider ist die Syntax ziemlich unbeholfen ( dscacheutil -q host -a name alomvar.localhost ), also ist es im Allgemeinen schneller etwas zu verwenden ping das den Systemnamenauflöser verwendet. Wenn Sie jedoch vollständige Details wünschen (z. B. ob ein Name in mehrere Adressen aufgelöst wird), dscacheutil ist der Weg zu gehen.

Gordon Davisson
quelle
Ist es noch für OS X Mavericks anwendbar? Ich habe die Manpages ausgecheckt. Wenn Sie die Abfrage wie in Ihrer Antwort ausführen, werden alle Ausgaben zurückgegeben. dscacheutil -statistics gibt an, dass keine Details vom Cache-Knoten abgerufen werden können (wie bei -cachedump ). Ich frage nur, da sich meines Wissens mit Mavericks einige Änderungen ergeben haben.
Peter Thomas Horn
@Alomvar ja, das ist immer noch in Mavericks wahr. Apple hat die Namensauflösung im Verlauf von OS X ein wenig geändert, aber die DNS-Tools ( dig. host, und nslookup ) umging immer die Systemrichtlinie und dscacheutil hat (seit seinem Erscheinen) die Systemrichtlinie befolgt. Mehrere von dscacheutil 's andere Funktionen sind defekt (z. dscacheutil -flushcache jetzt erfordert sudo, und scheint auch dann nicht ganz zu funktionieren ...), aber es sieht immer noch gut aus. Oh, eines hat sich in Mavericks geändert: Die Registerkarte "Nachschlagen" von Network Utility.app verwendet jetzt die Systemrichtlinie dig ).
Gordon Davisson