Namestitev VPN na strežnikih brez grafičnega vmesnika
FreeGuard CLI deluje nativno na strežnikih Linux brez grafičnega vmesnika, brez potrebe po namiznem okolju. Ne glede na to, ali varujete oblačno instanco, ščitite domači laboratorij ali usmerjate promet vsebnikov prek VPN, ta vodnik pokriva namestitev, avtentikacijo, konfiguracijo storitve in nadzor za produkcijske namestitve na strežnikih.

Namestitev VPN na strežnikih brez grafičnega vmesnika

FreeGuard CLI deluje nativno na strežnikih Linux brez grafičnega vmesnika, brez potrebe po namiznem okolju. Ne glede na to, ali varujete oblačno instanco, ščitite domači laboratorij ali usmerjate promet vsebnikov prek VPN, ta vodnik pokriva namestitev, avtentikacijo, konfiguracijo storitve in nadzor za produkcijske namestitve na strežnikih.

Zakaj poganjati VPN na strežniku?

Strežniki obdelujejo občutljiv promet: povezave z bazami podatkov, klice API, prenose varnostnih kopij in komunikacijo med storitvami. Poganjanje VPN na strežniku samem zagotavlja, da je ves izhodni promet šifriran brez konfiguriranja posameznih aplikacij.

Pogosti primeri uporabe:

  • Oblačne instance, ki dostopajo do geografsko omejenih API-jev
  • CI/CD tekači, ki potrebujejo dosledno omrežno identiteto
  • Samo-gostovane storitve, ki imajo korist od prikrivanja IP
  • Razvojni strežniki, ki jih uporabljajo porazdeljene ekipe

Namestitev

Ubuntu / Debian

curl -fsSL https://cli.freeguard.com/install.sh | bash

Ali namestite iz repozitorija APT:

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

Ali uporabite repozitorij RPM:

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

Uporabniki Alpine bodo morda morali najprej namestiti libc6-compat:

apk add libc6-compat
curl -fsSL https://cli.freeguard.com/install.sh | bash

Preverjanje namestitve

freeguard --version

Avtentikacija brez grafičnega vmesnika

Na strežnikih brez brskalnika ne morete uporabiti privzetega toka prijave OAuth. FreeGuard CLI zagotavlja avtentikacijo prek e-pošte za okolja brez grafičnega vmesnika.

Prijava z e-pošto

freeguard login --method email

CLI vas pozove k vnosu e-pošte računa. Na ta naslov se pošlje potrditvena koda. Vnesite kodo v terminal za dokončanje avtentikacije.

$ freeguard login --method email
Enter your email: [email protected]
Verification code sent. Check your inbox.
Enter code: 483291
Login successful.

Prijava z žetonom

Za avtomatizirane namestitve uporabite storitveni žeton:

freeguard login --method token --token YOUR_SERVICE_TOKEN

Ustvarite storitvene žetone na nadzorni plošči računa. Žetoni so lahko omejeni na določene strežnike in imajo nastavljiv rok veljavnosti.

Preverjanje avtentikacije

freeguard status --json | jq '.authenticated'

Poganjanje kot storitev systemd

Za produkcijske namestitve poganjajte FreeGuard CLI kot storitev systemd, da se zažene ob zagonu in znova zažene ob napaki.

Ustvarjanje datoteke storitve

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

Omogočanje in zagon

sudo systemctl daemon-reload
sudo systemctl enable freeguard
sudo systemctl start freeguard

Preverjanje stanja storitve

sudo systemctl status freeguard

Ogled dnevnikov

sudo journalctl -u freeguard -f

Skriptiranje z --json in --no-color

Produkcijski skripti naj razčlenjujejo strukturiran izhod namesto besedila, berljivega za človeka.

Izhod JSON

Vsak ukaz podpira --json:

# Connection status
freeguard status --json

Izhod:

{
  "connected": true,
  "server": "us-east-1",
  "server_name": "New York",
  "protocol": "hysteria2",
  "uptime": 86400,
  "bytes_sent": 1048576,
  "bytes_received": 5242880
}

Način brez barv

Odstranite barvne kode ANSI za čiste dnevniške datoteke:

freeguard status --no-color >> /var/log/freeguard-status.log

Primer skriptiranja

Skript za preverjanje zdravja, ki se ob napaki znova poveže:

#!/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 v cron za redne preglede:

# Check VPN health every 5 minutes
*/5 * * * * /opt/scripts/freeguard-health.sh

Nadzor in preverjanje zdravja

Osnovno preverjanje zdravja

freeguard status --json | jq -r '.connected'

Vrne true ali false. Dovolj preprosto za kakršenkoli nadzorni sistem.

Integracija z orodji za nadzor

Izvozite stanje v Prometheus, Datadog ali kateri koli nadzorni sistem, ki lahko izvaja ukaze lupine:

#!/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

Opozorila

Združite preverjanje zdravja z vašim sistemom opozoril. Primer s preprostim 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

Varnostni vidiki

  • Poganjanje kot root: Tunel VPN zahteva pravice root za spreminjanje omrežnih poti. Storitev systemd privzeto deluje kot root.
  • Shranjevanje žetonov: Storitveni žetoni so shranjeni v ~/.config/freeguard/. Zagotovite ustrezna dovoljenja datotek (chmod 600).
  • Pravila požarnega zidu: Če uporabljate UFW ali iptables, zagotovite, da je vmesnik tunela VPN dovoljen.
  • Kill switch: Omogočite kill switch za blokiranje vsega prometa, če se VPN prekine: freeguard config set kill-switch true.

Naslednji koraki

Zadnja posodobitev: marec 2026