Перейти до вмісту
netcup-toolbox•MIT License•v0.4.0

DevOps-інструменти та системні утиліти Netcup

Відкриті shell-скрипти, перевірка затримки мережі та конфігурації sysctl для серверів Netcup Root Server і VPS. Вихідний код на GitHub під ліцензією MIT.

Репозиторій GitHubdepavel/netcup-toolbox ↗
git clone https://github.com/depavel/netcup-toolbox.git
tools/netcup-ping.sh

Тестування затримки до дата-центрів

Переглянути на GitHub ↗

Вимірює ICMP-затримку та втрату пакетів з вашої машини до всіх 5 офіційних вузлів Looking Glass Netcup. Підтримує iputils і 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

Початкове налаштування сервера та BBR

Переглянути на GitHub ↗

Оптимізує Debian 12 / Ubuntu 24.04: вмикає TCP BBR, swappiness=10 для NVMe, фаєрвол UFW та автооновлення безпеки. Підтримує власний SSH-порт і --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
Параметр ядраЗначенняТехнічне обґрунтування
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

Генератор Netplan для Cloud vLAN

Переглянути на GitHub ↗

Генерує готову конфігурацію Netplan або Debian для внутрішньої мережі Netcup Cloud vLAN (2.5 Гбіт/с). Netcup Cloud vLAN використовує лише MTU 1500; Jumbo frames не підтримуються.

Netcup Cloud vLAN використовує стандартний MTU 1500 байт. Jumbo frames у цій мережі не підтримуються.

Згенерована конфігурація/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 (CCP API)

Переглянути на GitHub ↗

Автоматизує оновлення A-запису для домену чи піддомену через офіційний JSON API панелі Netcup CCP.

# 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
Автоматичний запуск через crontab:

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

tools/netcup-rdns.sh

Reverse DNS (PTR) для IPv4 та IPv6

Переглянути на GitHub ↗

Читає, встановлює та видаляє PTR-записи через SCP REST API. Коректний PTR потрібен для надійної доставки пошти. Скрипт використовує OAuth2 device flow і зберігає лише refresh token з правами 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

Керування снепшотами (SCP)

Переглянути на GitHub ↗

Показує, створює, видаляє, експортує та відновлює снепшоти через SCP REST API. Видалення й відновлення потребують --yes; відновлення перезавантажує сервер і відкидає зміни після снепшота.

# 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

Перевірка DNS пошти та порту 25

Переглянути на GitHub ↗

Перевіряє MX, SPF, DMARC, DKIM, PTR і доступність TCP/25. Це перевірка наявності й доступності, а не повний аналізатор політик.

# 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 (textfile)

Переглянути на GitHub ↗

Записує метрики хоста (uptime, load, RAM, диск, BBR, CPU steal) та ICMP-затримку до 5 тестових IP Netcup як текстовий файл Prometheus. Для node_exporter, cron або systemd timer; без облікових даних Netcup.

# 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

Термінальний калькулятор цін та ПДВ

Переглянути на GitHub ↗

Консольна утиліта для розрахунку цін нетто і брутто для всіх активних тарифів Netcup у 5 податкових зонах (0% поза ЄС, 0% B2B, 19% DE, 20% AT, 23% PL) з округленням угору.

# 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

JSON на GitHub ↗

Агреговані результати YABS на чистих мінімальних інсталяціях Debian 12 (AMD EPYC 9645 і NVIDIA H200 vGPU). Файл JSON — зручна витримка з data/servers.json, а не архів сирих логів.

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%