somo 0.1.2

A prettier and easier alternative to netstat or ss for socket monitoring.
somo-0.1.2 is not a library.
Visit the last successful build: somo-1.3.3

🌏 Somo

A prettier alternative to netstat or ss for socket monitoring.


⬇️ Installation:

1. Install cargo:

From crates.io.

2. Install the somo crate:

cargo install somo

🏃‍♀️ Running somo:

To run somo just type:

somo

It can often be beneficial to run it in sudo mode since many PIDs will remain hidden otherwise. To do so, you can run it using the full path:

# you can find out the path by running: "where somo"
sudo /path/to/somo
# or run it like this:
sudo $(where somo)

Problems with this: it's unconvenient and ENV variables can't be accessed! Better solution: Add it to the $PATH variable (like this).

⚙️ Features:

1. Pretty and easily readable table:

somo-example

2. Filtering:

You can filter by remote port, local port, IP, protocol, client program, PID and connection status. Check the flag descriptions below.

3. Process killing:

With the -k flag you can choose to kill a process after inspecting the connections using an interactive selection option. kill-example

4. Checking for malicious IPs using AbuseIPDB.com:

To automatically check if any of the remote IPs you are connected to are malicious you can specify an API key for the AbuseIPDB API as an environment variable:

export ABUSEIPDB_API_KEY={your-api-key} # not session persistent

Adding the -c flag will then check for malicious IPs and notify you in the table: check-example


🚩 Flags:

flag description value
--proto filter by either TCP or UDP tcp or udp
--ip filter by a remote IP the IP address e.g 0.0.0.0
--port, -p filter by a remote port the port number, e.g 443
--local-port filter by a local port the port number, e.g 5433
--program filter by a client program the program name e.g chrome
--pid, -p filter by a PID the PID number, e.g 10000
--open, -o filter by open connections -
--exclude-ipv6, -e don't list IPv6 connections -
--kill, -k interactive process killing -
--check, -c check remote IPs using AbuseIPDB (make sure the environment variable ABUSEIPDB_API_KEY is set) -