---
title: "Trojan"
description: "Potatso가 지원하는 Trojan 전송, TLS 옵션, 링크, 기능입니다."
---

> 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

Trojan 서버는 **암호**와 **TLS 설정**, 그리고 선택적으로 WebSocket이나 gRPC처럼 연결을 전달하는 **전송**으로 정의됩니다. Trojan은 항상 TLS(또는 REALITY) 안에서 실행되므로 지켜보는 쪽에서는 연결이 일반적인 HTTPS 방문처럼 보입니다. Potatso는 서버의 전송과 TLS 설정을 지원할 때 서버에 연결합니다. 제공업체가 알려 준 내용이나 `trojan://` 링크에 나온 서버 설정을 아래 표로 확인하세요.

Trojan 서버는 직접 추가하거나, [`trojan://` 링크](#links)로 추가하거나, 다음을 가져와서 추가할 수 있습니다.

- Clash 또는 Mihomo 구독,
- Xray 또는 V2Ray 구성,
- Surge 구성.

Potatso는 아직 sing-box 구성에서 Trojan 서버를 가져오지 않습니다. 대신 서버의 `trojan://` 링크를 사용하세요.

## 전송 {#transports}

| 전송 | 링크 `type` | 지원 | 테스트 환경 |
| --- | --- | --- | --- |
| TLS만(전송 없음) | `tcp` 또는 없음 | ✅ | Xray, sing-box, trojan-go |
| WebSocket | `ws` | ✅ 얼리 데이터 유무 무관 | Xray, sing-box, trojan-go |
| gRPC | `grpc` | ✅ | Xray, sing-box |
| HTTP/2 | `http` 또는 `h2` | ✅ | sing-box |
| HTTP Upgrade | `httpupgrade` | ✅ | Xray, sing-box |
| XHTTP | `xhttp` | ❌ | |
| mKCP, QUIC | `kcp`, `quic` | ❌ | |

모든 전송은 UDP와 함께 작동합니다. Potatso는 지원하지 않는 전송을 쓰는 서버를 가져오지 않습니다.

Xray는 더 이상 HTTP/2를 제공하지 않습니다. 이를 쓰던 Xray 서버는 이제 XHTTP를 쓰며, Potatso는 아직 이를 지원하지 않습니다.

## TLS {#tls}

| 설정 | Clash 키 | 링크 매개변수 | 지원 |
| --- | --- | --- | --- |
| 서버 이름(SNI) | `sni` | `sni`, `peer` | ✅ 없으면 Potatso는 서버 주소를 사용합니다. |
| ALPN | `alpn` | `alpn` | ✅ 없으면 Potatso는 `h2, http/1.1`을 보내고, WebSocket과 HTTP Upgrade에서는 `http/1.1`, gRPC와 HTTP/2에서는 `h2`를 보냅니다. |
| 인증서 확인 건너뛰기 | `skip-cert-verify` | `allowInsecure`, `insecure` | ✅ |
| 인증서 핀(SHA-256) | `fingerprint` | | ✅ |
| 브라우저 지문 | `client-fingerprint` | `fp` | ✅ `chrome`, `firefox`, `safari`, `ios`, `android`, `edge`, `random`. 다른 이름은 기본 핸드셰이크로 연결됩니다. |
| [REALITY](#reality) | `reality-opts` | `security=reality`, `pbk`, `sid` | ✅ 전송 없음 또는 gRPC에서 |
| Encrypted Client Hello(ECH) | `ech-opts` | `ech` | ✅ 링크나 구독에 있는 ECH 구성으로 |
| 사용자 지정 CA 인증서 | | | ❌ |
| TLS 클라이언트 인증서 | `certificate`, `private-key` | | ❌ |

인증서 확인을 끄면 나와 서버 사이에 있는 누구든 트래픽을 읽을 수 있습니다. 서버가 자체 서명 인증서를 쓴다면 대신 서버의 인증서를 핀으로 지정하세요. 인증서의 SHA-256을 인증서 핀으로 설정합니다.

브라우저 지문은 연결의 TLS 핸드셰이크가 해당 브라우저의 핸드셰이크처럼 보이게 합니다. 서버가 지원해야 하는 항목은 바뀌지 않습니다.

### REALITY {#reality}

REALITY 서버는 다른 웹사이트의 TLS 인증서를 빌려 쓰므로 자체 인증서가 필요 없습니다. 서버의 **공개 키**와 **짧은 ID**는 제공업체가 알려 준 대로, 서버 이름은 서버가 빌려 쓰는 웹사이트로 설정하세요. REALITY에는 브라우저 지문이 필요합니다. 링크나 설정에 없으면 Potatso는 `chrome`을 사용합니다.

REALITY는 전송 없음 및 gRPC에서 작동합니다. Potatso는 다른 전송을 쓰는 REALITY 서버를 가져오지 않습니다.

## 멀티플렉싱 {#mux}

Potatso는 sing-box의 멀티플렉싱(`smux`, `yamux`, `h2mux`)으로 하나의 Trojan 연결에서 여러 연결을 실행할 수 있으며, Clash 구독에서는 `smux`로 설정합니다. 서버에서 멀티플렉싱을 켜 두어야 합니다. TCP와 UDP 모두 작동합니다.

trojan-go 자체의 멀티플렉싱(trojan-go 서버의 `mux`)은 다른 프로토콜이며 Potatso는 지원하지 않습니다. trojan-go 서버는 멀티플렉싱 없이도 Potatso의 연결을 받아들입니다.

## UDP {#udp}

Trojan은 TCP와 같은 TLS 연결에서 UDP를 전달합니다. Clash처럼 UDP는 기본으로 꺼져 있습니다. 서버가 UDP를 중계한다면 서버 설정에서 UDP 릴레이를 켜세요. Xray, sing-box, trojan-go 모두 중계합니다. Clash 구독은 `udp: true`로 켭니다.

## 기능 지원 {#features}

| 기능 | 지원 |
| --- | --- |
| [Trojan 프로토콜](https://trojan-gfw.github.io/trojan/protocol): 암호 해시, `CONNECT` | ✅ |
| Trojan `UDP ASSOCIATE` | ✅ |
| TLS 없는 Trojan(`security=none`) | ❌ |
| 한 서버의 여러 사용자 | ✅ 각자 자신의 암호 사용 |
| WebSocket, gRPC, HTTP/2, HTTP Upgrade 전송 | ✅ [전송](#transports) 참고 |
| XHTTP, mKCP, QUIC 전송 | ❌ |
| [REALITY](#reality) | ✅ 전송 없음 또는 gRPC에서 |
| ECH | ✅ |
| sing-box 멀티플렉싱(smux, yamux, h2mux) | ✅ |
| trojan-go 멀티플렉싱 | ❌ |
| trojan-go Shadowsocks 암호화(`ss-opts`, `encryption=ss;…`) | ❌ |
| Trojan을 감싸는 ShadowTLS, Restls, JLS | ❌ |
| `trojan://` 및 `trojan-go://` 링크 | ✅ |

지원하는 모든 기능은 실제 Trojan 서버 중 하나 이상으로 테스트했습니다. [Xray](https://xtls.github.io/), [sing-box](https://sing-box.sagernet.org/) 또는 [trojan-go](https://p4gefau1t.github.io/trojan-go/)입니다.

암호가 틀리면 Trojan 서버는 대신 일반 웹사이트처럼 응답합니다(폴백). 그러면 Potatso는 연결할 수 없으며 암호 오류를 표시하지 않습니다. Trojan 서버에 전혀 연결되지 않을 때는 암호를 먼저 확인하세요.

Potatso는 trojan-go의 Shadowsocks 암호화나 Trojan을 감싸는 ShadowTLS, Restls, JLS를 쓰는 서버를 가져오지 않습니다. 이 기능 없이 연결하면 서버가 응답하지 않기 때문입니다.

trojan-go의 일부 기능은 자체 클라이언트 프로그램의 설정이며, Potatso는 같은 역할을 자체 방식으로 처리합니다.

- 라우팅: 프로필의 규칙을 사용하세요.
- 로컬 SOCKS5 및 HTTP 서버, 포워딩: Potatso가 기기의 트래픽을 직접 가져옵니다.

## `trojan://` 링크 {#links}

`trojan://` 링크는 서버 전체를 한 줄에 담습니다.

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

| 부분 | 설명 |
| --- | --- |
| `password` | 퍼센트 인코딩한 암호. `:`를 포함해 `@` 앞의 모든 내용이 암호입니다. |
| `host` | 서버 주소. IPv6 주소는 `[2001:db8::1]`처럼 대괄호로 묶습니다. |
| `port` | 서버 포트. 없으면 Potatso는 443을 사용합니다. |
| `name` | 선택 사항. Potatso에서 표시할 서버 이름. |

매개변수는 Xray와 v2rayN이 사용하는 형식을 따릅니다.

| 매개변수 | 설명 |
| --- | --- |
| `security` | `tls`(기본값) 또는 `reality`. |
| `type` | [전송](#transports): `tcp`, `ws`, `grpc`, `http`(HTTP/2), `httpupgrade`. |
| `sni`, `peer` | TLS 서버 이름. |
| `alpn` | 쉼표로 구분하고 퍼센트 인코딩한 ALPN 목록. |
| `fp` | 브라우저 지문. |
| `allowInsecure` | `1`이면 인증서 확인을 끕니다. |
| `host` | WebSocket, HTTP/2, HTTP Upgrade의 HTTP `Host`. |
| `path` | WebSocket, HTTP/2, HTTP Upgrade의 경로. `/ws?ed=2048` 같은 WebSocket 경로는 얼리 데이터를 켭니다. |
| `serviceName` | gRPC 서비스 이름. |
| `pbk`, `sid` | REALITY 공개 키와 짧은 ID. |
| `ech` | Base64로 인코딩한 뒤 퍼센트 인코딩한 ECH 구성. |

Potatso는 `type=original`(전송 없음) 또는 `type=ws`인 `trojan-go://` 링크도 가져옵니다. trojan-go의 Shadowsocks 암호화가 필요한 `encryption` 매개변수가 있는 링크는 가져오지 않습니다.

Potatso가 Trojan 서버를 공유할 때는 같은 매개변수를 담은 `trojan://` 링크를 제공합니다.

### 예시 {#link-examples}

각 예시는 가져올 링크를 보여 줍니다. 암호는 `secret`입니다.

기본 서버:

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

`cdn.example.com`을 거치는 WebSocket:

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

서비스 이름이 `TrojanGun`인 gRPC:

```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
```

`www.example.com`을 빌려 쓰는 REALITY:

```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/ko/protocols/trojan/index.mdx
