Nasazení VPN na serverech bez grafického rozhraní
FreeGuard CLI běží nativně na linuxových serverech bez grafického rozhraní, aniž by vyžadoval desktopové prostředí. Ať už zabezpečujete cloudovou instanci, chráníte domácí laboratoř nebo směrujete kontejnerový provoz přes VPN, tento průvodce pokrývá instalaci, autentizaci, konfiguraci služby a monitoring pro produkční nasazení na serverech.
Proč provozovat VPN na serveru?
Servery zpracovávají citlivý provoz: databázová připojení, API volání, přenosy záloh a komunikaci mezi službami. Provoz VPN přímo na serveru zajistí šifrování veškerého odchozího provozu bez nutnosti konfigurace jednotlivých aplikací.
Běžné případy použití:
- Cloudové instance přistupující ke geograficky omezeným API
- CI/CD runnery vyžadující konzistentní síťovou identitu
- Self-hosted služby těžící z maskování IP adresy
- Vývojové servery používané distribuovanými týmy
Instalace
Ubuntu / Debian
curl -fsSL https://cli.freeguard.com/install.sh | bash
Nebo nainstalujte z APT repozitáře:
curl -fsSL https://cli.freeguard.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/freeguard.gpg
echo "deb [signed-by=/usr/share/keyrings/freeguard.gpg] https://apt.freeguard.com stable main" | sudo tee /etc/apt/sources.list.d/freeguard.list
sudo apt update
sudo apt install freeguard-cli
CentOS / RHEL / Fedora
curl -fsSL https://cli.freeguard.com/install.sh | bash
Nebo použijte RPM repozitář:
sudo rpm --import https://cli.freeguard.com/gpg.key
sudo tee /etc/yum.repos.d/freeguard.repo <<EOF
[freeguard]
name=FreeGuard CLI
baseurl=https://rpm.freeguard.com/stable
gpgcheck=1
gpgkey=https://cli.freeguard.com/gpg.key
EOF
sudo yum install freeguard-cli
Alpine Linux
curl -fsSL https://cli.freeguard.com/install.sh | bash
Uživatelé Alpine mohou potřebovat nejprve nainstalovat libc6-compat:
apk add libc6-compat
curl -fsSL https://cli.freeguard.com/install.sh | bash
Ověření instalace
freeguard --version
Autentizace bez grafického rozhraní
Na serverech bez prohlížeče nemůžete použít výchozí OAuth přihlášení. FreeGuard CLI poskytuje autentizaci prostřednictvím e-mailu pro prostředí bez grafického rozhraní.
Přihlášení e-mailem
freeguard login --method email
CLI vás vyzve k zadání e-mailu účtu. Na tuto adresu je odeslán ověřovací kód. Zadejte kód v terminálu pro dokončení autentizace.
$ freeguard login --method email
Enter your email: [email protected]
Verification code sent. Check your inbox.
Enter code: 483291
Login successful.
Přihlášení tokenem
Pro automatizovaná nasazení použijte servisní token:
freeguard login --method token --token YOUR_SERVICE_TOKEN
Generujte servisní tokeny z vašeho panelu účtu. Tokeny mohou být omezeny na konkrétní servery a mají konfigurovatelnou dobu platnosti.
Ověření autentizace
freeguard status --json | jq '.authenticated'
Spuštění jako služba systemd
Pro produkční nasazení spouštějte FreeGuard CLI jako službu systemd, aby se spustil při startu a restartoval při selhání.
Vytvoření souboru služby
sudo tee /etc/systemd/system/freeguard.service <<EOF
[Unit]
Description=FreeGuard VPN
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/freeguard connect --server us-east --no-color
ExecStop=/usr/local/bin/freeguard disconnect
Restart=on-failure
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
EOF
Povolení a spuštění
sudo systemctl daemon-reload
sudo systemctl enable freeguard
sudo systemctl start freeguard
Kontrola stavu služby
sudo systemctl status freeguard
Zobrazení logů
sudo journalctl -u freeguard -f
Skriptování s --json a --no-color
Produkční skripty by měly parsovat strukturovaný výstup místo textu čitelného člověkem.
JSON výstup
Každý příkaz podporuje --json:
# Connection status
freeguard status --json
Výstup:
{
"connected": true,
"server": "us-east-1",
"server_name": "New York",
"protocol": "hysteria2",
"uptime": 86400,
"bytes_sent": 1048576,
"bytes_received": 5242880
}
Režim bez barev
Odstraňte ANSI barevné kódy pro čisté log soubory:
freeguard status --no-color >> /var/log/freeguard-status.log
Příklad skriptu
Skript pro kontrolu stavu, který se při selhání znovu připojí:
#!/bin/bash
STATUS=$(freeguard status --json 2>/dev/null)
CONNECTED=$(echo "$STATUS" | jq -r '.connected')
if [ "$CONNECTED" != "true" ]; then
echo "$(date): VPN disconnected, reconnecting..." >> /var/log/freeguard-health.log
freeguard connect --server us-east --json >> /var/log/freeguard-health.log 2>&1
fi
Přidejte do cronu pro pravidelné kontroly:
# Check VPN health every 5 minutes
*/5 * * * * /opt/scripts/freeguard-health.sh
Monitoring a kontroly stavu
Základní kontrola stavu
freeguard status --json | jq -r '.connected'
Vrací true nebo false. Dostatečně jednoduché pro jakýkoli monitorovací systém.
Integrace s monitorovacími nástroji
Exportujte stav do Prometheus, Datadog nebo jakéhokoli monitorovacího systému, který může spouštět shell příkazy:
#!/bin/bash
# prometheus-exporter.sh
STATUS=$(freeguard status --json)
CONNECTED=$(echo "$STATUS" | jq -r '.connected')
UPTIME=$(echo "$STATUS" | jq -r '.uptime')
if [ "$CONNECTED" = "true" ]; then
echo "freeguard_connected 1"
echo "freeguard_uptime_seconds $UPTIME"
else
echo "freeguard_connected 0"
echo "freeguard_uptime_seconds 0"
fi
Upozornění
Kombinujte kontrolu stavu s vaším systémem upozornění. Příklad s jednoduchým webhookem:
#!/bin/bash
CONNECTED=$(freeguard status --json | jq -r '.connected')
if [ "$CONNECTED" != "true" ]; then
curl -X POST https://hooks.example.com/alert \
-H "Content-Type: application/json" \
-d '{"text": "FreeGuard VPN disconnected on '"$(hostname)"'"}'
fi
Bezpečnostní aspekty
- Spuštění jako root: VPN tunel vyžaduje oprávnění root pro úpravu síťových tras. Služba systemd běží jako root ve výchozím nastavení.
- Úložiště tokenů: Servisní tokeny jsou uloženy v
~/.config/freeguard/. Zajistěte odpovídající oprávnění souborů (chmod 600). - Pravidla firewallu: Pokud používáte UFW nebo iptables, ujistěte se, že rozhraní VPN tunelu je povoleno.
- Kill switch: Aktivujte kill switch pro blokování veškerého provozu při odpojení VPN:
freeguard config set kill-switch true.
Další kroky
- FreeGuard CLI — kompletní reference příkazů
- Průvodce vývojářským workflow — integrujte VPN do svých vývojových nástrojů
- Ceník — serverová nasazení fungují s jakýmkoli plánem
Poslední aktualizace: březen 2026