在 Windows 网络上,我习惯于使用“查看工作组计算机”来浏览我的工作组。
现在我在一个只有 linux 的网络上。我现在可以使用 samba 并执行相同的操作,但是有没有一种方法可以在不依赖 microsoft wins/browser 协议的情况下实现相同的目标?
是否有任何 linux 软件可用于维护计算机列表,即使它们位于不同的子网上?
谢谢您的回答。
在 Linux 上进行网络映射的最佳方法是使用“nmap”,字面意思是网络映射器。
您可以通过以下两种方式之一进行操作。第一个是 ping 扫描,它只会向 IP 发送 ping 并报告响应的 IP。例如:
msimmons@msimmons-laptop:~$ nmap -sP 192.168.1.1-254
Starting Nmap 4.53 ( http://insecure.org ) at 2009-12-12 07:52 EST
Host Wireless_Broadband_Router.home (192.168.1.1) appears to be up.
Host 192.168.1.3 appears to be up.
Host 192.168.1.4 appears to be up.
Host msimmons-laptop.home (192.168.1.8) appears to be up.
Host 192.168.1.100 appears to be up.
Nmap done: 254 IP addresses (5 hosts up) scanned in 0.869 seconds
Run Code Online (Sandbox Code Playgroud)
这工作得很好,但是很多机器都设置了防火墙来阻止传入的 ICMP 数据包,因此不会回复 ping 请求。
如果是全Linux网络,可以扫描22端口,也就是ssh端口。这样做是这样的:
root@msimmons-laptop:~# nmap -sS -p 22 192.168.1.1-254 | grep -B3 open | grep ports
Interesting ports on 192.168.1.4:
Interesting ports on 192.168.1.5:
Interesting ports on msimmons-laptop.home (192.168.1.8):
Run Code Online (Sandbox Code Playgroud)
您可能会注意到我已经通过 grep 解析了几次 nmap 输出。默认情况下,输出是详细的,并且 nmap 报告它找到的每个主机,无论端口是否打开。由于我只关心具有该开放端口的主机,所以我只在结果是该端口是开放的情况下才找出报告 IP 的行。
此外,我执行了“syn”扫描,它仅启动构成TCP 握手协议的三个步骤中的一个。这意味着它能够识别打开、关闭和过滤的端口。它还需要 root 权限来创建执行此类扫描所需的原始套接字。
完成此操作后,转到物理开关并检查灯。如果点亮的灯多于响应的主机,请按照电缆进行调查。