为什么我可以监听 ifconfig 未列出的 IP?

为什么我可以监听 ifconfig 未列出的 IP?

我正在研究一个旧系统(Xen 集群),并试图了解其架构。似乎有一些服务正在监听某个 IP(例如 1.2.3.4),但ifconfig输出中没有显示:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3e:98:46:4b  
          inet addr:3.3.3.3  Bcast:3.3.3.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fe98:464b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2701271309 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2580523122 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2013971483375 (1.8 TiB)  TX bytes:1994970579127 (1.8 TiB)

eth0:0    Link encap:Ethernet  HWaddr 00:16:3e:98:46:4b  
          inet addr:10.0.5.4  Bcast:10.0.5.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12776938 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12776938 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2103144670 (1.9 GiB)  TX bytes:2103144670 (1.9 GiB)

如果我nc监听了 IP 1.2.3.4,外部就可以访问它:

nc -s 1.2.3.4 -p 8081 -l

(即我可以通过 telnet 或nc1.2.3.4:8081 发送数据)。

这让我得出结论,没有 NAT。但是,为什么没有ifconfig列出 IP?

答案1

我见过一些情况,其中ifconfig没有显示分配给接口的所有地址,但可以通过ip addrip来自iproute2包的位置)来查看。

答案2

     -s 主机名/IP 地址
             指定用于发送数据包的接口的 IP。
             在某些平台上,这可以用于 UDP 欺骗
             使用 ifconfig(8) 来启动一个具有所需
             源 IP 地址。
$ nc -s 1.2.3.4 -p 8081 -l &
无法使用绑定抓取 1.2.3.4:8081:无法分配请求的地址

也许如果你ifconfig从另一个终端会话运行同时 nc仍在运行,您可能会看到正在发生的事情。

相关内容