Se eu enviar dados para o meu computador usando seu nome de host público, ele realmente passa pela Internet?

12

Esclarecer:

Estou usando meu nome de host público para conectar-se a um banco de dados MySQL. O nome do host é resolvido para o IP externo do meu servidor (por exemplo, 1.2.3.4). Os dados que estou enviando / recebendo através da conexão MySQL estão passando pela Internet? Seria mais rápido usar o host local? Vai ocupar a largura de banda do meu servidor?

Tom Marthenal
fonte

Respostas:

28

Se você quer ter certeza, pode usar traceroute 1.2.3.4. Isso listará todos os roteadores entre o host que está executando o comando e o dispositivo com o endereço IP 1.2.3.4.

mouviciel
fonte
3
+1 por incorporar a palavra "devive" em sua frase. Agora eu sei mais uma palavra em inglês.
precisa saber é o seguinte
en.wiktionary.org/wiki/devive diz "devive - Tornar sem vida". Estou confuso. Talvez devesse ser "dispositivo"?
anon
7
Então, basicamente, " essa é a última traceroute que ele nunca vai funcionar "
Xeoncross
5
@xeoncross - Esse é um inferno de um traceroute. Onde obtenho a versão que possui essa opção de linha de comando? Estou no Windows XP. Também estou interessado em instalar o ping da morte.
anon
6
em janelas que você usaria tracert
Mauro
15

Se você usar "localhost" como nome de host para se conectar ao servidor MySQL, o MySQL não usará TCP, mas soquetes. Essa deve ser a maneira mais rápida de se conectar a um servidor MySQL em execução local.

Se o seu servidor tiver o IP externo configurado "corretamente", ou seja, não estiver protegido por um firewall ou proxy em uma rede interna, o tráfego não sairá do servidor, pois ele sabe que o endereço IP de destino é o mesmo sistema.

Shi
fonte
1
Além disso, se você estiver no Linux, usar "localhost" ou "127.0.0.1" se conectará através do loadaptador, que é um pseudo-adaptador usado apenas para esses endereços. Não tenho certeza sobre o Windows, mas acho que tem algo semelhante.
1913 Nathan Moos
2
@Nathan Moos Conforme declarado no manual do MySQL : Para conexões com o host local, os programas MySQL tentam se conectar ao servidor local usando um arquivo de soquete Unix.
Shi
1
Eu estava descrevendo uma situação mais genérica em que você está se conectando ao host local, não necessariamente ao MySQL. Desculpe por ter ignorado a redação da pergunta e resposta.
Nathan Moos
5

Você não menciona nada sobre o seu roteamento ou equipamento de comutação, mas pode se esforçar para garantir que seus dados saiam antes de voltar, mas, na realidade, quase certamente seus dados não sairão dessa maneira.

Chopper3
fonte
Tenho certeza de que há uma pergunta implícita: "O que preciso verificar para saber se os dados não viajam para fora?"
Lie Ryan
Concordo, mas ele não fornece nenhum detalhe sobre seu roteamento ou comutação, por isso é impossível, nesta fase, adicionar mais sem fazer suposições malucas.
Chopper3
3

Não, se tudo estiver em uma máquina, ela não sai da máquina.

mailq
fonte
Todo o tráfego da máquina para a máquina é roteado pela interface de loopback. Se você se desconectar da sua rede, ele ainda funcionará.
BillThor
@ BillThor claro, mas essa não era a questão.
mailq
Não tenho certeza: disse que o nome é resolvido para o endereço IP público (internet) da máquina. Se a máquina estiver atrás do NAT usando encaminhamento de porta, ela precisará ir pelo menos até o gateway.
Joel Coel
Os endereços IP do @BillThor que não sejam 127.0.0.1 são atribuídos à máquina pela rede (roteador / switch / ISP), portanto, desconectar da rede desassocia efetivamente os endereços.
Lukman
2
Isso só é verdade se o servidor souber que é 1.2.3.4, se souber apenas que possui um IP interno (por exemplo, 192.168.xx) que os dados serão, no mínimo, enviados ao roteador.
Unkwntech 13/08
2

se a configuração IP do servidor em sua máquina usar o endereço IP público, nenhum tráfego sairá do servidor (mas é mais seguro ter certeza de usar o host local de qualquer maneira para obter os benefícios de desempenho)

se o seu IP for nat'ed e o seu roteador tiver o ip público e o servidor tiver um IP interno, pelo menos o tráfego provavelmente sairá do servidor e será refletido de volta no servidor a partir do roteador, assumindo que o roteador faça a reflexão da porta como parte de seu encaminhamento de porta - portanto, em certo sentido, nenhum tráfego sairá da sua rede, mas algum tráfego sairá do seu servidor

sem qualquer informação de configuração de rede, não posso ser mais definitivo do que isso

anthonysomerset
fonte
1

Desconecte o cabo Ethernet ou desconecte o seu wifi e tente sua conexão com o banco de dados e você terá a sua resposta. Sem confusão, sem confusão!

Steven Striga
fonte
Nem perto de corrigir. Rede local?
Navaho
@navaho O pôster original dizia "seria mais rápido usar o host local", o que indica que o banco de dados está na mesma máquina que seu aplicativo; portanto, para usar minha solução, o acesso à rede local não é necessário.
Steven Striga
A pergunta era: se eu envio dados para o meu computador pela Internet, eles realmente passam pela Internet? A descrição é que estou usando meu> public hostname <para conectar-se a um banco de dados MySQL. O nome do host> resolve para o IP externo do meu servidor <(por exemplo, 1.2.3.4). Os dados que estou enviando / recebendo através da conexão MySQL estão passando pela Internet? Sua resposta não respondeu à pergunta como colocada. Arranque o cordão e veja o que acontece é, na melhor das hipóteses, curto. Sim, você respondeu à pergunta secundária. Seria mais rápido usar o host local, mas, quanto à pergunta original, você ficou aquém.
Navaho
0

Seus resultados podem ser diferentes, mas consigo acessar meu sistema via endereço externo muito bem com o roteador desconectado da Internet. No entanto, para fazer isso, tive que configurar o roteador com o endereço IP fixo apropriado, pois isso normalmente é emitido pelo ISP via DHCP.

Quanto à diferença de velocidade, teoricamente, o uso do host local deve ser mais rápido, pois remove as várias despesas gerais envolvidas na travessia de uma rede. Em termos reais, embora a diferença deva ser tão mínima que você nunca consiga perceber.

John Gardeniers
fonte
0

Além do traceroute (já mencionado), você pode usar o tcpdump ou o wireshark e observar as conexões mysql sendo roteadas para fora do seu host. O host local sempre deve ser mais rápido.

Andrew Case
fonte