在 Linux 中确定子网中的 IP 是否处于启动或关闭状态的最佳方法

在 Linux 中确定子网中的 IP 是否处于启动或关闭状态的最佳方法

我有一个简单的方法,在四个子网上使用来确定哪些注册的 IP 实际上是启动并处于活动状态,哪些可以删除。

最初,我使用此命令遍历域名列表:

sudo nmap -sS -O -v oN $filename $name

$filename是我的该 IP 的输出文件,也是$name读入的域名。

从该命令中,对于所有报告“主机关闭”的 IP,我运行以下命令:

sudo nmap -Pn -sS -O -v -oN $filename $name

请注意,这里唯一的区别是我现在假设主机已启动,只是为了看看返回了什么。

然而,到目前为止,我见过的所有情况下,所有被扫描的端口都被过滤了,因为主机是假定我无法验证它是否真的第二次扫描运行后。

还有其他想法吗?

答案1

1)希望您不需要被动地收集这些信息。

您可以使用 tcpdump、wireshark、防火墙日志等工具监听流量......随着时间的推移,在系统传输数据或进行其他操作时收集信息。

2)开关

如果你有整洁的开关,他们可能会告诉你很多。

3)地址解析协议

防火墙系统可能仍会响应 ARP 请求,因此您可以让它们显示自己。您真的只需要知道 IP 正在被使用,对吗?如果它会响应任何事情,就不需要知道。

也许这会有用...

# arping -I enp0s31f6 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.122 enp0s31f6
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E]  2.143ms
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E]  2.011ms
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E]  2.006ms
Unicast reply from 192.168.1.1 [14:CC:20:D4:F7:8E]  2.090ms
^CSent 4 probes (1 broadcast(s))
Received 4 response(s)

或者通过使用 nmap 或其他方式尝试连接,然后同时使用 wireshark 等记录 ARP 回复......

最后,nmap 有 Arp 模式。我从未尝试过。

https://nmap.org/book/nping-man-arp-mode.html

4)DHCP

如果任何地址是 DHCP 地址,则 DHCP 租约将显示其上次续订的时间。

答案2

如果 Nmap 报告“主机宕机”,那么你可以假设没有主机使用该 IP 地址。默认主机发现会从绝大多数联网系统获得响应,对于直接连接(相同网络链路)的系统来说,效果会更好,因为使用了 ARP 探测,这是通过以太网链路进行 IP 通信的先决条件。也就是说,如果它不响应 ARP 请求,它就不能拥有 IP 地址。

你说,“由于主机被假定为处于启动状态,我没有办法验证它是否真的处于启动状态”,但事实是,它可能没有启动。事实上,如果所有端口都被过滤,它几乎肯定处于关闭状态。无论出于何种目的,没人愿意沟通使用该 IP 地址,这就是“关闭”的全部含义。

最后,如果您允许 Nmap 通过在命令行或通过-iL输入文件选项提供多个目标规范来并行扫描主机,而不是使用 shell 循环逐个扫描每个主机,您的扫描速度将大大加快。即使您使用后台运行 ( &) 来启动并行nmap进程,也无法超越 Nmap 自身的自适应并行性。

相关内容