Scans TCP ports and reports which services are listening, flagging the ones that should not be reachable from the internet. It ships a compiled Go engine (plugin_bin) for concurrent scanning and falls back to a Python implementation when the binary has not been built — nmap if it is installed, otherwise ss/netstat for a local-only listen list. A full scan takes a target and a port range (default 1-10000); without a target it scans the server's own public IP, which it resolves via api.ipify.org and falls back to the outbound interface address.
Results are matched against a fixed table of roughly two dozen risky ports — SSH, Telnet, SMB, RDP, VNC, and unauthenticated-by-default services such as MySQL, PostgreSQL, Redis, Elasticsearch, Memcached and MongoDB — and each hit comes back with a severity (info, warning or critical) and a short recommendation. Well-known ports are labelled with their usual service name, and nmap scans also surface version/banner information where nmap detects it.
The UI is a single page: run a scan, read the table of open ports. There is no scheduling, no history, and no comparison against previous scans — each run stands on its own. Remote scanning and version detection need nmap present on the server; without it the plugin can only report what is listening locally.
Use VinzaPanel's REST API to download and install this app programmatically.
POST /plugins/api/download/port-scanner/ Content-Type: application/json { "panel_version": "1.0.0" }
{
"success": true,
"plugin_id": "port-scanner",
"version": "1.0.3",
"download_url": "..."
}