Install Network Tool.

One Linux server, Java 21 and PostgreSQL, or Docker. This page lists every command and port.

What you need

ServerLinux, physical or virtual
RuntimeJava 21 (JRE), or Docker
DatabasePostgreSQL (included in the Docker Compose file)
Packagesiputils-ping, libpcap0.8, traceroute
PrivilegesPacket capture needs root or CAP_NET_RAW; udp/514 and udp/162 need root or CAP_NET_BIND_SERVICE

Run it

Option A: Docker Compose

Starts PostgreSQL and the application together. The app uses host networking so packet capture, ARP and the UDP listeners see the real network.

bash
docker compose -f docker/docker-compose.yml up -d

Option B: Docker image

Run the image on its own next to a PostgreSQL you already have.

bash
docker build -f docker/Dockerfile -t network-tool .
docker run -d --network host --cap-add NET_RAW --cap-add NET_ADMIN \
  -v network-tool-data:/app/data --name network-tool network-tool

Option C: Java and systemd

Run the single JAR directly. A systemd unit is included as docker/network-tool.service.

bash
sudo ./run.sh
# or without root, on unprivileged ports and without capture:
./run.sh -Dnettool.syslog.port=5514 -Dnettool.trap.port=1162 -Dnettool.capture.enabled=false

Open http://<server>:8080/ui and sign in with the built-in administrator account described in the documentation, then create your own users and roles. For each user you choose the sign-in: password only, an e-mail code, or an authenticator app.

Ports

8080/tcpWeb interface, REST API and live WebSocket
514/udpSyslog receiver
162/udpSNMP trap and inform receiver
2055/udpNetFlow v5 / v9 / IPFIX collector
6343/udpsFlow v5 collector

Configuration

Every setting is a nettool.* key. Override it with -Dkey=value, with an environment variable such as NETTOOL_SYSLOG_PORT=5514, or with a properties file. Most collectors and thresholds can also be changed on the Management page, and the change applies at once.

env
NETTOOL_DB_URL=jdbc:postgresql://127.0.0.1:5432/network_tool
NETTOOL_DB_USERNAME=nettool
NETTOOL_DB_PASSWORD=********

Point your devices at it

On a Cisco IOS device, these lines send SNMP traps, syslog and NetFlow to the server. Other vendors have the same three settings under their own names.

Watching Kubernetes nodes as well? The agent has its own short guide. Kubernetes agent

Cisco IOS
snmp-server community public RO
snmp-server host <server> version 2c public
snmp-server enable traps
logging host <server>
ip flow-export version 9
ip flow-export destination <server> 2055
! and on each interface:
ip flow ingress

See it on a network like yours.

We will show you Network Tool live and answer questions about your setup.

Book a live demo