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
- FreeGuard CLI — pilna komandu atsauce
- Izstrādātāju darbplūsmas ceļvedis — integrējiet VPN savos izstrādes rīkos
- Cenas — serveru izvietojumi darbojas ar jebkuru plānu
Pēdējo reizi atjaunināts: 2026. gada marts