{ "meta": { "title": "Live Monitoring Tools | ProxMenux Documentation", "description": "Three interactive network monitoring launchers: iftop (real-time bandwidth per host pair), iptraf-ng (multi-mode traffic monitor) and iperf3 (bandwidth test, server / client mode). Each is installed on first use.", "ogTitle": "Live Monitoring Tools | ProxMenux Documentation", "ogDescription": "Interactive network monitoring and bandwidth testing for the Proxmox host: iftop, iptraf-ng, iperf3." }, "header": { "title": "Live monitoring tools", "description": "Three interactive launchers for real-time network observation and bandwidth measurement: iftop, iptraf-ng and iperf3. Each tool is auto-installed from apt on first use, runs in the foreground, and is exited with the documented keystroke. Read-only against the host configuration — they only observe traffic.", "section": "Network" }, "intro": { "title": "What this does", "body": "Three interactive monitoring tools, each behind its own menu entry. The first time you launch one, the package is installed silently via apt-get. Subsequent launches start instantly. None of these tools modify the host network configuration." }, "when": { "heading": "When to use which", "headerQuestion": "Question", "headerUse": "Use", "rows": [ { "question": "Who is saturating the link right now?", "use": "iftop" }, { "question": "What protocol breakdown / packet sizes / TCP flows are flowing?", "use": "iptraf-ng" }, { "question": "How much bandwidth is actually available between two hosts?", "use": "iperf3" } ] }, "iftop": { "heading": "Real-time network usage (iftop)", "body": "Live bandwidth per host pair (source ↔ destination) — like top for traffic. Shows the heaviest flows at the top, with rolling 2/10/40-second averages. Best tool for the question \"why is my uplink saturated?\".", "exit": "Exit: press q. ProxMenux shows a reminder dialog before launching.", "keysTitle": "Useful keys inside iftop", "keysBody": "n toggle DNS lookup, p show port numbers, P pause display, t toggle line direction (sent / received / both), 1/2/3 sort by 2s / 10s / 40s average. man iftop for the full set." }, "iptraf": { "heading": "Network monitoring tool (iptraf-ng)", "intro": "A menu-driven multi-mode traffic monitor. Where iftop answers \"who\", iptraf-ng answers \"what\": per-protocol byte/packet counts, TCP connection state tracking, packet size histograms and per-station LAN activity.", "menuIntro": "On launch you get a five-option menu:", "headerMode": "Mode", "headerUseFor": "Use it for", "rows": [ { "mode": "IP traffic monitor", "useFor": "Live TCP / UDP / ICMP / other-IP flow list with byte counters and connection state" }, { "mode": "General interface stats", "useFor": "Aggregate IPv4 / IPv6 / TCP / UDP / ICMP / non-IP packet counts per NIC" }, { "mode": "Detailed interface stats", "useFor": "Same as above but for one interface, with packet size and rate detail" }, { "mode": "Statistical breakdowns", "useFor": "Packet size distribution histogram, by TCP / UDP port" }, { "mode": "LAN station monitor", "useFor": "Per-MAC traffic stats for the local broadcast domain" } ], "exit": "Exit: press x from any view (or Q from the main menu). ProxMenux shows a reminder dialog before launching.", "logTitle": "Logging captures to file", "logBody": "Each mode offers to log captured stats to /var/log/iptraf-ng/. Useful if you need a record of a traffic spike — leave it running, log to file, review the file afterwards instead of trying to read the live screen." }, "iperf3": { "heading": "Bandwidth test (iperf3)", "intro1": "Measures actual TCP throughput between two hosts. Unlike iftop / iptraf-ng (which observe existing traffic), iperf3 generates synthetic traffic to stress-test the link. Indispensable for answering questions like \"is my 10 GbE actually doing 10 GbE?\" or \"is the bottleneck the NIC, the switch, or the storage?\".", "intro2": "iperf3 is a two-host tool: one side runs as server (listens on TCP port 5201), the other runs as client (connects, sends data, prints the rate). The ProxMenux launcher asks which mode you want:", "headerMode": "Mode", "headerBehaviour": "Behaviour", "headerCli": "Equivalent CLI", "rows": [ { "mode": "Server", "behaviour": "Listens on TCP 5201 and prints results for each incoming test. Stops on Ctrl+C.", "cli": "iperf3 -s" }, { "mode": "Client", "behaviour": "Asks for the server IP / hostname, connects, runs a default 10-second test and prints the report.", "cli": "iperf3 -c " } ], "workflowIntro": "Typical workflow to test a 10 GbE link between two Proxmox hosts:", "workflow": [ "On host A, open the Network menu → Bandwidth test (iperf3) → choose Server.", "On host B, open the same menu entry → choose Client → enter host A's IP.", "Wait 10 seconds. Compare the reported rate to the link's theoretical maximum." ], "sample": "Sample client output:", "flagsTitle": "Useful manual flags (run from a shell)", "flagsBody": "-t 60 longer test (60s instead of default 10s), -P 4 4 parallel streams (saturates faster), -R reverse direction (server → client), -u -b 100M UDP test at 100 Mbit/s (for jitter / packet loss measurements), -p 5202 use a different port (multiple tests in parallel). man iperf3 for the full set.", "firewallTitle": "Open the firewall port on the server", "firewallBody": "The server listens on TCP 5201 by default. If you run the server inside a Proxmox host with a strict firewall (datacenter or host level), allow inbound TCP 5201 from the client's IP for the duration of the test, then close it again. Same applies to nftables / iptables on bare hosts." }, "install": { "heading": "First launch installs the package", "body": "All three launchers check for the binary and run apt-get update -qq && apt-get install -y <pkg> if missing. The install is silent: the menu may appear frozen for 10–30 seconds the first time. Subsequent launches start instantly." }, "troubleshoot": { "heading": "Troubleshooting", "hangTitle": "Install hangs forever on first launch", "hangBody": "The host has no internet or the apt repos are unreachable. Cancel with Ctrl+C, run apt-get update manually to see the actual error (DNS, repo signature, proxy …), then come back to the menu.", "refusedTitle": "iperf3 client: \"unable to connect to server: Connection refused\"", "refusedBody": "Either the server is not running, or its firewall blocks TCP 5201. Confirm on the server: ss -tlnp | grep 5201 — should show iperf3 listening. If listening but client still fails, check the firewall path between the two hosts.", "slowTitle": "iperf3 reports way less than the expected link speed", "slowBody": "Common causes, in order of likelihood: (1) one of the hosts is bottlenecked on CPU — try iperf3 -c <target> -P 4 to use multiple cores; (2) the path goes through a slower link (gigabit switch in the middle of two 10 GbE NICs); (3) MTU mismatch — check ip link show on both ends; (4) NIC offloading disabled — see the Disable NIC Offloading community script if you have an Intel e1000e card.", "noTrafficTitle": "iftop / iptraf-ng show no traffic for a busy host", "noTrafficBody": "Default capture is on the first detected interface. Specify the right one explicitly from the shell: iftop -i vmbr0 or iptraf-ng -i vmbr0. The menu launcher uses the default; for non-default interfaces, run from a console." }, "related": { "heading": "Related", "items": [ { "label": "Diagnostics", "href": "/docs/network/diagnostics", "tail": " — the read-only one-shot checks (routing, connectivity, advanced stats)." }, { "label": "Bridge analysis & guided repair", "href": "/docs/network/bridge-analysis", "tail": " — when monitoring reveals an interface or bridge isn't doing what it should." } ] } }