#port-scanner #lib #tcp #packet


A high performance TCP SYN port scanner library

6 releases (stable)

1.0.4 Aug 23, 2022
1.0.3 Jun 8, 2021
1.0.2 May 31, 2021
1.0.1 May 23, 2021
0.1.0 Apr 5, 2021

#8 in #port-scanner

Download history 12/week @ 2023-08-15 9/week @ 2023-08-22 17/week @ 2023-08-29 14/week @ 2023-09-05 4/week @ 2023-09-12 4/week @ 2023-09-19 16/week @ 2023-09-26 8/week @ 2023-10-03 5/week @ 2023-10-10 10/week @ 2023-10-17 11/week @ 2023-10-24 14/week @ 2023-10-31 7/week @ 2023-11-07 11/week @ 2023-11-14 19/week @ 2023-11-21 38/week @ 2023-11-28

76 downloads per month
Used in armada


864 lines


A High-Performance TCP SYN scanner

What is Armada?

Armada is a high performance TCP SYN scanner. This is equivalent to the type of scanning that nmap might perform when you use the -sS scan type. Armada's main goal is to answer the basic question "Is this port open?". It is then up to you, or your tooling, to dig further to identify what an open port is for.

How do I install Armada?

If you don't have rustup installed, visit the rustup website and follow the instructions there to get started.


After you have cargo installed, run cargo install armada.

As Armada uses raw sockets to perform port scanning, you'll either need to be running as root or give the Armada binary the CAP_NET_RAW capability. My suggestion is the latter.

A full installation, after cargo has been installed via rustup, looks like this:

cargo install armada

sudo setcap 'cap_net_raw+ep' $(which armada)

How do I run Armada?

Armada comes with help docs by running armada -h; however, if you want to get started immediately, the typical way to perform a port scan is the following:

armada -t <IP or CIDR> -p <PORT or PORT RANGE>


armada -t -p 1-1000


Armada supports two different kinds of targets at this time: IP addresses (e.g. and CIDR ranges (e.g. These different kinds of targets can be mix and matched.

Additionally, Armada supports three ways of supplying targets:

Via command-line argument

armada -t, -p 1-1000

A newline delimited targets file

armada --target_file some_ips_and_cidrs.txt -p 1-1000

or via stdin

cat ips.txt | armada -p 80,443

It is required to supply targets via one of these methods.

Happy Scanning


~252K SLoC