我想知道的是,如果我执行ping localhost
之类的操作,那么数据包会被操作系统重定向并直接转到目标端口,或者数据包是否会通过网络传输到最近的路由器或开关然后将它们弹回计算机?
答案 0 :(得分:19)
没有数据包会进入网络。拔下网线并试一试!
答案 1 :(得分:10)
发送到连接到本地接口的IP地址的任何数据包都不会离开主机。 127.0.0.1在这方面并不特别。 ping 127.0.0.1
和ping 192.168.1.44
都将通过“环回网络设备”发送和接收ICMP数据包。您可以通过拔下以太网电缆并观察TX和RX计数器来确认这一点。
$ /sbin/ifconfig
eth0 Link encap:Ethernet
inet addr:192.168.1.44 Bcast:192.168.3.255 Mask:255.255.252.0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
RX packets:992670 errors:0 dropped:0 overruns:0 frame:0
TX packets:992670 errors:0 dropped:0 overruns:0 carrier:0
答案 2 :(得分:2)
数据包将保留在您的计算机上。
如果您编辑hosts文件(UNIX:/ etc / hosts Windows:C:\ windows \ system32 \ drivers \ etc \ hosts)并更改,则名称“localhost”是hosts文件中127.0.0.1的别名localhost对于任何其他单词,然后您将使用该另一个单词访问您的本地主机。
地址127.0.0.1是一个环回地址,它在RFC3330
中定义答案 3 :(得分:1)
不,它被称为环回是有原因的。 IIRC,不允许在计算机“外面”发送到127.0.0.1的数据包。
答案 4 :(得分:1)
不,数据包不会进入网络。
答案 5 :(得分:1)
这取决于名称解析。
在# echo "69.59.196.211 localhost" > /etc/hosts
之后尝试ping。