VPNSmith
self-host-vpnINFO

Configurazione passo passo di Contabo VPS VPN (Ubuntu 22.04) — Guida 2026

Tutorial completo: ordina Contabo VPS S, rinforza SSH + UFW, installa WireGuard, genera peer, verifica eventuali perdite. 20 minuti, script inclusi.

Di Eric Gerard · Fondateur · VPNSmith — Spécialiste self-host VPN & VPS GDPR9 min letturaPhoto via Unsplash

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

File di server in un data center
File di server in un data center

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 &lt; /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:

  1. 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 AllowedIPs del client.
  2. 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.9 nel .conf del client.
  3. browserleaks.com/webrtc: nessun IP locale deve trapelare tramite WebRTC. Se trapela → disabilita WebRTC nel browser (uBlock Origin → "Prevent WebRTC from leaking").
  4. curl ifconfig.me dal 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:

Costo totale su 5 anni

Per confrontare onestamente con un servizio VPN commerciale:

OpzioneCosto 24 mesiCosto 5 anni (estrapolato)Larghezza di banda
Contabo VPS S Cloud (self-host)119 €~298 €200 Mbps, 32 TB/mese
NordVPN 2 anni + rinnovo annuale72 €~600 €"Illimitato" condiviso
ExpressVPN 1 anno + rinnovo100 €~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