Ανάπτυξη VPN σε Headless Servers
Το FreeGuard CLI εκτελείται εγγενώς σε headless Linux servers χωρίς να απαιτείται γραφικό περιβάλλον. Είτε ασφαλίζετε ένα cloud instance, προστατεύετε ένα home lab ή δρομολογείτε container traffic μέσω VPN, αυτός ο οδηγός καλύπτει την εγκατάσταση, τον έλεγχο ταυτότητας, τη διαμόρφωση υπηρεσιών και την παρακολούθηση για παραγωγικές αναπτύξεις σε servers.
Γιατί να εκτελέσετε VPN σε server;
Οι servers χειρίζονται ευαίσθητη κίνηση: συνδέσεις βάσεων δεδομένων, κλήσεις API, μεταφορές αντιγράφων ασφαλείας και επικοινωνία μεταξύ υπηρεσιών. Η εκτέλεση VPN στον ίδιο τον server εξασφαλίζει ότι όλη η εξερχόμενη κίνηση είναι κρυπτογραφημένη χωρίς να ρυθμίζετε μεμονωμένες εφαρμογές.
Συνηθισμένες περιπτώσεις χρήσης:
- Cloud instances που έχουν πρόσβαση σε γεωγραφικά περιορισμένα API
- CI/CD runners που χρειάζονται σταθερή ταυτότητα δικτύου
- Self-hosted υπηρεσίες που ωφελούνται από την απόκρυψη IP
- Servers ανάπτυξης που χρησιμοποιούνται από κατανεμημένες ομάδες
Εγκατάσταση
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
Έλεγχος ταυτότητας χωρίς γραφικό περιβάλλον
Σε servers χωρίς πρόγραμμα περιήγησης, δεν μπορείτε να χρησιμοποιήσετε την προεπιλεγμένη ροή σύνδεσης OAuth. Το FreeGuard CLI παρέχει έλεγχο ταυτότητας μέσω email για headless περιβάλλοντα.
Σύνδεση μέσω email
freeguard login --method email
Το CLI σας ζητά να εισαγάγετε το email του λογαριασμού σας. Ένας κωδικός επαλήθευσης αποστέλλεται σε αυτή τη διεύθυνση. Εισαγάγετε τον κωδικό στο τερματικό για να ολοκληρώσετε τον έλεγχο ταυτότητας.
$ freeguard login --method email
Enter your email: [email protected]
Verification code sent. Check your inbox.
Enter code: 483291
Login successful.
Σύνδεση με token
Για αυτοματοποιημένες αναπτύξεις, χρησιμοποιήστε ένα service token:
freeguard login --method token --token YOUR_SERVICE_TOKEN
Δημιουργήστε service tokens από τον πίνακα ελέγχου του λογαριασμού σας. Τα tokens μπορούν να περιοριστούν σε συγκεκριμένους servers και να έχουν ρυθμιζόμενη λήξη.
Επαλήθευση ελέγχου ταυτότητας
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
Scripting με --json και --no-color
Τα scripts παραγωγής πρέπει να αναλύουν δομημένη έξοδο αντί για κείμενο αναγνώσιμο από ανθρώπους.
Έξοδος 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
Παράδειγμα scripting
Ένα script ελέγχου υγείας που επανασυνδέεται σε περίπτωση αποτυχίας:
#!/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 από προεπιλογή.
- Αποθήκευση tokens: Τα service tokens αποθηκεύονται στο
~/.config/freeguard/. Βεβαιωθείτε ότι τα δικαιώματα αρχείων είναι κατάλληλα (chmod 600). - Κανόνες firewall: Αν χρησιμοποιείτε UFW ή iptables, βεβαιωθείτε ότι η διεπαφή της σήραγγας VPN επιτρέπεται.
- Kill switch: Ενεργοποιήστε το kill switch για αποκλεισμό όλης της κίνησης αν αποσυνδεθεί το VPN:
freeguard config set kill-switch true.
Επόμενα βήματα
- FreeGuard CLI — πλήρης αναφορά εντολών
- Οδηγός ροής εργασίας προγραμματιστή — ενσωματώστε το VPN στα εργαλεία ανάπτυξής σας
- Τιμολόγηση — οι αναπτύξεις σε servers λειτουργούν με οποιοδήποτε πλάνο
Τελευταία ενημέρωση: Μάρτιος 2026