为什么我可以通过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) 

如果我在IP 1.2.3.4上有监听,可以通过外部访问:

 nc -s 1.2.3.4 -p 8081 -l 

(即我可以telnet或数码1.2.3.4:8081和发送数据)。

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

我见过ifconfig没有显示分配给接口的所有地址的情况,但可以用ip addr (其中ip来自iproute2包)看到。

      -s主机名/ IP地址
             指定用于发送包的接口的IP地址 - 
              ETS。 在某些平台上,这可以用于UDP欺骗
             使用ifconfig(8)调出所需的虚拟接口
             源IP地址。
 $ nc -s 1.2.3.4 -p 8081 -l&
不能用bind绑定1.2.3.4:8081:不能分配请求的地址

也许如果你从另一个terminal会话运行ifconfig同时 nc仍在运行,你可能会看到发生了什么。