Headless Sunuculara VPN Dağıtımı
FreeGuard CLI, masaüstü ortamı gerektirmeden headless Linux sunucularında yerel olarak çalışır. Bir bulut örneğini güvence altına alıyor, ev laboratuvarını koruyor veya konteyner trafiğini VPN üzerinden yönlendiriyor olun, bu kılavuz üretim sunucu dağıtımları için kurulum, kimlik doğrulama, hizmet yapılandırması ve izlemeyi kapsar.
Sunucuda Neden VPN Çalıştırmalı?
Sunucular hassas trafiği yönetir: veritabanı bağlantıları, API çağrıları, yedek aktarımları ve servisler arası iletişim. VPN’i sunucunun kendisinde çalıştırmak, bireysel uygulamaları yapılandırmadan tüm giden trafiğin şifrelenmesini sağlar.
Yaygın kullanım senaryoları:
- Coğrafi olarak kısıtlı API’lere erişen bulut örnekleri
- Tutarlı ağ kimliğine ihtiyaç duyan CI/CD runner’ları
- IP maskelemeden yararlanan kendi barındırılan hizmetler
- Dağıtık ekipler tarafından kullanılan geliştirme sunucuları
Kurulum
Ubuntu / Debian
curl -fsSL https://cli.freeguard.com/install.sh | bash
Veya APT deposundan yükleyin:
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
Veya RPM deposunu kullanın:
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 kullanıcılarının önce libc6-compat yüklemesi gerekebilir:
apk add libc6-compat
curl -fsSL https://cli.freeguard.com/install.sh | bash
Kurulumu Doğrulama
freeguard --version
Headless Kimlik Doğrulama
Tarayıcısı olmayan sunucularda varsayılan OAuth giriş akışını kullanamazsınız. FreeGuard CLI, headless ortamlar için e-posta tabanlı kimlik doğrulama sağlar.
E-posta ile Giriş
freeguard login --method email
CLI, hesap e-postanızı girmenizi ister. Bu adrese bir doğrulama kodu gönderilir. Kimlik doğrulamayı tamamlamak için terminalde kodu girin.
$ freeguard login --method email
Enter your email: [email protected]
Verification code sent. Check your inbox.
Enter code: 483291
Login successful.
Token Tabanlı Giriş
Otomatik dağıtımlar için bir hizmet tokeni kullanın:
freeguard login --method token --token YOUR_SERVICE_TOKEN
Hesap kontrol panelinden hizmet tokenleri oluşturun. Tokenler belirli sunucularla sınırlandırılabilir ve yapılandırılabilir son kullanma süresine sahip olabilir.
Kimlik Doğrulamayı Doğrulama
freeguard status --json | jq '.authenticated'
systemd Hizmeti Olarak Çalıştırma
Üretim dağıtımları için FreeGuard CLI’ı systemd hizmeti olarak çalıştırarak önyüklemede başlatılmasını ve hata durumunda yeniden başlatılmasını sağlayın.
Hizmet Dosyasını Oluşturma
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
Etkinleştirme ve Başlatma
sudo systemctl daemon-reload
sudo systemctl enable freeguard
sudo systemctl start freeguard
Hizmet Durumunu Kontrol Etme
sudo systemctl status freeguard
Günlükleri Görüntüleme
sudo journalctl -u freeguard -f
–json ve --no-color ile Betik Yazma
Üretim betikleri, insan tarafından okunabilir metin yerine yapılandırılmış çıktıyı ayrıştırmalıdır.
JSON Çıktısı
Her komut --json destekler:
# Connection status
freeguard status --json
Çıktı:
{
"connected": true,
"server": "us-east-1",
"server_name": "New York",
"protocol": "hysteria2",
"uptime": 86400,
"bytes_sent": 1048576,
"bytes_received": 5242880
}
Renksiz Mod
Temiz günlük dosyaları için ANSI renk kodlarını kaldırın:
freeguard status --no-color >> /var/log/freeguard-status.log
Betik Örneği
Hata durumunda yeniden bağlanan sağlık kontrolü betiği:
#!/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
Düzenli kontroller için cron’a ekleyin:
# Check VPN health every 5 minutes
*/5 * * * * /opt/scripts/freeguard-health.sh
İzleme ve Sağlık Kontrolleri
Temel Sağlık Kontrolü
freeguard status --json | jq -r '.connected'
true veya false döndürür. Herhangi bir izleme sistemi için yeterince basit.
İzleme Araçlarıyla Entegrasyon
Durumu Prometheus, Datadog veya shell komutları çalıştırabilen herhangi bir izleme sistemine aktarın:
#!/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
Uyarılar
Sağlık kontrolünü uyarı sisteminizle birleştirin. Basit bir webhook örneği:
#!/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
Güvenlik Hususları
- root olarak çalıştırma: VPN tüneli, ağ yollarını değiştirmek için root yetkileri gerektirir. systemd hizmeti varsayılan olarak root olarak çalışır.
- Token depolama: Hizmet tokenleri
~/.config/freeguard/dizininde saklanır. Uygun dosya izinlerini sağlayın (chmod 600). - Güvenlik duvarı kuralları: UFW veya iptables kullanıyorsanız, VPN tünel arayüzünün izin verildiğinden emin olun.
- Kill switch: VPN bağlantısı kesildiğinde tüm trafiği engellemek için kill switch’i etkinleştirin:
freeguard config set kill-switch true.
Sonraki Adımlar
- FreeGuard CLI — tam komut referansı
- Geliştirici iş akışı kılavuzu — VPN’i geliştirme araçlarınıza entegre edin
- Fiyatlandırma — sunucu dağıtımları herhangi bir planla çalışır
Son güncelleme: Mart 2026