Postavljanje VPN-a na headless poslužiteljima
FreeGuard CLI radi izvorno na headless Linux poslužiteljima bez potrebe za desktop okruženjem. Bilo da osiguravate cloud instancu, štitite kućni laboratorij ili usmjeravate promet kontejnera kroz VPN, ovaj vodič pokriva instalaciju, autentifikaciju, konfiguraciju usluge i nadzor za produkcijska okruženja.
Zašto pokrenuti VPN na poslužitelju?
Poslužitelji obrađuju osjetljiv promet: veze s bazama podataka, API pozive, prijenos sigurnosnih kopija i komunikaciju između usluga. Pokretanje VPN-a na samom poslužitelju osigurava da je sav odlazni promet šifriran bez konfiguriranja pojedinačnih aplikacija.
Uobičajeni slučajevi korištenja:
- Cloud instance koje pristupaju geografski ograničenim API-jima
- CI/CD pokretači kojima je potreban dosljedan mrežni identitet
- Samostalno hostirane usluge koje imaju koristi od maskiranja IP adrese
- Razvojni poslužitelji koje koriste raspodijeljeni timovi
Instalacija
Ubuntu / Debian
curl -fsSL https://cli.freeguard.com/install.sh | bash
Ili instalirajte iz APT repozitorija:
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
Ili koristite RPM repozitorij:
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
Korisnici Alpinea možda trebaju prvo instalirati libc6-compat:
apk add libc6-compat
curl -fsSL https://cli.freeguard.com/install.sh | bash
Provjera instalacije
freeguard --version
Headless autentifikacija
Na poslužiteljima bez preglednika ne možete koristiti zadani OAuth tok prijave. FreeGuard CLI pruža autentifikaciju putem e-pošte za headless okruženja.
Prijava putem e-pošte
freeguard login --method email
CLI vas traži da unesete e-poštu računa. Verifikacijski kod šalje se na tu adresu. Unesite kod u terminal za dovršetak autentifikacije.
$ freeguard login --method email
Enter your email: [email protected]
Verification code sent. Check your inbox.
Enter code: 483291
Login successful.
Prijava putem tokena
Za automatizirane implementacije koristite servisni token:
freeguard login --method token --token YOUR_SERVICE_TOKEN
Generirajte servisne tokene iz nadzorne ploče računa. Tokeni mogu biti ograničeni na određene poslužitelje i imati podesiv rok trajanja.
Provjera autentifikacije
freeguard status --json | jq '.authenticated'
Pokretanje kao systemd usluga
Za produkcijske implementacije pokrenite FreeGuard CLI kao systemd uslugu kako bi se pokretao pri pokretanju sustava i ponovno pokretao pri neuspjehu.
Kreiranje datoteke usluge
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
Omogućavanje i pokretanje
sudo systemctl daemon-reload
sudo systemctl enable freeguard
sudo systemctl start freeguard
Provjera statusa usluge
sudo systemctl status freeguard
Pregled zapisnika
sudo journalctl -u freeguard -f
Skriptiranje s --json i --no-color
Produkcijske skripte trebaju parsirati strukturirani izlaz umjesto teksta čitljivog ljudima.
JSON izlaz
Svaka naredba podržava --json:
# Connection status
freeguard status --json
Izlaz:
{
"connected": true,
"server": "us-east-1",
"server_name": "New York",
"protocol": "hysteria2",
"uptime": 86400,
"bytes_sent": 1048576,
"bytes_received": 5242880
}
Način bez boja
Uklonite ANSI kodove boja za čiste datoteke zapisnika:
freeguard status --no-color >> /var/log/freeguard-status.log
Primjer skriptiranja
Skripta za provjeru zdravlja koja se ponovno povezuje pri neuspjehu:
#!/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
Dodajte u cron za redovite provjere:
# Check VPN health every 5 minutes
*/5 * * * * /opt/scripts/freeguard-health.sh
Nadzor i provjere zdravlja
Osnovna provjera zdravlja
freeguard status --json | jq -r '.connected'
Vraća true ili false. Dovoljno jednostavno za bilo koji sustav nadzora.
Integracija s alatima za nadzor
Izvezite status u Prometheus, Datadog ili bilo koji sustav nadzora koji može izvršavati shell naredbe:
#!/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
Upozorenja
Kombinirajte provjeru zdravlja sa sustavom upozorenja. Primjer s jednostavnim webhookom:
#!/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
Sigurnosna razmatranja
- Pokretanje kao root: VPN tunel zahtijeva root ovlasti za izmjenu mrežnih ruta. Systemd usluga radi kao root prema zadanim postavkama.
- Pohrana tokena: Servisni tokeni pohranjeni su u
~/.config/freeguard/. Osigurajte odgovarajuće dozvole datoteka (chmod 600). - Pravila vatrozida: Ako koristite UFW ili iptables, osigurajte da je sučelje VPN tunela dozvoljeno.
- Kill switch: Omogućite kill switch za blokiranje svog prometa ako se VPN prekine:
freeguard config set kill-switch true.
Sljedeći koraci
- FreeGuard CLI — potpuna referenca naredbi
- Vodič za razvojni tijek rada — integrirajte VPN u svoje razvojne alate
- Cijene — implementacije na poslužiteljima rade s bilo kojim planom
Zadnje ažuriranje: ožujak 2026.