teddysun/trojan

By teddysun

Updated over 5 years ago

Trojan Docker Image by Teddysun

Image
80

1M+

teddysun/trojan repository overview

Trojan Docker Image by Teddysun

Trojan is An unidentifiable mechanism that helps you bypass GFW.

Trojan features multiple protocols over TLS to avoid both active/passive detections and ISP QoS limitations.

Docker images are built for quick deployment in various computing cloud providers.

For more information on docker and containerization technologies, refer to official document.

Reference
  • Supported architectures (more info): amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x

Prepare the host

If you need to install docker by yourself, follow the official installation guide.

Pull the image

$ docker pull teddysun/trojan

This pulls the latest release of Trojan.

It can be found at Docker Hub.

Start a container

You must create a configuration file /etc/trojan/config.json in host at first:

$ mkdir -p /etc/trojan

A sample in JSON like below:

$ cat > /etc/trojan/config.json <<EOF
{
    "run_type": "server",
    "local_addr": "0.0.0.0",
    "local_port": 443,
    "remote_addr": "127.0.0.1",
    "remote_port": 80,
    "password": [
        "password1",
        "password2"
    ],
    "log_level": 1,
    "ssl": {
        "cert": "/path/to/certificate.crt",
        "key": "/path/to/private.key",
        "key_password": "",
        "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384",
        "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
        "prefer_server_cipher": true,
        "alpn": [
            "http/1.1"
        ],
        "reuse_session": true,
        "session_ticket": false,
        "session_timeout": 600,
        "plain_http_response": "",
        "curves": "",
        "dhparam": ""
    },
    "tcp": {
        "prefer_ipv4": false,
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": false,
        "fast_open": false,
        "fast_open_qlen": 20
    },
    "mysql": {
        "enabled": false,
        "server_addr": "127.0.0.1",
        "server_port": 3306,
        "database": "trojan",
        "username": "trojan",
        "password": ""
    }
}
EOF

An online documentation can be found here

There is an example to start a container that listen on port 443, run as a Trojan server like below:

$ docker run -d -p 443:443 --name trojan --restart=always -v /etc/trojan:/etc/trojan teddysun/trojan

Warning: The port number 443 must be same as configuration and opened in firewall.

Tag summary

Content type

Image

Digest

Size

4.3 MB

Last updated

over 5 years ago

docker pull teddysun/trojan:1.16.0