Vuoi una VPN di cui sei proprietario. Nessun audit annuale "no-logs", nessun IP condiviso con 4.000 sconosciuti, nessun raddoppio del prezzo alla fine della promozione. Questa guida ti permette di far funzionare WireGuard su un VPS Contabo in 20 minuti, dalla registrazione al primo curl ifconfig.me che restituisce l'IP del tuo VPS tedesco.
Questa è la configurazione esatta che consigliamo per un tunnel self-host in produzione. Contabo pubblicizza un collegamento a 200 Mbit/s e la posizione centrale di Norimberga in Europa mantiene la latenza bassa per i clienti FR/EU.
Perché scegliere Contabo rispetto a Hetzner, OVH o DigitalOcean
La scelta del provider VPS per una VPN self-host non è banale e condiziona il rapporto prezzo-prestazioni-giurisdizione che otterrai per i prossimi 3-5 anni. Confrontando le specifiche pubblicate di Contabo, Hetzner Cloud e OVH, il verdetto si riduce a tre assi: prezzo, prestazioni, giurisdizione.
Sul prezzo, Contabo VPS S Cloud a 4,99 €/mese per 4 vCPU / 8 GB RAM / 200 Mbps è imbattibile in Europa. Hetzner CX22 ha un equivalente a 4,15 €/mese ma solo 2 vCPU e 4 GB RAM, metà dello spazio se vuoi ospitare Nextcloud, Pi-hole o Vaultwarden insieme alla VPN. OVH VPS Value a 4,50 €/mese offre 2 vCPU / 4 GB / 1 vCPU limitato al 20% di CPU rubata in certi periodi — il peggior affare dei tre in pratica.
Sulle prestazioni, entrambi gli host pubblicizzano una larghezza di banda ampia per una VPN personale (Contabo un collegamento a 200 Mbit/s, Hetzner una porta gigabit condivisa). Per una VPN self-host, anche un collegamento a 200 Mbit/s è più che sufficiente per saturare la maggior parte delle connessioni domestiche, quindi il throughput massimo raramente è il fattore decisivo — giurisdizione e prezzo solitamente contano di più. Esegui iperf3 tu stesso dalla tua connessione se hai bisogno di numeri esatti.
Sulla giurisdizione, Contabo ha il suo principale DC a Norimberga (Germania), Hetzner a Falkenstein (anch'essa in Germania), OVH a Roubaix o Strasburgo (Francia). Germania e Francia hanno quadri GDPR comparabili e entrambe sono al di fuori del CLOUD Act statunitense. Differenza pratica: la società madre di Contabo è puramente tedesca (GmbH Monaco), Hetzner lo stesso (GmbH Gunzenhausen), OVHcloud è quotata alla borsa di Parigi dal 2021, il che aggiunge un livello di pressione degli azionisti che le altre due non hanno. Per una VPN orientata alla privacy, preferiamo leggermente le GmbH tedesche non quotate.
Il differenziatore finale è il supporto via email. Contabo risponde tipicamente tra le 4 e le 24 ore sui ticket, Hetzner tra le 2 e le 12 ore, OVH tra le 24 ore e i 5 giorni. Per una VPN personale dove puoi risolvere la maggior parte dei problemi da solo tramite SSH, il supporto conta poco — tranne il giorno in cui il tuo VPS non si riavvia dopo un aggiornamento del kernel e hai bisogno di accesso alla console di recupero. Quel giorno, Hetzner vince facilmente.
Passo 1 — Ordina il VPS Contabo
Vai su contabo.com tramite il nostro link /go/contabo-vps-2y e scegli:
- Piano: VPS S Cloud (4 vCPU AMD EPYC, 8 GB RAM, 50 GB NVMe, 200 Mbps garantiti, 32 TB/mese di traffico)
- Impegno: 24 mesi (blocca il prezzo a 4,99 €/mese, mensile è 8,49 €)
- OS: Ubuntu 22.04 LTS (anche 24.04 funziona, ma 22.04 rimane più stabile per i pacchetti WireGuard)
- Datacenter: Norimberga (DE) — migliore latenza Francia/Europa + giurisdizione GDPR tedesca
- Password di root: genera una password forte, memorizzala temporaneamente nel tuo gestore di password (elimina dopo aver creato un utente non-root)
- Add-on: deseleziona tutto (i backup di Contabo non sono necessari, facciamo il backup noi stessi)
Totale anticipato ~119 € su 24 mesi. All'attivazione ricevi un'email con l'IP pubblico e la password di root. Pianifica da 5 minuti a 4 ore a seconda del tempo. Le ore di punta (18:00-22:00 CET, martedì/mercoledì) sono le più lente.
Divulgazione:
/go/contabo-vps-2yè un link sponsorizzato. Se acquisti il VPS, guadagniamo una commissione a costo zero per te. Il nostro prezzo non è influenzato. Non scriveremmo questa guida se non usassimo Contabo noi stessi.
Passo 2 — Primo SSH e rinforzo
Nel tuo terminale locale:
ssh root@YOUR.PUBLIC.IP
# Accetta l'impronta digitale, incolla la password di root
Una volta connesso, aggiorna prima:
apt update && apt upgrade -y
apt install -y curl wget unzip fail2ban
Crea un utente non-root (SSH root sarà disabilitato):
adduser eric
# Segui le istruzioni (password forte, nome completo opzionale)
usermod -aG sudo eric
Copia la tua chiave pubblica SSH dal tuo MacBook locale (in un altro terminale):
ssh-copy-id eric@YOUR.PUBLIC.IP
# Se ssh-copy-id manca: cat ~/.ssh/id_ed25519.pub | ssh root@IP "mkdir -p /home/eric/.ssh && cat >> /home/eric/.ssh/authorized_keys && chown -R eric:eric /home/eric/.ssh && chmod 700 /home/eric/.ssh && chmod 600 /home/eric/.ssh/authorized_keys"
Testa il login non-root in un nuovo terminale senza chiudere il primo:
ssh eric@YOUR.PUBLIC.IP
# Dovrebbe accedere solo con la passphrase della chiave SSH
Se funziona, disabilita l'SSH root e l'autenticazione con password in /etc/ssh/sshd_config (dalla shell root):
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
Ora la porta 22 rimane aperta ma solo con chiave SSH e solo per eric. Nessun rischio di brute-force su root.
Passo 3 — Firewall UFW
# Ancora come root
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp comment 'SSH'
ufw allow 51820/udp comment 'WireGuard'
ufw enable
# Rispondi y
ufw status verbose
UFW è ora attivo. Esci dalla sessione root e continua come eric con sudo.
Passo 4 — Installa WireGuard
# Come eric con sudo
sudo apt install -y wireguard qrencode iptables-persistent
Genera le chiavi del server:
sudo bash -c 'umask 077 && wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub'
sudo cat /etc/wireguard/server.pub
# Nota la chiave pubblica, ti servirà per i client
Identifica l'interfaccia pubblica (potrebbe essere eth0, ens3, ens18, ecc.):
ip route | awk '/default/ {print $5}'
# Su Contabo solitamente eth0 o ens18
Passo 5 — Configura /etc/wireguard/wg0.conf
Modifica (adatta eth0 se diverso sopra):
sudo nano /etc/wireguard/wg0.conf
Incolla questo (sostituisci SERVER_PRIVATE_KEY con il contenuto di /etc/wireguard/server.key):
[Interface]
PrivateKey = SERVER_PRIVATE_KEY
Address = 10.66.66.1/24
ListenPort = 51820
MTU = 1420
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Abilita ip_forward:
sudo bash -c 'echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf'
sudo sysctl -p
# Verifica: sysctl net.ipv4.ip_forward (dovrebbe dire 1)
Avvia WireGuard:
sudo systemctl enable --now wg-quick@wg0
sudo wg show
# Dovrebbe mostrare l'interfaccia wg0, chiave pubblica, porta di ascolto
Passo 6 — Crea il primo peer (client)
Sul server, genera una chiave client:
sudo mkdir -p /etc/wireguard/clients
sudo bash -c 'umask 077 && wg genkey | tee /etc/wireguard/clients/mac.key | wg pubkey > /etc/wireguard/clients/mac.pub'
sudo cat /etc/wireguard/clients/mac.pub
# Nota questa chiave pubblica
Aggiungi il peer al server wg0.conf:
sudo bash -c 'cat >> /etc/wireguard/wg0.conf <<EOF
[Peer]
# MacBook
PublicKey = CLIENT_MAC_PUBKEY
AllowedIPs = 10.66.66.2/32
EOF'
Ricarica la configurazione senza spegnere:
sudo wg syncconf wg0 <(wg-quick strip wg0)
Genera il file client (trasferisci in modo sicuro su MacBook/iPhone):
sudo bash -c 'cat > /etc/wireguard/clients/mac.conf <<EOF
[Interface]
PrivateKey = $(cat /etc/wireguard/clients/mac.key)
Address = 10.66.66.2/24
DNS = 9.9.9.9, 149.112.112.112
MTU = 1420
[Peer]
PublicKey = $(cat /etc/wireguard/server.pub)
Endpoint = YOUR.PUBLIC.IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF'
Per iPhone / Android, codifica come QR:
sudo qrencode -t ansiutf8 < /etc/wireguard/clients/mac.conf
Scansiona questo QR dall'app WireGuard (App Store, Play Store) e il tunnel è configurato.
Per macOS / Linux desktop, scarica il .conf localmente:
# Sul tuo Mac
scp eric@YOUR.PUBLIC.IP:/etc/wireguard/clients/mac.conf ~/Downloads/
# Importa dall'app ufficiale WireGuard
Passo 7 — Test di perdite
Abilita il tunnel sul tuo client, poi in un browser:
- ipleak.net: il tuo IP pubblico deve essere il VPS Contabo di Norimberga. Geo = Germania. Se vedi ancora l'IP del tuo ISP francese → il tunnel non sta instradando, controlla
AllowedIPsdel client. - dnsleaktest.com → pulsante "Extended test": il DNS restituito deve essere Quad9 (9.9.9.9) o il tuo VPS. Se vedi DNS Orange/SFR/Free → perdita DNS, controlla
DNS = 9.9.9.9nel.confdel client. - browserleaks.com/webrtc: nessun IP locale deve trapelare tramite WebRTC. Se trapela → disabilita WebRTC nel browser (uBlock Origin → "Prevent WebRTC from leaking").
curl ifconfig.medal terminale del client: deve restituire l'IP del VPS.
Tutto verde: la tua VPN self-host funziona. Benvenuto.
Passo 8 — Backup e manutenzione
Il tunnel è attivo. Buone abitudini:
- Backup di
/etc/wireguard/settimanale:rsync -avz eric@VPS:/etc/wireguard/ ~/backup-wg/$(date +%F)/ - Aggiornamenti mensili:
sudo apt update && sudo apt upgrade -y && sudo reboot(~30s di inattività, o usaunattended-upgrades) - Monitoraggio: vedi la guida al monitoraggio con Prometheus + Grafana
- Kill switch lato client: vedi la guida al kill switch su Linux (iptables + systemd)
- Template per casi specifici: vedi i 8 template WireGuard pronti all'uso
Costo totale su 5 anni
Per confrontare onestamente con un servizio VPN commerciale:
| Opzione | Costo 24 mesi | Costo 5 anni (estrapolato) | Larghezza di banda |
|---|---|---|---|
| Contabo VPS S Cloud (self-host) | 119 € | ~298 € | 200 Mbps, 32 TB/mese |
| NordVPN 2 anni + rinnovo annuale | 72 € | ~600 € | "Illimitato" condiviso |
| ExpressVPN 1 anno + rinnovo | 100 € | ~750 € | "Illimitato" condiviso |
E sul VPS Contabo puoi anche ospitare: un DNS Pi-hole, Nextcloud, Vaultwarden, un bot Discord, un'istanza personale di Mastodon. La VPN stessa utilizza ~1% di CPU e RAM in uso personale normale.
Verdetto
WireGuard su Contabo VPS S a 4,99 €/mese rimane la nostra scelta #1 per una VPN self-host. Configurazione in ~20 minuti, un collegamento pubblicizzato a 200 Mbit/s, bassa latenza dall'Europa occidentale, giurisdizione GDPR tedesca. Il vero svantaggio: supporto solo via email, non ideale durante un'interruzione urgente.
Per iniziare: Contabo VPS S Cloud tramite il nostro link /go/contabo-vps-2y. Puoi annullare entro i primi 30 giorni se la configurazione non si adatta, secondo i termini di Contabo.
La nostra recensione completa di Contabo VPS dettaglia punti di forza e debolezze in 5 categorie (prestazioni, prezzo, RAM/CPU, supporto, dashboard) con la suddivisione del punteggio.
★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · 200+ Mbps garantiti
Self-host your VPN on your own VPS → ContaboFull root access · public IPv4 · pick your region→