如果我使用其公用主机名将数据发送到计算机,它实际上是否可以通过Internet传输?


12

澄清:

我正在使用公共主机名连接到MySQL数据库。主机名解析为服务器的外部IP(例如1.2.3.4)。我通过My​​SQL连接发送/接收的数据是否全部通过Internet传递?使用本地主机会更快吗?它会占用我服务器的带宽吗?

Answers:


28

如果您想确定的话,可以使用traceroute 1.2.3.4。这将列出运行命令的主机与具有1.2.3.4 IP地址的设备之间的所有路由器。


3
+1,用于将“ devive”一词纳入您的句子。现在我又知道了一个英文单词。
加尼·辛塞克

en.wiktionary.org/wiki/devive说“ devive-使死气沉沉”。我很困惑。也许应该是“设备”?
匿名

7
所以基本上,“ 这是他将要运行的最后一条跟踪路线
Xeoncross

5
@xeoncross-那是traceroute的地狱。在哪里可以获得具有此命令行选项的版本?我在Windows XP上。我也对安装ping通感兴趣。
匿名

6
在Windows中,您将使用Tracert
Mauro

15

如果使用“ localhost”作为连接到MySQL服务器的主机名,则MySQL将不使用TCP,而是使用套接字。这应该是连接到本地运行的MySQL服务器的最快方法。

如果您的服务器具有“正确”设置的外部IP,也就是说,它不在内部网络中的防火墙或代理之后,则流量不会离开您的服务器,因为它知道目标IP地址是同一系统。


1
另外,如果您使用的是Linux,则使用“ localhost”或“ 127.0.0.1”将通过lo适配器进行连接,该适配器是伪适配器,仅用于这些地址。不确定Windows,但我认为它具有类似的功能。
内森·穆斯

2
@Nathan Moos如MySQL手册中所述对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。

1
我描述的是一种更一般的情况,其中您连接到本地主机,不一定是MySQL。抱歉,我忽略了问答的措辞。
内森·穆斯

5

您没有提到有关路由或交换设备的任何信息,但是您可以全力以赴,以确保数据在返回之前就已外出,但实际上,几乎可以肯定,您的数据不会以这种方式输出。


我非常确定有一个隐性问题:“我需要检查什么才能知道数据根本不会传输到外部?”
Lie Ryan

我同意,但是他没有提供有关其路由或交换的任何详细信息,因此在现阶段不加任何假设就不可能添加更多内容。
斩波器

3

否,如果全部都在一台计算机上,则它不会离开计算机。


从计算机到计算机的所有流量都通过回送接口路由。如果您断开网络连接,它仍然可以正常工作。
BillThor 2011年

@BillThor当然可以,但这不是问题。
mailq

对此不确定:它说名称解析为机器的公共(互联网)IP地址。如果计算机使用端口转发来支持NAT,则它必须至少到达网关。
乔尔·科尔

@BillThor IP地址(不是127.0.0.1)是由网络(路由器/交换机/ ISP)分配给计算机的,因此从网络断开连接实际上会取消分配地址。
卢克曼

2
只有当服务器知道它是1.2.3.4,或者仅知道它具有内部ip(即192.168.xx)时,这才是正确的,至少将数据发送到路由器。
Unkwntech 2011年

2

如果您的计算机上的服务器IP配置使用公用IP地址,则不会有任何流量离开您的服务器(但可以肯定的是,它更安全,无论如何也可以使用localhost来提高性能)

如果您的IP被保留,并且您的路由器具有公共ip,并且您的服务器具有内部IP,那么至少流量很可能会离开您的服务器,并从路由器反射回您的服务器,假设路由器进行了端口反射,端口转发的一部分-从某种意义上说,没有流量会离开您的网络,但有些流量会离开您的服务器

没有任何网络设置信息,我无法比这更确定


1

拔下以太网电缆或断开wifi,然后尝试连接数据库,您将得到答案。没有大惊小怪,没有糊涂!


甚至没有纠正。本地网络?
navaho 2011年

@navaho原始张贴者说:“使用localhost会更快吗?”表明数据库与他的应用程序位于同一台机器上;因此,使用我的解决方案不需要本地网络访问。
史蒂文·斯特里加

问题是,如果我通过互联网将数据发送到我的计算机,它实际上是否通过互联网发送?描述是我使用我的>公共主机名<连接到MySQL数据库。主机名>解析为服务器的外部IP <(例如1.2.3.4)。我通过My​​SQL连接发送/接收的数据是否全部通过Internet传递?您的答案没有回答所提出的问题。拉起绳索,看看会发生什么,充其量是最多。是的,您回答了第二个问题,使用localhost是否会更快,但是对于原始问题,您的回答很短。
navaho 2011年

0

您的结果可能会有所不同,但是当路由器与Internet断开连接时,我可以通过外部地址访问系统。但是,为此,我必须为路由器配置适当的固定IP地址,因为这通常是ISP通过DHCP发出的。

至于速度差异,理论上使用localhost应该更快,因为它消除了遍历网络所涉及的各种开销。实际上,尽管差异应该很小,以至于您永远都不会注意到它。


0

除了traceroute(已经提到过)之外,您还可以使用tcpdump或wirehark并观察任何mysql连接被路由出主机。Localhost应该总是更快。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.