---
title: "Trojan"
description: "I trasporti, le opzioni TLS, i link e le funzioni di Trojan supportati da Potatso."
---

> Documentation Index
> Fetch the complete documentation index at: https://potatso.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Trojan

Un server Trojan è descritto da una **password** e dalle sue **impostazioni TLS**, e facoltativamente da un **trasporto** che porta la connessione, come WebSocket o gRPC. Trojan funziona sempre dentro TLS (o REALITY), quindi per chi osserva la connessione somiglia a una normale visita HTTPS. Potatso si connette a un server quando supporta il trasporto e le impostazioni TLS del server. Usa le tabelle qui sotto per controllare le impostazioni del tuo server, come le indica il tuo provider o come compaiono nel suo link `trojan://`.

Puoi aggiungere un server Trojan a mano, con un [link `trojan://`](#links), oppure importando:

- una sottoscrizione Clash o Mihomo,
- una configurazione Xray o V2Ray,
- una configurazione Surge.

Potatso non importa ancora server Trojan da una configurazione sing-box. Usa invece il link `trojan://` del server.

## Trasporti {#transports}

| Trasporto | `type` del link | Supportato | Testato con |
| --- | --- | --- | --- |
| Solo TLS (nessun trasporto) | `tcp`, o nessuno | ✅ | Xray, sing-box, trojan-go |
| WebSocket | `ws` | ✅ Con o senza early data | Xray, sing-box, trojan-go |
| gRPC | `grpc` | ✅ | Xray, sing-box |
| HTTP/2 | `http` o `h2` | ✅ | sing-box |
| HTTP Upgrade | `httpupgrade` | ✅ | Xray, sing-box |
| XHTTP | `xhttp` | ❌ | |
| mKCP, QUIC | `kcp`, `quic` | ❌ | |

Ogni trasporto funziona con UDP. Potatso non importa un server il cui trasporto non supporta.

Xray non offre più HTTP/2: i server Xray che lo usavano ora usano XHTTP, che Potatso non supporta ancora.

## TLS {#tls}

| Impostazione | Chiave Clash | Parametro del link | Supportata |
| --- | --- | --- | --- |
| Nome del server (SNI) | `sni` | `sni`, `peer` | ✅ Senza di esso, Potatso usa l'indirizzo del server. |
| ALPN | `alpn` | `alpn` | ✅ Senza di esso, Potatso invia `h2, http/1.1`, oppure `http/1.1` per WebSocket e HTTP Upgrade, e `h2` per gRPC e HTTP/2. |
| Salta verifica certificato | `skip-cert-verify` | `allowInsecure`, `insecure` | ✅ |
| Pin del certificato (SHA-256) | `fingerprint` | | ✅ |
| Impronta del browser | `client-fingerprint` | `fp` | ✅ `chrome`, `firefox`, `safari`, `ios`, `android`, `edge` e `random`. Gli altri nomi si connettono con un handshake predefinito. |
| [REALITY](#reality) | `reality-opts` | `security=reality`, `pbk`, `sid` | ✅ Senza trasporto o con gRPC |
| Encrypted Client Hello (ECH) | `ech-opts` | `ech` | ✅ Con la configurazione ECH nel link o nella sottoscrizione |
| Certificato CA personalizzato | | | ❌ |
| Certificato client TLS | `certificate`, `private-key` | | ❌ |

Disattivare la verifica del certificato permette a chiunque si trovi tra te e il server di leggere il tuo traffico. Se il server usa un certificato autofirmato, fissa invece il certificato: imposta lo SHA-256 del suo certificato come pin del certificato.

Un'impronta del browser fa sì che l'handshake TLS della connessione somigli a quello di quel browser. Non cambia ciò che il server deve supportare.

### REALITY {#reality}

Un server REALITY prende in prestito il certificato TLS di un altro sito web, quindi non ne ha bisogno di uno proprio. Imposta la **chiave pubblica** e lo **short ID** del server come te li dà il tuo provider, e il nome del server sul sito web da cui il server prende il certificato in prestito. REALITY richiede un'impronta del browser: quando il tuo link o le tue impostazioni non ne hanno una, Potatso usa `chrome`.

REALITY funziona senza trasporto e con gRPC. Potatso non importa un server REALITY che usa un altro trasporto.

## Multiplexing {#mux}

Potatso può far passare più connessioni su una sola connessione Trojan con il multiplexing di sing-box (`smux`, `yamux` o `h2mux`), impostato con `smux` in una sottoscrizione Clash. Il server deve avere il multiplexing attivo. Funzionano sia TCP sia UDP.

Il multiplexing proprio di trojan-go (`mux` in un server trojan-go) è un protocollo diverso, e Potatso non lo supporta. Un server trojan-go accetta comunque le connessioni di Potatso senza di esso.

## UDP {#udp}

Trojan trasporta UDP sulla stessa connessione TLS di TCP. UDP è disattivato per impostazione predefinita, come in Clash. Attiva Relay UDP nelle impostazioni del server se il tuo server inoltra UDP: Xray, sing-box e trojan-go lo fanno tutti. Una sottoscrizione Clash lo attiva con `udp: true`.

## Funzioni supportate {#features}

| Funzione | Supportata |
| --- | --- |
| [Protocollo Trojan](https://trojan-gfw.github.io/trojan/protocol): hash della password, `CONNECT` | ✅ |
| Trojan `UDP ASSOCIATE` | ✅ |
| Trojan senza TLS (`security=none`) | ❌ |
| Più utenti su un server | ✅ Ciascuno con la propria password |
| Trasporti WebSocket, gRPC, HTTP/2 e HTTP Upgrade | ✅ Vedi [Trasporti](#transports) |
| Trasporti XHTTP, mKCP e QUIC | ❌ |
| [REALITY](#reality) | ✅ Senza trasporto o con gRPC |
| ECH | ✅ |
| Multiplexing di sing-box (smux, yamux, h2mux) | ✅ |
| Multiplexing di trojan-go | ❌ |
| Cifratura Shadowsocks di trojan-go (`ss-opts`, `encryption=ss;…`) | ❌ |
| ShadowTLS, Restls o JLS attorno a Trojan | ❌ |
| Link `trojan://` e `trojan-go://` | ✅ |

Ogni funzione supportata è testata con almeno un server Trojan reale: [Xray](https://xtls.github.io/), [sing-box](https://sing-box.sagernet.org/) o [trojan-go](https://p4gefau1t.github.io/trojan-go/).

Quando una password è sbagliata, un server Trojan risponde invece come un normale sito web (il suo fallback). Potatso allora non riesce a connettersi, e non mostra un errore di password: controlla prima la password quando un server Trojan non si connette mai.

Potatso non importa un server che usa la cifratura Shadowsocks di trojan-go, né ShadowTLS, Restls o JLS attorno a Trojan, perché si connetterebbe senza di essi e il server non risponderebbe.

Alcune funzioni di trojan-go sono impostazioni del suo programma client, e Potatso svolge lo stesso compito a modo suo:

- Instradamento: usa le regole del tuo profilo.
- Server SOCKS5 e HTTP locali, e inoltro: Potatso cattura da sé il traffico del tuo dispositivo.

## Link `trojan://` {#links}

Un link `trojan://` contiene un intero server in una riga:

```text
trojan://password@host:port?parameters#name
```

| Parte | Descrizione |
| --- | --- |
| `password` | La password, con percent-encoding. Tutto ciò che precede la `@` è la password, compresi eventuali `:`. |
| `host` | Indirizzo del server. Metti un indirizzo IPv6 tra parentesi quadre, come `[2001:db8::1]`. |
| `port` | Porta del server. Se manca, Potatso usa 443. |
| `name` | Facoltativo. Il nome del server in Potatso. |

I parametri seguono il formato usato da Xray e v2rayN:

| Parametro | Descrizione |
| --- | --- |
| `security` | `tls` (il valore predefinito) o `reality`. |
| `type` | Il [trasporto](#transports): `tcp`, `ws`, `grpc`, `http` (HTTP/2) o `httpupgrade`. |
| `sni`, `peer` | Il nome del server TLS. |
| `alpn` | L'elenco ALPN, separato da virgole e con percent-encoding. |
| `fp` | L'impronta del browser. |
| `allowInsecure` | `1` disattiva la verifica del certificato. |
| `host` | L'`Host` HTTP per WebSocket, HTTP/2 e HTTP Upgrade. |
| `path` | Il percorso per WebSocket, HTTP/2 e HTTP Upgrade. Un percorso WebSocket come `/ws?ed=2048` attiva l'early data. |
| `serviceName` | Il nome del servizio gRPC. |
| `pbk`, `sid` | La chiave pubblica e lo short ID di REALITY. |
| `ech` | La configurazione ECH, codificata in Base64 e con percent-encoding. |

Potatso importa anche i link `trojan-go://`, con `type=original` (nessun trasporto) o `type=ws`. Non ne importa uno con un parametro `encryption`, che richiede la cifratura Shadowsocks di trojan-go.

Quando Potatso condivide un server Trojan, offre un link `trojan://` con gli stessi parametri.

### Esempi {#link-examples}

Ogni esempio mostra il link da importare. La password è `secret`.

Un server semplice:

```text
trojan://secret@trojan.example.com:443?sni=trojan.example.com#Basic
```

WebSocket tramite `cdn.example.com`:

```text
trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocket
```

gRPC con il nome del servizio `TrojanGun`:

```text
trojan://secret@trojan.example.com:443?security=tls&type=grpc&serviceName=TrojanGun#gRPC
```

HTTP/2:

```text
trojan://secret@trojan.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2
```

HTTP Upgrade:

```text
trojan://secret@trojan.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#Upgrade
```

REALITY, con `www.example.com` preso in prestito:

```text
trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY
```

Source: https://potatso.com/docs/it/protocols/trojan/index.mdx
