Skip to content

Node Management ​

Scanning nodes execute scanning tasks. This page covers daily operations and status monitoring from the console.

Deploying & Scaling Scanning Probes

If you need to install new probe instances, run multiple nodes, or review sizing recommendations for specialized workloads, refer to: Distributed Deployment.


Node Pool Overview & Real-Time Status ​

Scan node management list

Navigate to Scanning Nodes in the left sidebar to view active worker probes:

FieldDescriptionExample
Node NameFriendly name configured via TESTNET_NODE_NAMEnode-general-01
Node IDUnique identifier generated upon registration (snowflake ID)1932123456789012345
StatusWhether the node can receive tasks🟢 Online / 🔴 Offline
Last HeartbeatTime of the last heartbeat12 seconds ago
Active TasksNumber of tasks currently running3 / 5
System InfoNode OS, kernel, and memory infoLinux x86_64 / 16GB

Node Status ​

StatusIconDescription
Online🟢Node running normally, accepting tasks
Offline🔴No heartbeat for about 3 minutes (180 seconds); marked offline automatically

Node Operations ​

View Node Details ​

Click "Details" on a node card to view:

  • System specs (CPU cores & usage, RAM, disk, uptime)
  • Network info (IP, MAC address, OS & architecture)
  • Tool whitelist (restricted tool list, or "All tools (unrestricted)")

Configure a Node ​

Click "Configure" to open the node advanced configuration dialog, where you can set:

  • Tool execution whitelist: restrict the node to pulling and executing selected tools only (see below)
  • Client YAML configuration: push the node's local config.yaml (executor switches, concurrency, etc.)

Delete a Node ​

Offline nodes can be deleted (existing task records are preserved):

  1. Ensure node is offline
  2. Click "Delete"
  3. Confirm

TIP

After deletion, restarting the client will auto-register as a new node.


Node Tool Whitelist ​

By default, any online node can pull and execute every security tool on the platform. A tool whitelist restricts a node to only the tools you explicitly allow, enabling workload separation and capacity isolation.

Checking Whitelist Status ​

The node card and the Details dialog both show the current whitelist state:

TagMeaning
N toolsThe node is restricted to the N whitelisted tools
All toolsUnrestricted — the node can run every enabled tool

Configuring the Whitelist ​

  1. Click "Configure" on a node card to open the node advanced configuration dialog
  2. In the "Tool Execution Whitelist" section at the top, pick the allowed tools in the multi-select box
  3. Click "Save Configuration" — changes take effect immediately

The selector groups tools by runtime type for quick lookup:

GroupTool Types
Docker ToolsContainerized scanning tools (Subfinder, Nuclei, Nmap, etc.)
HTTP ToolsNative HTTP request probing tools
DNS ToolsDNS resolution and lookup tools
TCP ToolsTCP port probing tools
Shell ToolsLocal process / command-line tools
Other ToolsTools without a declared runtime type

TIP

  • Leaving the multi-select empty means unrestricted — the node may run every security tool
  • The selector supports keyword filtering; tools are sorted by name within each group
  • Once saved, the node only pulls tasks for whitelisted tools; tasks already dispatched are unaffected

Typical Scenarios ​

  • Workload separation: let a bandwidth-rich node run containerized vulnerability scans (Docker tools) only, while internal nodes handle HTTP/TCP probing
  • Resource protection: restrict low-spec devices to lightweight DNS/TCP tools so container jobs don't overwhelm the host
  • Compliance: pin a node to an approved set of tools only

Execution Capabilities ​

MethodRequirementsDescription
DockerDocker socket mountedExecute containerized tools (Subfinder, Nuclei, etc.)
ShellBinary installedExecute local CLI tools (PROCESS type)
HTTPNetwork accessibleSend HTTP requests
DNSNetwork accessibleDNS queries
TCPNetwork accessibleTCP port probing

Troubleshooting ​

Node shows offline after registration ​

  • Check network connectivity (can the node reach the server on port 3100, the unified Nginx entry? Port 8081 is the direct backend port, available only if you expose it yourself)
  • Verify TESTNET_CLIENT_SECRET is correct
  • View logs: docker logs testnet-client

Tasks stuck in PENDING ​

  • Check if any nodes are online
  • Check server logs to confirm task dispatch is working

Docker tools fail to run ​

For deeper diagnostics (image ulimit, DNS, SELinux, etc.), see the Troubleshooting Guide and FAQ.

bash
# Verify Docker socket is accessible
docker exec testnet-client docker ps

Client Environment Variables Reference ​

Client nodes support overriding config.yaml settings via TESTNET_ prefixed environment variables:

Environment VariableTypeDescription
TESTNET_SERVER_URLstringServer URL (e.g., http://host:8081 or https://host:3100)
TESTNET_SERVER_TLS_ENABLEDboolEnable TLS (true/1)
TESTNET_SERVER_TLS_INSECURE_SKIP_VERIFYboolSkip TLS certificate verification (set true for self-signed certs)
TESTNET_CLIENT_SECRETstringNode connection secret (from server .env)
TESTNET_NODE_NAMEstringNode name
TESTNET_LOG_LEVELstringLog level (debug/info/warn/error)
TESTNET_MAX_CONCURRENTintMax concurrent tasks (default 3)
TESTNET_POLL_TIMEOUTdurationLong-poll timeout (default 30s)
TESTNET_POLL_INTERVALdurationLong-poll interval (default 5s)
TESTNET_HEARTBEAT_INTERVALdurationHeartbeat interval (default 30s)
TESTNET_DOCKER_ENABLEDboolEnable Docker executor (true/1)
TESTNET_SERVER_TIMEOUTdurationServer request timeout (e.g., 30s)
TESTNET_WORK_DIRstringTask working directory
TESTNET_CACHE_DIRstringCache directory
TESTNET_ALLOW_PRIVILEGEDboolAllow privileged container execution (default true; set false in production)
TESTNET_ALLOW_SSRFboolAllow SSRF probing internal networks (default true; set false in production)
TESTNET_ALLOWED_VOLUME_PATHSstringAllowed mount paths (comma-separated; replaces the built-in default list, e.g., /tmp/,/opt/testnet/)

WARNING

TESTNET_ALLOW_PRIVILEGED and TESTNET_ALLOW_SSRF default to true (allowed). For nodes exposed to untrusted targets or running on office/production networks, always set them to false explicitly. See Node Sandbox & Security Policies.


最近更新

Released under the MIT License