# Trojan

  • 名称:trojan
  • 类型:入站 / 出站

Trojan (opens new window) 协议设计指南

TIP

Trojan 被设计工作在正确配置的加密 TLS 隧道中

Trojan 的配置分为两部分,InboundConfigurationObjectOutboundConfigurationObject,分别对应入站和出站协议配置中的 settings 项。

# InboundConfigurationObject

{
    "clients":[
        {
            "password": "password",
            "email": "[email protected]",
            "level": 0,
        }
    ],
    "fallbacks": [
        {
            "dest": 80
        }
    ]
}

clients: [ ClientObject ]

一个数组,其中每一项是一个 ClientObject

fallbacks: [ FallbackObject ]

一个数组,包含一系列强大的回落分流配置(可选)。

# ClientObject

{
    "password": "password",
    "email": "[email protected]",
    "level": 0,
}

password: string

必填,任意字符串。

email: string

邮件地址,可选,用于标识用户

level: number

用户等级,默认值为 0。详见 本地策略

# FallbackObject

{
    "alpn": "",
    "path": "",
    "dest": 80,
    "xver": 0
}

v4.31.0+,V2Ray 的 Trojan 有完整的 VLESS fallbacks 支持,配置方式完全一致,后续 VLESS fallbacks 升级时会同步跟进。

触发回落的条件也基本相同:首包长度 < 58 或第 57 个字节不为 '\r'(因为 Trojan 没有协议版本)或身份认证失败。

# OutboundConfigurationObject

{
    "servers": [
        {
            "address": "127.0.0.1",
            "port": 1234,
            "password": "password",
            "email": "[email protected]",
            "level": 0
        }
    ]
}

servers: [ ServerObject ]

一个数组,其中每一项是一个 ServerObject

# ServerObject

{
    "address": "127.0.0.1",
    "port": 1234,
    "password": "password",
    "email": "[email protected]",
    "level": 0
}

address: address

服务器地址,支持 IPv4、IPv6 和域名。必填。

port: number

服务器端口,必填。

password: string

必填,任意字符串。

email: string

邮件地址,可选,用于标识用户

level: number

用户等级