Skip to content

# Trojan

Torjan is the most commonly used TLS proxy made in China. It can be used in various combinations, but only the combination of uTLS and multiplexing is recommended.

Protocol and implementation combination | Specification | Resists passive detection | Resists active probes
--- | --- | --- | ---
Origin / trojan-gfw | trojan-gfw.github.io |  |
Basic Go implementation | / |  |
with privates transport by V2Ray | No formal definition |  |
with uTLS enabled | No formal definition |  |

##
Password Generator

Generate Password | Action
--- | ---
```` |

##
Server Example

With local certificate
With ACME
With ACME and Cloudflare API

    {
      "inbounds": [
        {
          "type": "trojan",
          "listen": "::",
          "listen_port": 8080,
          "users": [
            {
              "name": "example",
              "password": "password"
            }
          ],
          "tls": {
            "enabled": true,
            "server_name": "example.org",
            "key_path": "/path/to/key.pem",
            "certificate_path": "/path/to/certificate.pem"
          },
          "multiplex": {
            "enabled": true
          }
        }
      ]
    }

    {
      "inbounds": [
        {
          "type": "trojan",
          "listen": "::",
          "listen_port": 8080,
          "users": [
            {
              "name": "example",
              "password": "password"
            }
          ],
          "tls": {
            "enabled": true,
            "server_name": "example.org",
            "acme": {
              "domain": "example.org",
              "email": "admin@example.org"
            }
          },
          "multiplex": {
            "enabled": true
          }
        }
      ]
    }

    {
      "inbounds": [
        {
          "type": "trojan",
          "listen": "::",
          "listen_port": 8080,
          "users": [
            {
              "name": "example",
              "password": "password"
            }
          ],
          "tls": {
            "enabled": true,
            "server_name": "example.org",
            "acme": {
              "domain": "example.org",
              "email": "admin@example.org",
              "dns01_challenge": {
                "provider": "cloudflare",
                "api_token": "my_token"
              }
            }
          },
          "multiplex": {
            "enabled": true
          }
        }
      ]
    }

##
Client Example

With valid certificate
With self-sign certificate
Ignore certificate verification

    {
      "outbounds": [
        {
          "type": "trojan",
          "server": "127.0.0.1",
          "server_port": 8080,
          "password": "password",
          "tls": {
            "enabled": true,
            "server_name": "example.org",
            "utls": {
              "enabled": true,
              "fingerprint": "firefox"
            }
          },
          "multiplex": {
            "enabled": true
          }
        }
      ]
    }

Tip

Use `sing-box merge` command to merge configuration and certificate into one file.

    {
      "outbounds": [
        {
          "type": "trojan",
          "server": "127.0.0.1",
          "server_port": 8080,
          "password": "password",
          "tls": {
            "enabled": true,
            "server_name": "example.org",
            "certificate_path": "/path/to/certificate.pem",
            "utls": {
              "enabled": true,
              "fingerprint": "firefox"
            }
          },
          "multiplex": {
            "enabled": true
          }
        }
      ]
    }

    {
      "outbounds": [
        {
          "type": "trojan",
          "server": "127.0.0.1",
          "server_port": 8080,
          "password": "password",
          "tls": {
            "enabled": true,
            "server_name": "example.org",
            "insecure": true,
            "utls": {
              "enabled": true,
              "fingerprint": "firefox"
            }
          },
          "multiplex": {
            "enabled": true
          }
        }
      ]
    }