Разгръщане на 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 г.