In questo articolo abbiamo visto come configurare uno Shadowsocks server e come instradare il nostro traffico internet attraverso di esso.
In determinate circostanze, può essere necessario incapsulare il traffico di OpenVPN dentro Shadowsocks. In questa guida vediamo come raggiungere questo obiettivo.
Il necessario
Quello di cui abbiamo bisogno è:
- Server OpenVPN
- VPS con Shadowsocks
- Macchina con client Shadowsocks
- Client OpenVPN
Per descrivere un caso tipico potremmo dire che il server OpenVPN si trova in azienda, la VPS con Shadowsocks si trova su un nostro cloud provider, la macchina con client Shadowsocks e client OpenVPN si trova nella nostra LAN di casa.
Modificare il file di configurazione OpenVPN
Diamo per scontato che sia la VPN che il server Shadowsocks sono correttamente configurati e funzionanti. Come prima cosa aggiungiamo queste righe al nostro file di configurazione client.ovpn
socks-proxy-retry
socks-proxy 192.168.1.155 1080
L’indirizzo IP 192.168.1.155 corrisponde alla macchina su cui gira il client Shadowsocks.
Cerchiamo di capire cosa fanno esattamente queste due direttive.
1. socks-proxy 192.168.1.155 1080
Questa riga dice a OpenVPN client:
“Non collegarti direttamente al server OpenVPN, ma passa prima attraverso un proxy SOCKS all’indirizzo 192.168.1.155:1080.”
In pratica:
client OpenVPN → SOCKS proxy (Shadowsocks client) → Internet → server OpenVPN
OpenVPN non “vede” più Internet direttamente, ma solo il proxy
2. socks-proxy-retry
Questa opzione dice:
“Se il proxy SOCKS non è subito disponibile, ritenta invece di fallire l’avvio della VPN.”
Questa opzione è particolarmente importante se il nostro client OpenVPN risiede sul router perché:
- al boot il proxy può partire dopo OpenVPN
- evita che la VPN resti giù finché non riavvii manualmente