VPN diegimas serveriuose be grafines sasajos
FreeGuard CLI veikia natyviai Linux serveriuose be grafines sasajos, nereikalaujant darbalaukio aplinkos. Nesvarbu, ar saugote debesies egzemplioriu, namq laboratorija ar nukreipiate konteineriu srautq per VPN, sis vadovas apima diegimq, autentifikacijq, paslaugos konfiguracijq ir stebejimq produkciniams serveriu diegimams.

VPN diegimas serveriuose be grafines sasajos

FreeGuard CLI veikia natyviai Linux serveriuose be grafines sasajos, nereikalaujant darbalaukio aplinkos. Nesvarbu, ar saugote debesies egzemplioriu, namq laboratorija ar nukreipiate konteineriu srautq per VPN, sis vadovas apima diegimq, autentifikacijq, paslaugos konfiguracijq ir stebejimq produkciniams serveriu diegimams.

Kodel paleisti VPN serveryje?

Serveriai apdoroja jautru srautq: duomenq baziq rysius, API uzklauses, atsarginiu kopiju perkelimus ir tarpusavio paslaugq komunikacijq. VPN paleidimas paciame serveryje uztikrina, kad visas iseinantis srautas yra uzkoduotas be atskirq programq konfigūravimo.

Dazni naudojimo atvejai:

  • Debesies egzemplioriai, pasiekiantys geografiskai ribotus API
  • CI/CD vykdytojai, kuriems reikia nuoseklios tinklo tapatybes
  • Savarankiskai talpinamospaslaugos, kurios gauna naudos is IP maskavimo
  • Kūrimo serveriai, naudojami paskirstytq komandq

Diegimas

Ubuntu / Debian

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

Arba diegimas is APT saugyklos:

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

Arba naudokite RPM saugyklq:

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

Alpine naudotojai gali pirma tureti idiegti libc6-compat:

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

Diegimo patikrinimas

freeguard --version

Autentifikacija be grafines sasajos

Serveriuose be narsykles negalite naudoti numatyto OAuth prisijungimo srauto. FreeGuard CLI teikia el. pastu pagrista autentifikacija aplinkoms be grafines sasajos.

Prisijungimas el. pastu

freeguard login --method email

CLI papraso ivesti paskyros el. pasto adresa. Patvirtinimo kodas siunciamas i tq adresq. Iveskite kodq terminale, kad uzbaigtumete autentifikacijq.

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

Prisijungimas su zetonu

Automatizuotiems diegimams naudokite paslaugos zetonq:

freeguard login --method token --token YOUR_SERVICE_TOKEN

Generuokite paslaugos zetonus is paskyros valdymo skydo. Zetonai gali buti apriboti konkretiems serveriams ir tureti konfiguruojamq galiojimo laikq.

Autentifikacijos patikrinimas

freeguard status --json | jq '.authenticated'

Paleidimas kaip systemd paslauga

Produkciniams diegimams paleiskite FreeGuard CLI kaip systemd paslaugq, kad ji startuotq paleidus sistemq ir persikrautq klaidos atveju.

Paslaugos failo sukurimas

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

Ijungimas ir paleidimas

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

Paslaugos busenos tikrinimas

sudo systemctl status freeguard

Zurnalynu perziura

sudo journalctl -u freeguard -f

Skriptavimas su --json ir --no-color

Produkcines skriptos turetu analizuoti strukturuotq isvesti, o ne zmogaus skaitomq tekstq.

JSON isvestis

Kiekviena komanda palaiko --json:

# Connection status
freeguard status --json

Isvestis:

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

Rezimas be spalvq

Pasalinkite ANSI spalvq kodus svariam zurnalq failui:

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

Skriptavimo pavyzdys

Sveikatos patikros skriptas, kuris prisijungia is naujo klaidos atveju:

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

Pridekite prie cron reguliariems tikrinimams:

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

Stebesena ir sveikatos patikrinimai

Pagrindinis sveikatos patikrinimas

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

Grazina true arba false. Pakankamai paprasta bet kuriai stebesenos sistemai.

Integracija su stebesenos irankiais

Eksportuokite busena i Prometheus, Datadog ar bet kuria stebesenos sistema, galincia vykdyti shell komandas:

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

Ispejimo pranesimai

Sujunkite sveikatos patikrinimq su ispejimo sistema. Pavyzdys su paprastu webhook:

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

Saugumo aspektai

  • Paleidimas kaip root: VPN tuneliui reikia root teisiu tinklo marsrutu keitimui. Systemd paslauga pagal numatymq veikia kaip root.
  • Zetonu saugojimas: Paslaugos zetonai saugomi ~/.config/freeguard/. Uztikrinkite tinkamas failo teises (chmod 600).
  • Ugniasienestaisykles: Jei naudojate UFW arba iptables, uztikrinkite, kad VPN tunelio sqsaja yra leistina.
  • Kill switch: Ijunkite kill switch, kad uzblokuotumete visq srautq, jei VPN atsijungia: freeguard config set kill-switch true.

Kiti zingsniai

Paskutini karta atnaujinta: 2026 m. kovas