Si j'envoie des données à mon ordinateur en utilisant son nom d'hôte public, est-ce qu'il passe réellement sur Internet?


12

Clarifier:

J'utilise mon nom d'hôte public pour me connecter à une base de données MySQL. Le nom d'hôte se résout en IP externe de mon serveur (par exemple 1.2.3.4). Les données que j'envoie / reçois via la connexion MySQL transitent-elles sur Internet? Serait-il plus rapide d'utiliser localhost? Va-t-il occuper la bande passante de mon serveur?

Réponses:


28

Si vous voulez être sûr, vous pouvez utiliser traceroute 1.2.3.4. Cela répertoriera tous les routeurs entre l'hôte exécutant la commande et le périphérique avec l'adresse IP 1.2.3.4.


3
+1 pour avoir incorporé le mot «devive» dans votre phrase. Maintenant, je connais un mot anglais de plus.
Gani Simsek

en.wiktionary.org/wiki/devive dit "devive - Pour rendre sans vie". Je suis confus. Peut-être que ce devrait être "appareil"?
anon

7
Donc, fondamentalement, " c'est la dernière traceroute qu'il courra "
Xeoncross

5
@xeoncross - C'est un enfer d'une traceroute. Où puis-je obtenir la version qui a cette option de ligne de commande? Je suis sous Windows XP. Je souhaite également installer le ping de la mort.
Anon

6
dans les fenêtres, vous utiliseriez tracert
Mauro

15

Si vous utilisez "localhost" comme nom d'hôte pour vous connecter à votre serveur MySQL, MySQL n'utilisera pas TCP, mais des sockets. Cela devrait être le moyen le plus rapide de se connecter à un serveur MySQL fonctionnant localement.

Si votre serveur a une adresse IP externe configurée "correctement", c'est-à-dire qu'il n'est pas derrière un pare-feu ou un proxy dans un réseau interne, le trafic ne quittera pas votre serveur car il sait que l'adresse IP cible est le même système.


1
De plus, si vous êtes sous Linux, l'utilisation de "localhost" ou "127.0.0.1" se connectera via l' loadaptateur, qui est un pseudo-adaptateur qui n'est utilisé que pour ces adresses. Je ne suis pas sûr de Windows, mais je pense qu'il a quelque chose de similaire.
Nathan Moos

2
@Nathan Moos Comme indiqué dans le manuel MySQL : Pour les connexions à localhost, les programmes MySQL tentent de se connecter au serveur local en utilisant un fichier socket Unix.
Shi

1
Je décrivais une situation plus générique où vous vous connectez à localhost, pas nécessairement MySQL. Désolé d'avoir ignoré le libellé de la question et de la réponse.
Nathan Moos

5

Vous ne mentionnez rien au sujet de votre équipement de routage ou de commutation, mais vous pouvez vous mettre en quatre pour vous assurer que vos données sortent avant de revenir, mais en réalité presque certainement vos données ne sortiront pas de cette façon.


Je suis sûr qu'il y a une question implicite: "Que dois-je vérifier pour savoir que les données ne voyagent pas du tout à l'extérieur?"
Lie Ryan

Je suis d'accord, mais il ne fournit aucun détail sur son routage ou sa commutation, il est donc impossible à ce stade d'en ajouter plus sans faire d'hypothèses folles.
Chopper3

3

Non si tout est sur une seule machine, elle ne quitte pas la machine.


Tout le trafic de la machine vers la machine est acheminé via l'interface de bouclage. Si vous vous déconnectez de votre réseau, cela fonctionnera toujours.
BillThor

@BillThor bien sûr, mais ce n'était pas la question.
mailq

Pas sûr à ce sujet: il a dit que le nom se résout à l'adresse IP publique (Internet) de la machine. Si la machine est derrière NAT en utilisant le transfert de port, elle doit aller au moins jusqu'à la passerelle.
Joel Coel

Les adresses IP @BillThor autres que 127.0.0.1 sont attribuées à la machine par le réseau (routeur / commutateur / FAI), donc la déconnexion du réseau désaffecte efficacement les adresses.
Lukman

2
Cela n'est vrai que si le serveur sait que c'est 1.2.3.4, s'il sait seulement qu'il a en ip interne (ie 192.168.xx) que les données seront, au minimum, envoyées au routeur.
Unkwntech

2

si la configuration IP de votre serveur sur sa machine utilise l'adresse IP publique, alors aucun trafic ne quittera votre serveur (mais il est plus sûr d'être sûr et d'utiliser localhost de toute façon pour les avantages de performance)

si votre adresse IP est nat'e et que votre routeur a l'IP publique et que votre serveur a une adresse IP interne, alors au moins le trafic quittera probablement votre serveur et sera reflété sur votre serveur à partir du routeur en supposant que le routeur fait la réflexion du port comme une partie de sa redirection de port - donc dans un sens, aucun trafic ne quittera votre réseau, mais une partie du trafic quittera votre serveur

sans aucune information de configuration du réseau, je ne peux pas être plus définitif que cela


1

Débranchez votre câble Ethernet ou déconnectez votre wifi et essayez votre connexion à la base de données et vous aurez votre réponse. Pas d'histoires, pas d'histoires!


Pas même près de corriger. Réseau local?
navaho

@navaho L'affiche originale a dit "serait-il plus rapide d'utiliser localhost" qui indique que la base de données est sur la même machine que son application; par conséquent, pour utiliser ma solution, l'accès au réseau local n'est pas nécessaire.
Steven Striga

La question était la suivante: si j'envoie des données à mon ordinateur via Internet, est-ce qu'elles passent réellement par Internet? La description est que j'utilise mon> nom d'hôte public <pour me connecter à une base de données MySQL. Le nom d'hôte> se résout en IP externe de mon serveur <(par exemple 1.2.3.4). Les données que j'envoie / reçois via la connexion MySQL transitent-elles sur Internet? Votre réponse n'a pas répondu à la question posée. Tirez sur le cordon et voyez ce qui se passe au mieux. Oui, vous avez répondu à la question secondaire, serait-il plus rapide d'utiliser localhost, mais en ce qui concerne la question d'origine, vous avez été court.
navaho

0

Vos résultats peuvent différer mais je peux accéder à mon système via l'adresse externe très bien avec le routeur déconnecté d'Internet. Cependant, pour ce faire, j'ai dû configurer le routeur avec l'adresse IP fixe appropriée, car celle-ci est normalement émise par le FAI via DHCP.

Quant à la différence de vitesse, l'utilisation de localhost devrait théoriquement être plus rapide car elle supprime les différents frais généraux impliqués dans la traversée d'un réseau. En termes réels, la différence doit être si minime que vous ne devriez jamais pouvoir la remarquer.


0

En plus de traceroute (déjà mentionné), vous pouvez utiliser tcpdump ou WireShark et surveiller les connexions mysql acheminées hors de votre hôte. Localhost devrait toujours être plus rapide.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.