我尝试使用 nmap 对我的本地网络进行 ping 扫描,但似乎找不到肯定活着的机器。它对 ping 做出响应,但继续进行 ping 扫描。
ping 的结果:
$ ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2): 56 data bytes 64 bytes from 192.168.0.2: icmp_seq=0 ttl=64 time=1.585 ms
tcpdump 的输出如下:
$ tcpdump -i fxp0 -n host 192.168.0.2
12:43:07.624911 IP 192.168.0.222 > 192.168.0.2: ICMP echo request, id 61023, seq 0, length 64
12:43:07.625029 IP 192.168.0.2 > 192.168.0.222: ICMP echo reply, id 61023, seq 0, length 64
但是当我尝试使用 nmap 时,尽管收到了响应,却看不到它。
$ nmap -sn 192.168.0.2
Starting Nmap 5.61TEST5 ( http://nmap.org ) at 2012-05-13 12:44 CEST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.02 seconds
Tcpdump 输出:
$ tcpdump -i fxp0 -n host 192.168.0.2
12:45:30.742933 IP 192.168.0.222 > 192.168.0.2: ICMP echo request, id 2715, seq 0, length 8
12:45:30.742974 IP 192.168.0.222.36388 > 192.168.0.2.443: S 3607279099:3607279099(0) win 1024 <mss 1460>
12:45:30.743001 IP 192.168.0.222.36388 > 192.168.0.2.80: . ack 3607279099 win 1024
12:45:30.743025 IP 192.168.0.222 > 192.168.0.2: ICMP time stamp query id 45449 seq 0, length 20
12:45:30.743061 IP 192.168.0.2 > 192.168.0.222: ICMP echo reply, id 2715, seq 0, length 8
12:45:30.743097 IP 192.168.0.2.443 > 192.168.0.222.36388: S 2602942480:2602942480(0) ack 3607279100 win 5840 <mss 1460>
12:45:30.743130 IP 192.168.0.222.36388 > 192.168.0.2.443: R 3607279100:3607279100(0) win 0
12:45:30.743134 IP 192.168.0.2.80 > 192.168.0.222.36388: R 3607279099:3607279099(0) win 0
12:45:30.743148 IP 192.168.0.2 > 192.168.0.222: ICMP time stamp reply id 45449 seq 0: org 00:00:00.000, recv 11:04:04.243, xmit 11:04:04.243, length 20
12:45:32.745245 IP 192.168.0.222 > 192.168.0.2: ICMP time stamp query id 48722 seq 0, length 20
12:45:32.745281 IP 192.168.0.222.36389 > 192.168.0.2.80: . ack 3607344634 win 1024
12:45:32.745307 IP 192.168.0.222.36389 > 192.168.0.2.443: S 3607344634:3607344634(0) win 1024 <mss 1460>
12:45:32.745340 IP 192.168.0.2 > 192.168.0.222: ICMP time stamp reply id 48722 seq 0: org 00:00:00.000, recv 11:04:06.245, xmit 11:04:06.245, length 20
12:45:32.745380 IP 192.168.0.2.80 > 192.168.0.222.36389: R 3607344634:3607344634(0) win 0
12:45:32.745401 IP 192.168.0.2.443 > 192.168.0.222.36389: S 2629695507:2629695507(0) ack 3607344635 win 5840 <mss 1460>
12:45:32.745421 IP 192.168.0.222.36389 > 192.168.0.2.443: R 3607344635:3607344635(0) win 0
12:45:32.745431 IP 192.168.0.222 > 192.168.0.2: ICMP echo request, id 38289, seq 0, length 8
12:45:32.745517 IP 192.168.0.2 > 192.168.0.222: ICMP echo reply, id 38289, seq 0, length 8
为什么 nmap 说主机似乎已关闭何时响应请求?
编辑
Nmap版本:
$ nmap --version
Nmap version 5.61TEST5 ( http://nmap.org )
Platform: i386-portbld-freebsd7.4
Compiled with: liblua-5.1.5 openssl-0.9.8q libpcre-8.30 libpcap-0.9.8 nmap-libdnet-1.12 ipv6
Compiled without:
可以肯定的是,防火墙中的第一个过滤规则是:
pass quick on fxp0
答案1
刚刚用我的 OpenBSD 5.1 尝试了此操作。是的,您使用的是 FreeBSD 7.4,但我们谈论的是一个相当相似的怪物。
作为普通用户,我也会nmap -sn my.host
返回Host seems down
,尽管我的测试机器肯定会以普通用户的身份响应 ping。
但是,作为 root,它却按应有的方式nmap -sn my.host
返回。Host is up
查看您的提示,您可能还尝试以非 root 用户身份执行 nmap。请尝试 nmap 是否能以 root 用户身份运行。
编辑:刚刚启动了我的 FreeBSD 9.0,nmap ping 扫描在非 root 模式下也能正常工作。
答案2
我的第一个观察是,它tcpdump -i fxp0
正在转储到达的数据包fxp0
,但是nmap
它作为用户空间进程运行,因此许多因素可能会阻止 nmap 查看响应。
- 例如 netfilter 规则(用户
iptables -t filter -n -L
) selinux
(没有见过这种事情,但当愚蠢的事情发生时,selinux 总是一个很好的选择- 还要检查 iptables nat 表以确保
iptables -t nat -n -L
答案3
我刚刚遇到了同样的问题,并在部分帮助下解决了它。
我设置了一个带有 WiFi 加密狗的新型无头 RaspberryPi,并编辑了 SD 卡以将我的 WiFi 凭据放入 wpa_supplicant.conf 中。
RPi 启动正常并连接到 WiFi,但我的 Ubuntu 笔记本电脑上的 nmap ping 扫描没有找到它,直到我做了两件事:
- 用过的
sudo
- 添加了选项
--disable-arp-ping
答案4
我在试图弄清楚为什么我可以 ping 通 Windows 主机,但当我使用 nmap -sP 时,它会显示为主机关闭时偶然发现了这篇文章。到目前为止,这种行为似乎在 Windows 和 Palo Alto 上重现,但在 Linux 和 iDrac 上没有重现;我的情况的解决办法是使用 sudo 重新运行扫描。