Распоредување 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