The original Windows Subsystem for Linux (2016 - 2019) doesn’t work with Nmap. At the time of this writing, it’s not yet known if the “new” WSL2 will work with Nmap or not. On Windows, use Nmap from Windows itself or via Cygwin (which is just calling native Windows Nmap).
This is the Right Way™ to do it. The Nmap Windows build is solid and uses Windows-specific API calls to do things really fast and well. Even if WSL ever supports the Linux build, it won't be as good as native. https://t.co/r2PkSxuoJE— Daniel Miller ✝ (@bonsaiviking) May 22, 2018
- Download nmap
- Install nmap “self-installer”
.exe. When asked, also install Npcap.
- Cygwin: add to
~/.bash_profilethe following. Note the
\(are vital for Cygwin shell to interpret the command correctly.
alias nmap="/cygdrive/c/Program\ Files\ \(x86\)/Nmap/nmap.exe"
Open a new Cygwin window to start using
Starting Nmap ( https://nmap.org ) Nmap scan report for 184.108.40.206 Host is up (0.0092s latency). Not shown: 998 filtered ports PORT STATE SERVICE 53/tcp open domain 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 7.41 seconds
- errors about interface → try running Cygwin as Administrator (right click on Cygwin icon).
- find interface names available to nmap
- to find servers with a particular port open on a subnet, try my Python findssh program that scans for servers without nmap.
- If you don’t install Npcap when asked in the
nmapdoes not work. Nmap claimed no host existed at a known working IP address.
nmap built into Cygwin?
nmap requires deeper access to the Windows networking stack that would go beyond the normal scope of Cygwin.
Note that Nmap itself needs the separate program Npcap (forked from WinPcap) to work on Windows.