#nushell-plugin #nushell #networking #tcp-port #plugin

app nu_plugin_port_list

A nushell plugin to list all active connections

10 stable releases

1.4.3 Sep 19, 2024
1.4.2 Aug 26, 2024
1.2.10 Feb 12, 2024
1.2.2 Nov 15, 2023

#834 in Network programming

MIT and maybe CC-PDDC

20KB
322 lines

nu_plugin_port_list

A nushell plugin to display all active network connections. similar to netstat -ntp

Important: to list pid correctly it needs to run as a privileged user (root)

  • flags
  -6, --disable-ipv4 - do not fetch ipv4 connections (ipv6 only)
  -4, --disable-ipv6 - do not fetch ipv6 connections (ipv4 only)
  -t, --disable-udp - do not fetch UDP connections (TCP only)
  -u, --disable-tcp - do not fetch TCP connections (UDP only)
  -p, --process-info - loads process info (process_name, cmd, binary path, ...)

Examples

  • list all open ports
~> port list
type ip_version local_address local_port remote_address remote_port state pid
tcp 4 0.0.0.0 22 0.0.0.0 0 LISTEN 1000
tcp 4 192.168.100.8 42352 ... 780 ESTABLISHED 9343
tcp 4 192.168.100.8 60564 ... 443 ESTABLISHED 2899
tcp 4 127.0.0.1 38946 127.0.0.1 7890 ESTABLISHED 3376
tcp 4 127.0.0.1 50180 127.0.0.1 37921 ESTABLISHED 7620
  • list all open tcp port that are in LISTEN state and using local address 0.0.0.0
~> port list | where state == LISTEN and local_address == 0.0.0.0
type ip_version local_address local_port remote_address remote_port state pid
tcp 4 0.0.0.0 7070 0.0.0.0 0 LISTEN 993
tcp 4 0.0.0.0 3306 0.0.0.0 0 LISTEN 9953
tcp 4 0.0.0.0 9000 0.0.0.0 0 LISTEN 1525
tcp 4 0.0.0.0 8585 0.0.0.0 0 LISTEN 10693
tcp 4 0.0.0.0 22 0.0.0.0 0 LISTEN 1000
  • get process that is listening on a port
~> port list -t4p
type ip_version local_address local_port remote_address remote_port state pid process_name cmd exe_path process_status process_user process_group process_effective_user process_effective_group process_environments
tcp 4 127.0.0.1 631 0.0.0.0 0 LISTEN 986 cupsd /usr/sbin/cupsd -l /usr/sbin/cupsd Sleeping 0 0 0 0 [LANG=en_US.UTF-8,...]

Installing

git clone https://github.com/FMotalleb/nu_plugin_port_list.git
nupm install --path nu_plugin_port_list -f
  • or compile manually
git clone https://github.com/FMotalleb/nu_plugin_port_list.git
cd nu_plugin_port_list
cargo build -r
plugin add target/release/nu_plugin_port_list
  • or using cargo
cargo install nu_plugin_port_list
plugin add ~/.cargo/bin/nu_plugin_port_list

Dependencies

~24–58MB
~1M SLoC