从基于 Debian 的服务器检测 LAN 上的活动设备

从基于 Debian 的服务器检测 LAN 上的活动设备

简单地说:我如何检测局域网上是否有任何活动设备?

更多详细信息:我有一台充当互联网网关和 wifi 接入点的家庭服务器。由于服务器部分配置,我希望它 24/7/365 全天候运行。问题是,上午 9 点至下午 5 点和晚上 11 点至早上 6 点之间没人在家,也没有使用其他设备,所以我不需要启用 wifi 网络。在上述时间段之间,它只会浪费能源。

服务器放置在不易接近的地方,并且没有显示器和键盘。我想稍微自动化切换 wifi 状态。我想实现的第一件事是带有 led 的小按钮通过 COM 或 USB 端口连接到服务器 PC,以及小脚本,该脚本将从按下的按钮检索信号并切换 wifi 状态。不幸的是,我在电子论坛上的帖子被忽略了,所以我不得不放弃这个想法。

现在我想到了一些 cron 脚本,如果没有活动设备,它将在规定的时间内禁用 wifi。我以为检查 DHCP 租约列表就足够了,但我意识到

/var/lib/misc/dnsmasq.leases

设备断开连接或关闭后仍然存在。我猜是因为租约时间为 12 小时。

那么,将租用时间设置为 1 小时或者更好的是 30 或 15 分钟对于整个局域网来说有什么缺点吗?如果没有,这是一个实现我的需求的好主意吗,或者有更好的方法?

答案1

简单地说:我如何检测局域网上是否有任何活动设备?

答案很简单:nmap。您可以从 repos 安装它,然后可以像这样运行它:

  sudo nmap -sn 192.168.1.0/24

(替换为您自己的 LAN)将对网络上的所有 PC 进行 ping 扫描。如果您怀疑有人阻止 PING,那么您可以发出:

  sudo nmap -PA 192.168.1.0/24
  sudo nmap -PS 192.168.1.0/24

或者你可以尝试发现有关给定主机的所有信息:

   sudo nmap -T5 -A 192.168.1.137

nmap是一款非常棒的程序,能够施展上千种不同的花招。它是发现局域网上所有人的真正工具。

相关内容