linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

时间:2021-11-16 22:28:45
如题,求大神解释。为什么在没有加 lo:0这个IP之前,其他电脑可以正常ping通,加了之后就不行

10 个解决方案

#1


可以提供下以下命令的输出吗
ifconfig
route
arp 

#2


我也想知道.....

#3


引用 楼主 li_danwang 的回复:
如题,求大神解释。为什么在没有加 lo:0这个IP之前,其他电脑可以正常ping通,加了之后就不行


ifconfig 如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

增加 lo:0的命令:  ifconfig lo:0 192.168.100.229 netmask 255.255.255.0 up
再次ifconfig查看如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

查看route:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了


另外个电脑ping这个台电脑,从此就ping不通这个电脑了。没有设置之前是可以正常相互ping通的。另外还发现虽然外面无法ping这台电脑,但是这台电脑可以正常ping外面的电脑

#4


引用 3 楼 li_danwang 的回复:
Quote: 引用 楼主 li_danwang 的回复:

如题,求大神解释。为什么在没有加 lo:0这个IP之前,其他电脑可以正常ping通,加了之后就不行


ifconfig 如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

增加 lo:0的命令:  ifconfig lo:0 192.168.100.229 netmask 255.255.255.0 up
再次ifconfig查看如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

查看route:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了


另外个电脑ping这个台电脑,从此就ping不通这个电脑了。没有设置之前是可以正常相互ping通的。另外还发现虽然外面无法ping这台电脑,但是这台电脑可以正常ping外面的电脑


首先 对于楼主为什么要在lo:0上设置一个和eth0的IP同一网段的IP地址 表示疑惑。不知道楼主的目的是什么。

然后对于楼主的问题简单试验了下,确实如楼主所说的结果。
原因的话,通过抓包进行简单的分析。

没有lo:0的情况下,电脑A ping linux的eth0时, 首先发arp包,eth0应答arp包,告诉电脑A(自己的eth0的mac地址)
电脑A知道linux eth0的mac地址后,封装并发送icmp request包,linux eth0收到icmp request包后应答 icmp reply
至此 一个成功的ping过程结束

有lo:0的情况下,电脑A仍然首先发arp包,但此时linux  eth0收到arp包,并没有进行应答,也就是说没有告诉
电脑A 自己eth0的mac地址是多少。 电脑A将无法封包发送icmp request包

至于linux 为什么没有应答arp包,我觉得应该是linux 内核判断有2个同一网段的接口,不知道从哪个接口进行应答,
丢弃了arp 请求包。 





#5


至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通

#6


引用 楼主 li_danwang 的回复:
如题,求大神解释。为什么在没有加 lo:0这个IP之前,其他电脑可以正常ping通,加了之后就不行

 
我又出现一个现象,如果设置 lo:0的掩码为 255.255.255.255的时候,一切都正常,Linux可以ping外面,外面也可以ping Linux的eth0的IP,也可以ping通 lo:0的IP,能否详细介绍下这两种现象产生的具体原因呢,谢谢

#7


引用 5 楼 cxgsuda 的回复:
至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象

#8


引用 7 楼 li_danwang 的回复:
Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象



Loopback IP Addresses
The IP address range 127.0.0.0 – 127.255.255.255 is reserved for loopback i.e. a Host’s self-address. Also known as localhost address. This loopback IP address is managed entirely by and within the operating system. Using loopback addresses, enable the Server and Client processes on a single system to communicate with each other. When a process creates a packet with destination address as loopback address, the operating system loops it back to itself without having any interference of NIC.

Data sent on loopback is forward by the operating system to a virtual network interface within operating system. This address is mostly used for testing purposes like client-server architecture on a single machine. Other than that, if a host machine can successfully ping 127.0.0.1 or any IP from loopback range, implies that the TCP/IP software stack on the machine is successfully loaded and working.

这是我找到的一段英文说明, 说127.x.x.x/8 被预留位loopback 的地址空间, 每个范围内的IP都代表本机
这应该可以解释配置lo:0 为一个网段时 的2种情况
1) 任意IP都能ping通(因为都代表本机)
2) eth0 ping不通(因为被OS预留了)

#9


引用 7 楼 li_danwang 的回复:
Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象


引用 8 楼 cxgsuda 的回复:
Quote: 引用 7 楼 li_danwang 的回复:

Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象



Loopback IP Addresses
The IP address range 127.0.0.0 – 127.255.255.255 is reserved for loopback i.e. a Host’s self-address. Also known as localhost address. This loopback IP address is managed entirely by and within the operating system. Using loopback addresses, enable the Server and Client processes on a single system to communicate with each other. When a process creates a packet with destination address as loopback address, the operating system loops it back to itself without having any interference of NIC.

Data sent on loopback is forward by the operating system to a virtual network interface within operating system. This address is mostly used for testing purposes like client-server architecture on a single machine. Other than that, if a host machine can successfully ping 127.0.0.1 or any IP from loopback range, implies that the TCP/IP software stack on the machine is successfully loaded and working.

这是我找到的一段英文说明, 说127.x.x.x/8 被预留位loopback 的地址空间, 每个范围内的IP都代表本机
这应该可以解释配置lo:0 为一个网段时 的2种情况
1) 任意IP都能ping通(因为都代表本机)
2) eth0 ping不通(因为被OS预留了)



但是我把 lo:0 的子网掩码设置为255.255.255.255之后,外面的电脑就可以正常ping这台Linux电脑呢,而且可以ping eth0和lo:0两个都可以。

#10


引用 9 楼 li_danwang 的回复:
Quote: 引用 7 楼 li_danwang 的回复:

Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象


引用 8 楼 cxgsuda 的回复:
Quote: 引用 7 楼 li_danwang 的回复:

Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象



Loopback IP Addresses
The IP address range 127.0.0.0 – 127.255.255.255 is reserved for loopback i.e. a Host’s self-address. Also known as localhost address. This loopback IP address is managed entirely by and within the operating system. Using loopback addresses, enable the Server and Client processes on a single system to communicate with each other. When a process creates a packet with destination address as loopback address, the operating system loops it back to itself without having any interference of NIC.

Data sent on loopback is forward by the operating system to a virtual network interface within operating system. This address is mostly used for testing purposes like client-server architecture on a single machine. Other than that, if a host machine can successfully ping 127.0.0.1 or any IP from loopback range, implies that the TCP/IP software stack on the machine is successfully loaded and working.

这是我找到的一段英文说明, 说127.x.x.x/8 被预留位loopback 的地址空间, 每个范围内的IP都代表本机
这应该可以解释配置lo:0 为一个网段时 的2种情况
1) 任意IP都能ping通(因为都代表本机)
2) eth0 ping不通(因为被OS预留了)



但是我把 lo:0 的子网掩码设置为255.255.255.255之后,外面的电脑就可以正常ping这台Linux电脑呢,而且可以ping eth0和lo:0两个都可以。


子网掩码设置为255.255.255.255的时候 ,被OS预留的IP只有一个IP 192.168.100.229
eth0的IP地址可以正常工作,所以外部可以ping通eth0。

至于能ping通lo:0, 我抓包试验了一下,所有的ICMP包还是经过eth0转发的.
这边我觉得还是由于eth0 和lo:0配置了同一个网段,而lo:0又实际上是虚接口导致的
这个理解可能有点问题! 

不过楼主不同接口还是应该配置不同网段的IP

#1


可以提供下以下命令的输出吗
ifconfig
route
arp 

#2


我也想知道.....

#3


引用 楼主 li_danwang 的回复:
如题,求大神解释。为什么在没有加 lo:0这个IP之前,其他电脑可以正常ping通,加了之后就不行


ifconfig 如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

增加 lo:0的命令:  ifconfig lo:0 192.168.100.229 netmask 255.255.255.0 up
再次ifconfig查看如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

查看route:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了


另外个电脑ping这个台电脑,从此就ping不通这个电脑了。没有设置之前是可以正常相互ping通的。另外还发现虽然外面无法ping这台电脑,但是这台电脑可以正常ping外面的电脑

#4


引用 3 楼 li_danwang 的回复:
Quote: 引用 楼主 li_danwang 的回复:

如题,求大神解释。为什么在没有加 lo:0这个IP之前,其他电脑可以正常ping通,加了之后就不行


ifconfig 如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

增加 lo:0的命令:  ifconfig lo:0 192.168.100.229 netmask 255.255.255.0 up
再次ifconfig查看如图:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了

查看route:
linux系统中配置lo:0一个IP后(该IP和eth0在同一个网段),其他电脑就无法ping通该电脑了


另外个电脑ping这个台电脑,从此就ping不通这个电脑了。没有设置之前是可以正常相互ping通的。另外还发现虽然外面无法ping这台电脑,但是这台电脑可以正常ping外面的电脑


首先 对于楼主为什么要在lo:0上设置一个和eth0的IP同一网段的IP地址 表示疑惑。不知道楼主的目的是什么。

然后对于楼主的问题简单试验了下,确实如楼主所说的结果。
原因的话,通过抓包进行简单的分析。

没有lo:0的情况下,电脑A ping linux的eth0时, 首先发arp包,eth0应答arp包,告诉电脑A(自己的eth0的mac地址)
电脑A知道linux eth0的mac地址后,封装并发送icmp request包,linux eth0收到icmp request包后应答 icmp reply
至此 一个成功的ping过程结束

有lo:0的情况下,电脑A仍然首先发arp包,但此时linux  eth0收到arp包,并没有进行应答,也就是说没有告诉
电脑A 自己eth0的mac地址是多少。 电脑A将无法封包发送icmp request包

至于linux 为什么没有应答arp包,我觉得应该是linux 内核判断有2个同一网段的接口,不知道从哪个接口进行应答,
丢弃了arp 请求包。 





#5


至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通

#6


引用 楼主 li_danwang 的回复:
如题,求大神解释。为什么在没有加 lo:0这个IP之前,其他电脑可以正常ping通,加了之后就不行

 
我又出现一个现象,如果设置 lo:0的掩码为 255.255.255.255的时候,一切都正常,Linux可以ping外面,外面也可以ping Linux的eth0的IP,也可以ping通 lo:0的IP,能否详细介绍下这两种现象产生的具体原因呢,谢谢

#7


引用 5 楼 cxgsuda 的回复:
至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象

#8


引用 7 楼 li_danwang 的回复:
Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象



Loopback IP Addresses
The IP address range 127.0.0.0 – 127.255.255.255 is reserved for loopback i.e. a Host’s self-address. Also known as localhost address. This loopback IP address is managed entirely by and within the operating system. Using loopback addresses, enable the Server and Client processes on a single system to communicate with each other. When a process creates a packet with destination address as loopback address, the operating system loops it back to itself without having any interference of NIC.

Data sent on loopback is forward by the operating system to a virtual network interface within operating system. This address is mostly used for testing purposes like client-server architecture on a single machine. Other than that, if a host machine can successfully ping 127.0.0.1 or any IP from loopback range, implies that the TCP/IP software stack on the machine is successfully loaded and working.

这是我找到的一段英文说明, 说127.x.x.x/8 被预留位loopback 的地址空间, 每个范围内的IP都代表本机
这应该可以解释配置lo:0 为一个网段时 的2种情况
1) 任意IP都能ping通(因为都代表本机)
2) eth0 ping不通(因为被OS预留了)

#9


引用 7 楼 li_danwang 的回复:
Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象


引用 8 楼 cxgsuda 的回复:
Quote: 引用 7 楼 li_danwang 的回复:

Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象



Loopback IP Addresses
The IP address range 127.0.0.0 – 127.255.255.255 is reserved for loopback i.e. a Host’s self-address. Also known as localhost address. This loopback IP address is managed entirely by and within the operating system. Using loopback addresses, enable the Server and Client processes on a single system to communicate with each other. When a process creates a packet with destination address as loopback address, the operating system loops it back to itself without having any interference of NIC.

Data sent on loopback is forward by the operating system to a virtual network interface within operating system. This address is mostly used for testing purposes like client-server architecture on a single machine. Other than that, if a host machine can successfully ping 127.0.0.1 or any IP from loopback range, implies that the TCP/IP software stack on the machine is successfully loaded and working.

这是我找到的一段英文说明, 说127.x.x.x/8 被预留位loopback 的地址空间, 每个范围内的IP都代表本机
这应该可以解释配置lo:0 为一个网段时 的2种情况
1) 任意IP都能ping通(因为都代表本机)
2) eth0 ping不通(因为被OS预留了)



但是我把 lo:0 的子网掩码设置为255.255.255.255之后,外面的电脑就可以正常ping这台Linux电脑呢,而且可以ping eth0和lo:0两个都可以。

#10


引用 9 楼 li_danwang 的回复:
Quote: 引用 7 楼 li_danwang 的回复:

Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象


引用 8 楼 cxgsuda 的回复:
Quote: 引用 7 楼 li_danwang 的回复:

Quote: 引用 5 楼 cxgsuda 的回复:

至于楼主说的linux 能ping通 外面电脑的IP,其实都是假象,楼主可以试试ping 一个外面电脑没有使用的 但和lo:0 同一网段的任意
IP,会发现都能ping 通



试了下,果然全部可以ping通,为什么呢,什么导致造成如此惊人假象



Loopback IP Addresses
The IP address range 127.0.0.0 – 127.255.255.255 is reserved for loopback i.e. a Host’s self-address. Also known as localhost address. This loopback IP address is managed entirely by and within the operating system. Using loopback addresses, enable the Server and Client processes on a single system to communicate with each other. When a process creates a packet with destination address as loopback address, the operating system loops it back to itself without having any interference of NIC.

Data sent on loopback is forward by the operating system to a virtual network interface within operating system. This address is mostly used for testing purposes like client-server architecture on a single machine. Other than that, if a host machine can successfully ping 127.0.0.1 or any IP from loopback range, implies that the TCP/IP software stack on the machine is successfully loaded and working.

这是我找到的一段英文说明, 说127.x.x.x/8 被预留位loopback 的地址空间, 每个范围内的IP都代表本机
这应该可以解释配置lo:0 为一个网段时 的2种情况
1) 任意IP都能ping通(因为都代表本机)
2) eth0 ping不通(因为被OS预留了)



但是我把 lo:0 的子网掩码设置为255.255.255.255之后,外面的电脑就可以正常ping这台Linux电脑呢,而且可以ping eth0和lo:0两个都可以。


子网掩码设置为255.255.255.255的时候 ,被OS预留的IP只有一个IP 192.168.100.229
eth0的IP地址可以正常工作,所以外部可以ping通eth0。

至于能ping通lo:0, 我抓包试验了一下,所有的ICMP包还是经过eth0转发的.
这边我觉得还是由于eth0 和lo:0配置了同一个网段,而lo:0又实际上是虚接口导致的
这个理解可能有点问题! 

不过楼主不同接口还是应该配置不同网段的IP