Nmap扫描发现陌生开放端口与IP但本地网络无对应设备的原因排查求助
嘿,我来帮你梳理下可能的原因和排查方向,结合你给出的信息咱们一步步分析:
首先先明确你的操作和当前现状:
你在Ubuntu上执行了Nmap扫描命令:
sudo nmap -Av 192.168.0.0/16 1,2>/tmp/nmap.out4随后过滤扫描结果得到了几个陌生IP的开放端口:
Discovered open port 1723/tcp on 192.168.55.6 Discovered open port 2000/tcp on 192.168.55.6 Discovered open port 161/tcp on 192.168.83.2你的本地网络是
192.168.1.0/24,检查了所有本地机器的ip a都没找到这些陌生IP,但能正常ping通它们;同时你的自制Linux路由器的arp -a结果只显示本地网段的两个设备。
可能的原因分析
路由器管理了多个子网
你的自制Linux路由器大概率配置了多网卡或者VLAN,同时管理着192.168.55.0/24、192.168.83.0/24这两个子网,而你的本地设备只在192.168.1.0/24网段。跨网段的设备不会出现在你的本地ARP表(ARP只能获取同二层网络的MAC地址),所以你用arp -a看不到它们是完全正常的。路由器运行了VPN服务(重点怀疑1723端口)
1723/tcp是PPTP VPN的默认端口,192.168.55.6很可能是VPN客户端的IP,或是路由器VPN服务器分配的子网地址。另外161/tcp是SNMP服务端口,大概率是另一个子网里的网络设备(比如交换机、次级路由器)开启了SNMP。端口转发/地址映射导致的可达性
你的路由器可能配置了DNAT(目标地址转换)规则,把外部设备的端口映射到了这些192.168.x.x地址上,或是把内部其他子网的设备端口映射成了你能访问的地址。Nmap误报(概率极低)
因为你能ping通这些IP,所以误报可能性很小,但你可以用更精准的扫描验证,比如针对单个IP扫描:sudo nmap -p1723,2000 192.168.55.6,确认端口是否真的开放。
下一步排查建议
- 登录你的自制Linux路由器,执行
ip a查看网卡配置,确认是否有其他网段的IP - 查看路由器路由表:
ip route show,检查是否存在指向192.168.55.0/24和192.168.83.0/24的路由条目 - 检查VPN相关服务,比如执行
ps aux | grep pptpd看看PPTP服务是否在运行 - 查看路由器的iptables NAT规则:
iptables -t nat -L -n,找一找和陌生IP相关的转换规则 - 尝试连接陌生IP的开放端口,比如用
nc -v 192.168.55.6 1723获取服务banner,帮助判断设备类型
备注:内容来源于stack exchange,提问作者Sunny




