Wenn ich Daten unter Verwendung des öffentlichen Hostnamens an meinen Computer sende, werden sie dann tatsächlich über das Internet übertragen?


12

Um klarzustellen:

Ich verwende meinen öffentlichen Hostnamen, um eine Verbindung zu einer MySQL-Datenbank herzustellen. Der Hostname wird in die externe IP meines Servers aufgelöst (z. B. 1.2.3.4). Gehen die Daten, die ich über die MySQL-Verbindung sende / empfange, überhaupt über das Internet? Wäre es schneller, localhost zu verwenden? Wird die Bandbreite meines Servers beansprucht?

Antworten:


28

Wenn Sie sicher sein wollen, können Sie verwenden traceroute 1.2.3.4. Dadurch werden alle Router zwischen dem Host, auf dem der Befehl ausgeführt wird, und dem Gerät mit der IP-Adresse 1.2.3.4 aufgelistet.


3
+1 für das Einfügen des Wortes "devive" in Ihren Satz. Jetzt kenne ich noch ein englisches Wort.
Gani Simsek

en.wiktionary.org/wiki/devive sagt "devive - leblos machen". Ich bin verwirrt. Vielleicht sollte es "Gerät" sein?
Anon

7
Im Grunde genommen "ist das die letzte Traceroute, die er jemals laufen wird "
Xeoncross,

5
@xeoncross - Das ist eine Hölle einer Traceroute. Woher bekomme ich die Version mit dieser Befehlszeilenoption? Ich arbeite unter Windows XP. Ich bin auch daran interessiert, den Ping des Todes zu installieren.
Anon

6
In Windows würden Sie tracert verwenden
Mauro

15

Wenn Sie "localhost" als Hostnamen für die Verbindung zu Ihrem MySQL-Server verwenden, verwendet MySQL nicht TCP, sondern Sockets. Dies sollte der schnellste Weg sein, um eine Verbindung zu einem lokal laufenden MySQL-Server herzustellen.

Wenn auf Ihrem Server die externe IP-Adresse "ordnungsgemäß" eingerichtet ist, sich also nicht hinter einer Firewall oder einem Proxy in einem internen Netzwerk befindet, verlässt der Datenverkehr Ihren Server nicht, da er weiß, dass die Ziel-IP-Adresse dasselbe System ist.


1
Wenn Sie unter Linux arbeiten, wird die Verbindung mit "localhost" oder "127.0.0.1" über den loAdapter hergestellt. Dies ist ein Pseudoadapter, der nur für diese Adressen verwendet wird. Ich bin mir nicht sicher über Windows, aber ich denke, es hat etwas ähnliches.
Nathan Moos

2
@ Nathan Moos Wie im MySQL-Handbuch angegeben : Bei Verbindungen zu localhost versuchen MySQL-Programme, mithilfe einer Unix-Socket-Datei eine Verbindung zum lokalen Server herzustellen.
Shi

1
Ich habe eine allgemeinere Situation beschrieben, in der Sie eine Verbindung zu localhost herstellen, nicht unbedingt zu MySQL. Entschuldigung, dass ich den Wortlaut der Frage und Antwort ignoriert habe.
Nathan Moos

5

Sie erwähnen nichts über Ihre Routing- oder Switching-Ausrüstung, aber Sie könnten sich sehr viel Mühe geben, um sicherzustellen, dass Ihre Daten vor der Rückkehr nach draußen gelangen, aber in Wirklichkeit werden Ihre Daten mit ziemlicher Sicherheit nicht so herauskommen.


Ich bin mir ziemlich sicher, dass es eine implizite Frage gibt: "Was muss ich überprüfen, um zu wissen, dass die Daten überhaupt nicht nach draußen gelangen?"
Lie Ryan

Ich stimme zu, aber er gibt keine Details zu seinem Routing oder Switching an, so dass es zum gegenwärtigen Zeitpunkt unmöglich ist, mehr hinzuzufügen, ohne wilde Annahmen zu machen.
Chopper3

3

Nein, wenn sich alles auf einer Maschine befindet, verlässt sie die Maschine nicht.


Der gesamte Datenverkehr vom Computer zum Computer wird über die Loopback-Schnittstelle geleitet. Wenn Sie die Verbindung zu Ihrem Netzwerk trennen, funktioniert dies weiterhin.
BillThor

@ BillThor sicher, aber das war nicht die Frage.
mailq

Ich bin mir nicht sicher: Der Name wird in die öffentliche (Internet-) IP-Adresse des Geräts aufgelöst. Befindet sich der Rechner mit Portforwarding hinter NAT, muss er mindestens bis zum Gateway reichen.
Joel Coel

@BillThor Andere IP-Adressen als 127.0.0.1 werden dem Gerät vom Netzwerk zugewiesen (Router / Switch / ISP), sodass durch das Trennen der Verbindung zum Netzwerk die Zuweisung der Adressen effektiv aufgehoben wird.
Lukman

2
Dies gilt nur, wenn der Server weiß, dass es sich um 1.2.3.4 handelt, und wenn er nur weiß, dass er eine interne IP-Adresse (dh 192.168.xx) hat, werden mindestens die Daten an den Router gesendet.
Unkwntech

2

Wenn Ihre Server-IP-Konfiguration auf dem Computer die öffentliche IP-Adresse verwendet, verlässt kein Datenverkehr den Server.

Wenn Ihre IP-Adresse angegeben ist und Ihr Router über die öffentliche IP-Adresse und Ihr Server über eine interne IP-Adresse verfügt, verlässt mindestens der Datenverkehr wahrscheinlich Ihren Server und wird vom Router auf Ihren Server zurückgespiegelt, sofern der Router die Portreflexion als ausführt Teil der Portweiterleitung - in gewisser Weise verlässt kein Datenverkehr Ihr Netzwerk, aber ein Teil des Datenverkehrs verlässt Ihren Server

Ohne Netzwerk-Setup-Informationen kann ich nicht definitiver sein


1

Ziehen Sie Ihr Ethernet-Kabel ab oder trennen Sie Ihr WLAN und versuchen Sie es mit Ihrer Datenbankverbindung. Sie werden Ihre Antwort haben. Keine Aufregung, kein Muss!


Nicht einmal annähernd richtig. Lokales Netzwerk?
Navaho

@navaho Original-Poster sagte, "wäre es schneller, localhost zu verwenden", was darauf hinweist, dass sich die Datenbank auf demselben Computer befindet wie seine Anwendung; Daher ist für die Verwendung meiner Lösung kein lokaler Netzwerkzugriff erforderlich.
Steven Striga

Die Frage war: Wenn ich Daten über das Internet an meinen Computer sende, gehen sie tatsächlich über das Internet? Die Beschreibung ist, dass ich meinen> öffentlichen Hostnamen <verwende, um eine Verbindung zu einer MySQL-Datenbank herzustellen. Der Hostname> wird in die externe IP meines Servers aufgelöst <(zB 1.2.3.4). Gehen die Daten, die ich über die MySQL-Verbindung sende / empfange, überhaupt über das Internet? Ihre Antwort hat die gestellte Frage nicht beantwortet. Ziehen Sie an der Schnur und sehen Sie, was passiert, ist bestenfalls kurz davor. Ja, Sie haben die zweite Frage beantwortet. Wäre es schneller, localhost zu verwenden, aber bei der ursprünglichen Frage kamen Sie zu kurz.
Navaho

0

Ihre Ergebnisse können abweichen, aber ich kann problemlos über die externe Adresse auf mein System zugreifen, wenn der Router nicht mit dem Internet verbunden ist. Dazu musste ich jedoch den Router mit der entsprechenden festen IP-Adresse konfigurieren, da diese normalerweise vom ISP über DHCP vergeben wird.

Was die Geschwindigkeitsdifferenz betrifft, sollte die Verwendung von localhost theoretisch schneller sein, da die verschiedenen mit dem Durchlaufen eines Netzwerks verbundenen Overheads beseitigt werden. In Wirklichkeit sollte der Unterschied jedoch so gering sein, dass Sie ihn nie bemerken werden.


0

Zusätzlich zu traceroute (bereits erwähnt) können Sie tcpdump oder wireshark verwenden und nach Mysql-Verbindungen Ausschau halten, die von Ihrem Host geroutet werden. Localhost sollte immer schneller sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.