假如你想知道一个机器或多个机器上运行了哪些服务,或者想判断一些机器有没有反应(responsive)怎么办?一个一个的 ping
,然后一个一个的用 telnet
连接感兴趣的端口,再一个一个的分析返回信息吗?恐怕有些不妥。最好的方法是使用端口扫描工具 nmap(1)
。用 nmap
可以扫描 TCP 和 UDP 端口,判断一个网络设备的操作系统,探测每个被定位的服务以便确定它们的具体类型等等等等。也许 nmap
最简单的使用方法就是一下子 ping
很多台机器。你可以用网络地址表示方法(CIDR)来指定某个范围的所有地址,nmap
会挨个扫描并在完成后把结果返回给你。如果你喜欢,也可以直接使用主机名。
为了“ping”主机,你必须使用 -sP
参数。下面的命令要求 nmap
“ping” www.slackware.com
以及 16 个从 72.168.24.0
到 72.168.24.15
的 IP
地址。
darkstar:~# nmap -sP www.slackware.com 72.168.24.0/28
你也许想扫描端口,nmap
为此操作单独提供了很多选项。不给 nmap
添加任何参数时,nmap
对指定的所有主机执行标准的 TCP 端口扫描。有些选项可以让 nmap
戾气大增,如果你想更快的取得结果或者想和对方的入侵检测服务过两招的话,可以开启这些选项。关于 nmap
的内容,man 手册中讨论的相当详细。下面 3 个命令分别执行普通的端口扫描,SYN 扫描和“圣诞树”扫描。
darkstar:~# nmap www.example.com
darkstar:~# nmap -sS www.example.com
darkstar:~# nmap -sX www.example.com
记住,有些因特网服务提供商很不喜欢有人扫描端口,它们可能会采取手段阻止你扫描端口。 不要把
nmap
这样的工具当作通用的因特网扫描器,最好把它们用在对自己系统的维护和安全管理工作上。