Skip to content
netcup-toolbox•MIT License•v0.4.0

Netcup DevOps Toolbox & System Utilities

Open-source shell scripts, network probes, and sysctl configurations for Netcup Root Servers and VPS. Source code on GitHub under the MIT License.

GitHub Repositorydepavel/netcup-toolbox ↗
git clone https://github.com/depavel/netcup-toolbox.git
tools/netcup-ping.sh

Datacenter Latency Probe

View on GitHub ↗

Measures round-trip ICMP latency and packet loss from your machine to all 5 official Netcup looking glass endpoints. Supports iputils and BusyBox ping.

# Download, inspect, then run (3 ICMP packets per location):
curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-ping.sh -o /tmp/netcup-ping.sh
less /tmp/netcup-ping.sh
bash /tmp/netcup-ping.sh
Nuremberg (DE)
188.68.56.104
Looking Glass: lookingglass.netcup.net
Vienna (AT)
89.58.16.1
Looking Glass: lookingglass.netcup.net
Amsterdam (NL)
152.53.104.2
Looking Glass: lookingglass.netcup.net
Manassas, VA (US)
152.53.68.2
Looking Glass: lookingglass.netcup.net
Singapore (SG)
217.146.9.10
Looking Glass: lookingglass.netcup.net
tools/netcup-init.sh

Server Bootstrap & BBR Hardening

View on GitHub ↗

Tunes Debian 12 / Ubuntu 24.04: enables TCP BBR, configures NVMe swappiness=10, installs UFW and unattended security updates. Supports a custom SSH port and --dry-run.

# Download, inspect, then run on a clean Debian 12 / Ubuntu 24.04 server:
curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-init.sh -o /tmp/netcup-init.sh
less /tmp/netcup-init.sh
sudo bash /tmp/netcup-init.sh --with-docker
Kernel parameterValueTechnical justification
net.ipv4.tcp_congestion_controlbbrEnables Google BBR to achieve full 2.5 Gbps line rate under WAN packet loss
net.core.default_qdiscfqFair Queuing packet scheduler required for BBR pacing and bufferbloat suppression
vm.swappiness10Prevents Linux kernel from aggressively writing RAM to NVMe disk cache
fs.file-max2097152Raises global open file descriptor limit for reverse proxies (Traefik, Nginx, Caddy)
ufw (Firewall)deny incomingDefault deny incoming traffic; allows ports 22 (SSH), 80 (HTTP), 443 (HTTPS)
tools/netcup-vlan.sh

Cloud vLAN Netplan Generator

View on GitHub ↗

Generates production-ready Netplan (or Debian interfaces) configuration for Netcup Cloud vLAN (internal 2.5 Gbps network). Netcup Cloud vLAN uses MTU 1500 only; jumbo frames are not supported.

Netcup Cloud vLAN uses a standard 1500-byte MTU. Jumbo frames are not supported.

Generated Configuration/etc/netplan/60-cloud-vlan.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:
      addresses:
        - 10.0.10.1/24
      mtu: 1500
      routes: []
CLI 1-Line Execution (netcup-vlan.sh)

Run directly on your server via our open-source script:

curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-vlan.sh -o /tmp/netcup-vlan.sh
less /tmp/netcup-vlan.sh
sudo bash /tmp/netcup-vlan.sh --interface eth1 --ip 10.0.10.1/24 --mtu 1500 --mode netplan
tools/netcup-dns-sync.sh

Dynamic DNS (DDNS) CCP API Client

View on GitHub ↗

Automates updating your domain or subdomain A record using the official Netcup Customer Control Panel (CCP) JSON API.

# Set credentials and sync DNS A record:
export NETCUP_CUSTOMER_NUMBER="123456"
export NETCUP_API_KEY="your-api-key"
export NETCUP_API_PASSWORD="your-api-password"
export NETCUP_DOMAIN_NAME="example.com"
export NETCUP_HOST_NAME="vpn"

bash tools/netcup-dns-sync.sh
Automated crontab execution:

*/15 * * * * /usr/local/bin/netcup-dns-sync.sh >/dev/null 2>&1

tools/netcup-rdns.sh

Reverse DNS (PTR) for IPv4 and IPv6

View on GitHub ↗

Read, set, and delete PTR records through the SCP REST API. A correct PTR is required for reliable mail delivery. The script uses the OAuth2 device flow and stores only a refresh token with mode 600.

# Download, inspect, authenticate, then manage PTR records:
curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-rdns.sh -o /tmp/netcup-rdns.sh
less /tmp/netcup-rdns.sh
bash /tmp/netcup-rdns.sh auth login
bash /tmp/netcup-rdns.sh get 203.0.113.10
bash /tmp/netcup-rdns.sh set 203.0.113.10 mail.example.com
OAuth2 / SCP REST

No static API key. The script stores only a refresh token under~/.config/netcup-toolbox/scp-tokenwith mode 600 and adds your IP to the SCP REST API allowlist.

tools/netcup-snapshot.sh

Snapshot management (SCP)

View on GitHub ↗

List, create, delete, export, and restore SCP snapshots. Delete and restore require --yes; restore reboots the server and discards data written after the snapshot.

# List servers, create a snapshot, then restore it:
curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-snapshot.sh -o /tmp/netcup-snapshot.sh
less /tmp/netcup-snapshot.sh
bash /tmp/netcup-snapshot.sh auth login
bash /tmp/netcup-snapshot.sh servers
bash /tmp/netcup-snapshot.sh create 123456 pre-upgrade --wait
bash /tmp/netcup-snapshot.sh restore 123456 pre-upgrade --yes --wait
Destructive action

Restore reverts the disks and reboots the server. Data written after the snapshot is lost. Use --dry-run first and keep an out-of-band console available.

tools/netcup-mail-check.sh

Mail DNS and port 25 check

View on GitHub ↗

Checks MX, SPF, DMARC, DKIM, PTR, and TCP/25 reachability. This is a presence and reachability check, not a full policy evaluator.

# Download, inspect, then check a domain:
curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-mail-check.sh -o /tmp/netcup-mail-check.sh
less /tmp/netcup-mail-check.sh
bash /tmp/netcup-mail-check.sh example.com
bash /tmp/netcup-mail-check.sh example.com --selector mail --json
Port 25

From a residential ISP, TCP/25 may be blocked by the ISP rather than the destination. Run the check from a server with outbound port 25 for a meaningful result.

tools/netcup-exporter.sh

Prometheus metrics (textfile)

View on GitHub ↗

Writes host metrics (uptime, load, memory, disk, BBR, CPU steal) and ICMP latency to all 5 Netcup test IPs as a Prometheus textfile. Designed for node_exporter, cron, or a systemd timer; no Netcup credentials required.

# Write a textfile for node_exporter (cron or systemd timer):
curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-exporter.sh -o /tmp/netcup-exporter.sh
less /tmp/netcup-exporter.sh
bash /tmp/netcup-exporter.sh --textfile /var/lib/node_exporter/textfile/netcup.prom
bash /tmp/netcup-exporter.sh --no-latency
tools/netcup-calc.sh

Terminal VAT & Price Calculator

View on GitHub ↗

CLI tool to inspect net and gross prices for all active Netcup plans across 5 tax regions (0% non-EU, 0% B2B, 19% DE, 20% AT, 23% PL) with Netcup ceiling rounding.

# Download, inspect, then run the billing & VAT inspector:
curl -fsSL https://raw.githubusercontent.com/depavel/netcup-toolbox/v0.4.0/tools/netcup-calc.sh -o /tmp/netcup-calc.sh
less /tmp/netcup-calc.sh
bash /tmp/netcup-calc.sh
data/benchmarks.json

YABS benchmark dataset

JSON on GitHub ↗

Aggregated YABS results on clean Debian 12 minimal installations (AMD EPYC 9645 and NVIDIA H200 vGPU). The JSON file is a convenience extract of data/servers.json, not a raw log archive.

RS 500 G12.52285/4210 · 182.5k · 0.0%
RS 1000 G12.52290/7559 · 187.3k · 0.0%
RS 2000 G12.52295/13420 · 192.0k · 0.0%
RS 4000 G12.52301/17890 · 198.5k · 0.0%
RS 8000 G12.52305/21940 · 204.0k · 0.0%
RS 2000 vGPU 72210/12400 · 195.0k · 0.0%
RS 4000 vGPU 142225/17200 · 202.0k · 0.0%
VPS pico G11.5s980/1450 · 45.0k · 1.8%
VPS 500 G12.51710/2890 · 115.0k · 1.4%
VPS 1000 G12.51720/4650 · 130.0k · 1.2%
VPS 1000 ARM G12.51020/4980 · 142.0k · 0.4%
VPS 2000 G12.51740/7980 · 138.0k · 1.1%
VPS 4000 G12.51755/11200 · 145.0k · 1.0%
VPS 8000 G12.51760/14100 · 150.0k · 0.9%