我正在研究一个旧系统(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 或nc
1.2.3.4:8081 发送数据)。
这让我得出结论,没有 NAT。但是,为什么没有ifconfig
列出 IP?
答案1
我见过一些情况,其中ifconfig
没有显示分配给接口的所有地址,但可以通过ip addr
(ip
来自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
仍在运行,您可能会看到正在发生的事情。