Постављање VPN-а на серверима без графичког интерфејса
FreeGuard CLI ради нативно на Linux серверима без графичког интерфејса, без потребе за десктоп окружењем. Било да обезбеђујете облак инстанцу, штитите кућну лабораторију или усмеравате саобраћај контејнера кроз VPN, овај водич покрива инсталацију, аутентификацију, конфигурацију сервиса и надзор за продукционе серверске поставке.
Зашто покренути VPN на серверу?
Сервери обрађују осетљив саобраћај: конекције ка базама података, API позиве, пренос резервних копија и комуникацију између сервиса. Покретање VPN-а на самом серверу обезбеђује да је сав одлазни саобраћај шифрован без конфигурисања појединачних апликација.
Уобичајени случајеви употребе:
- Облак инстанце које приступају географски ограниченим API-јима
- CI/CD покретачи којима је потребан конзистентан мрежни идентитет
- Самостално хостовани сервиси који имају корист од маскирања IP адресе
- Развојни сервери које користе дистрибуирани тимови
Инсталација
Ubuntu / Debian
curl -fsSL https://cli.freeguard.com/install.sh | bash
Или инсталирајте из 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
Или користите 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
Корисници Alpine-а можда прво треба да инсталирају libc6-compat:
apk add libc6-compat
curl -fsSL https://cli.freeguard.com/install.sh | bash
Верификација инсталације
freeguard --version
Аутентификација без графичког интерфејса
На серверима без прегледача не можете користити подразумевани OAuth ток пријављивања. FreeGuard CLI пружа аутентификацију путем е-поште за окружења без графичког интерфејса.
Пријава путем е-поште
freeguard login --method email
CLI тражи да унесете е-пошту налога. Верификациони код се шаље на ту адресу. Унесите код у терминалу да завршите аутентификацију.
$ freeguard login --method email
Enter your email: [email protected]
Verification code sent. Check your inbox.
Enter code: 483291
Login successful.
Пријава токеном
За аутоматизоване поставке користите сервисни токен:
freeguard login --method token --token YOUR_SERVICE_TOKEN
Генеришите сервисне токене са контролне табле налога. Токени могу бити ограничени на одређене сервере и имати подесив рок важења.
Верификација аутентификације
freeguard status --json | jq '.authenticated'
Покретање као systemd сервис
За продукционе поставке покрените FreeGuard CLI као systemd сервис да се покреће при подизању система и поново покреће при грешци.
Креирање фајла сервиса
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
Омогућавање и покретање
sudo systemctl daemon-reload
sudo systemctl enable freeguard
sudo systemctl start freeguard
Провера статуса сервиса
sudo systemctl status freeguard
Преглед логова
sudo journalctl -u freeguard -f
Скриптовање са --json и --no-color
Продукционе скрипте треба да парсирају структуирани излаз уместо текста читљивог за људе.
JSON излаз
Свака команда подржава --json:
# Connection status
freeguard status --json
Излаз:
{
"connected": true,
"server": "us-east-1",
"server_name": "New York",
"protocol": "hysteria2",
"uptime": 86400,
"bytes_sent": 1048576,
"bytes_received": 5242880
}
Режим без боја
Уклоните ANSI кодове боја за чисте лог фајлове:
freeguard status --no-color >> /var/log/freeguard-status.log
Пример скриптовања
Скрипта за проверу здравља која се поново повезује при грешци:
#!/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
Додајте у cron за редовне провере:
# Check VPN health every 5 minutes
*/5 * * * * /opt/scripts/freeguard-health.sh
Надзор и провере здравља
Основна провера здравља
freeguard status --json | jq -r '.connected'
Враћа true или false. Довољно једноставно за било који систем надзора.
Интеграција са алатима за надзор
Извезите статус у Prometheus, Datadog или било који систем надзора који може извршавати shell команде:
#!/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
Обавештења
Комбинујте проверу здравља са вашим системом обавештења. Пример са једноставним 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
Безбедносна разматрања
- Покретање као root: VPN тунел захтева root привилегије за измену мрежних рута. Systemd сервис подразумевано ради као root.
- Складиштење токена: Сервисни токени су складиштени у
~/.config/freeguard/. Обезбедите одговарајуће дозволе фајлова (chmod 600). - Правила заштитног зида: Ако користите UFW или iptables, обезбедите да је интерфејс VPN тунела дозвољен.
- Kill switch: Омогућите kill switch за блокирање свог саобраћаја ако се VPN искључи:
freeguard config set kill-switch true.
Следећи кораци
- FreeGuard CLI — потпуна референца команди
- Водич за развојни ток рада — интегришите VPN у своје развојне алате
- Цене — серверске поставке раде са било којим планом
Последње ажурирање: март 2026.