VPN izvietošana serveros bez grafiskās saskarnes
FreeGuard CLI darbojas natīvi Linux serveros bez grafiskās saskarnes, neprasot darbvirsmas vidi. Neatkarīgi no tā, vai nodrošināt mākoņa instanci, aizsargājat mājas laboratoriju vai maršrutējat konteineru trafiku caur VPN, šī rokasgrāmata aptver instalēšanu, autentifikāciju, pakalpojumu konfigurēšanu un uzraudzību produkcijas serveru izvietojumiem.

VPN izvietošana serveros bez grafiskās saskarnes

FreeGuard CLI darbojas natīvi Linux serveros bez grafiskās saskarnes, neprasot darbvirsmas vidi. Neatkarīgi no tā, vai nodrošināt mākoņa instanci, aizsargājat mājas laboratoriju vai maršrutējat konteineru trafiku caur VPN, šī rokasgrāmata aptver instalēšanu, autentifikāciju, pakalpojumu konfigurēšanu un uzraudzību produkcijas serveru izvietojumiem.

Kāpēc palaist VPN serverī?

Serveri apstrādā sensitīvu trafiku: datu bāzu savienojumus, API izsaukumus, dublējumu pārsūtīšanu un starpservisu komunikāciju. VPN palaišana pašā serverī nodrošina, ka visa izejošā trafika ir šifrēta, nekonfigurējot atsevišķas lietojumprogrammas.

Bieži lietošanas gadījumi:

  • Mākoņa instances, kas piekļūst ģeogrāfiski ierobežotiem API
  • CI/CD izpildītāji, kuriem nepieciešama konsekventa tīkla identitāte
  • Pašmitināti pakalpojumi, kas gūst labumu no IP maskēšanas
  • Izstrādes serveri, ko izmanto izkliedētas komandas

Instalēšana

Ubuntu / Debian

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

Vai instalējiet no 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

Vai izmantojiet RPM repozitoriju:

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 lietotājiem, iespējams, vispirms jāinstalē libc6-compat:

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

Instalēšanas pārbaude

freeguard --version

Autentifikācija bez grafiskās saskarnes

Serveros bez pārlūkprogrammas nevar izmantot noklusējuma OAuth pieteikšanās plūsmu. FreeGuard CLI nodrošina e-pasta autentifikāciju vidēm bez grafiskās saskarnes.

E-pasta pieteikšanās

freeguard login --method email

CLI lūdz ievadīt konta e-pasta adresi. Uz šo adresi tiek nosūtīts verifikācijas kods. Ievadiet kodu terminālī, lai pabeigtu autentifikāciju.

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

Pieteikšanās ar žetonu

Automatizētiem izvietojumiem izmantojiet pakalpojuma žetonu:

freeguard login --method token --token YOUR_SERVICE_TOKEN

Ģenerējiet pakalpojuma žetonus no konta vadības paneļa. Žetonus var ierobežot konkrētiem serveriem, un tiem var konfigurēt derīguma termiņu.

Autentifikācijas pārbaude

freeguard status --json | jq '.authenticated'

Palaišana kā systemd pakalpojums

Produkcijas izvietojumiem palaidiet FreeGuard CLI kā systemd pakalpojumu, lai tas startētu sāknēšanas laikā un restartētos kļūmes gadījumā.

Pakalpojuma faila izveide

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

Iespējošana un palaišana

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

Pakalpojuma statusa pārbaude

sudo systemctl status freeguard

Žurnālu skatīšana

sudo journalctl -u freeguard -f

Skriptēšana ar --json un --no-color

Produkcijas skriptiem jāparsē strukturēta izvade, nevis cilvēkam lasāms teksts.

JSON izvade

Katra komanda atbalsta --json:

# Connection status
freeguard status --json

Izvade:

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

Režīms bez krāsām

Noņemiet ANSI krāsu kodus tīriem žurnālu failiem:

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

Skriptēšanas piemērs

Veselības pārbaudes skripts, kas kļūmes gadījumā atkārtoti pieslēdzas:

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

Pievienojiet cron regulārām pārbaudēm:

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

Uzraudzība un veselības pārbaudes

Pamata veselības pārbaude

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

Atgriež true vai false. Pietiekami vienkārši jebkurai uzraudzības sistēmai.

Integrācija ar uzraudzības rīkiem

Eksportējiet statusu uz Prometheus, Datadog vai jebkuru uzraudzības sistēmu, kas var izpildīt 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

Brīdinājumi

Apvienojiet veselības pārbaudi ar brīdinājumu sistēmu. Piemērs ar vienkāršu 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

Drošības apsvērumi

  • Palaišana kā root: VPN tunelim nepieciešamas root tiesības tīkla maršrutu modificēšanai. Systemd pakalpojums pēc noklusējuma darbojas kā root.
  • Žetonu glabāšana: Pakalpojuma žetoni tiek glabāti mapē ~/.config/freeguard/. Nodrošiniet atbilstošas failu atļaujas (chmod 600).
  • Ugunsmūra noteikumi: Ja izmantojat UFW vai iptables, pārliecinieties, ka VPN tuneļa saskarne ir atļauta.
  • Kill switch: Iespējojiet kill switch, lai bloķētu visu trafiku, ja VPN atvienojas: freeguard config set kill-switch true.

Nākamie soļi

Pēdējo reizi atjaunināts: 2026. gada marts