Questa guida spiega come utilizzare Caddy, un server web potente e facile da usare, per migliorare la configurazione del tuo server Outline. Le funzionalità di HTTPS automatico e la configurazione flessibile di Caddy lo rendono una scelta eccellente per gestire il tuo server Outline, specialmente quando utilizzi un trasporto WebSocket.
Cos'è Caddy?
Caddy è un server web open source noto per la sua facilità d'uso, l'HTTPS automatico e il supporto di vari protocolli. Semplifica la configurazione del server web e offre funzionalità come:
- HTTPS automatico: Caddy ottiene e rinnova automaticamente i certificati TLS, garantendo connessioni sicure.
- Supporto di HTTP/3: Caddy supporta l'ultimo protocollo HTTP/3 per un traffico web più veloce ed efficiente.
- Estensibile con plug-in: Caddy può essere esteso con plug-in per supportare varie funzionalità, tra cui reverse proxy e bilanciamento del carico.
Passaggio 1: prerequisiti
- Scarica e installa
xcaddy
.
Passaggio 2: configura il tuo dominio
Prima di avviare Caddy, assicurati che il tuo nome di dominio sia configurato correttamente per puntare all'indirizzo IP del tuo server.
- Imposta i record A/AAAA: accedi al tuo provider DNS e imposta i record A e AAAA per il tuo dominio in modo che puntino rispettivamente agli indirizzi IPv4 e IPv6 del tuo server.
Verifica i record DNS: verifica che i tuoi record DNS siano impostati correttamente con una ricerca autorevole:
curl "https://cloudflare-dns.com/dns-query?name=DOMAIN_NAME&type=A" \ -H "accept: application/dns-json"
Passaggio 3: crea ed esegui una build Caddy personalizzata
Utilizzando xcaddy
, puoi creare un file binario caddy
personalizzato che include il modulo server core Outline e altri moduli di estensione server di cui avrai bisogno.
xcaddy build \
# The example uses a YAML config, so include a YAML config adapter module.
--with github.com/iamd3vil/caddy_yaml_adapter \
# The Outline core server module.
--with github.com/Jigsaw-Code/outline-ss-server/outlinecaddy
Passaggio 4: configura ed esegui il server Caddy con Outline
Crea un nuovo file config.yaml
con la seguente configurazione:
apps:
http:
servers:
server1:
listen:
- ":443"
routes:
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/TCP_PATH"
handle:
- handler: websocket2layer4
type: stream
connection_handler: ss1
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/UDP_PATH"
handle:
- handler: websocket2layer4
type: packet
connection_handler: ss1
outline:
shadowsocks:
replay_history: 10000
connection_handlers:
- name: ss1
handle:
handler: shadowsocks
keys:
- id: user-1
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
Questa configurazione rappresenta una strategia Shadowsocks-over-WebSockets con un server web in ascolto sulla porta 443
, che accetta traffico aggregato Shadowsocks TCP e UDP rispettivamente nei percorsi TCP_PATH e UDP_PATH.
Esegui il server Caddy esteso con Outline utilizzando la configurazione creata:
caddy run --config config.yaml --adapter yaml --watch
Puoi trovare altre configurazioni di esempio nel nostro repository GitHub outline-ss-server/outlinecaddy.
Passaggio 5: crea una chiave di accesso dinamica
Genera un file YAML della chiave di accesso client per i tuoi utenti utilizzando il formato della configurazione avanzata e includi gli endpoint WebSocket precedentemente configurati sul lato server:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/TCP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/UDP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
Dopo aver generato il file YAML della chiave di accesso dinamica, devi inviarlo ai tuoi utenti. Puoi ospitare il file su un servizio di web hosting statico o generarlo dinamicamente. Scopri di più su come utilizzare le chiavi di accesso dinamiche.
Passaggio 6: connettiti al client Outline
Utilizza una delle applicazioni client Outline ufficiali del client Outline (1.15.0 e versioni successive) e aggiungi la tua chiave di accesso dinamica appena creata come voce server. Fai clic su Connetti per avviare il tunneling al tuo server utilizzando la configurazione Shadowsocks-over-Websocket.
Utilizza uno strumento come IPInfo per verificare che ora stai navigando su internet tramite il tuo server Outline.