Setup Trojan-Go server

Setup Trojan-Go server

berikut adalah langkah-langkah untuk membuat server trojan vpn anda sendiri. Semoga bermanfaat.

Buat Docker-Compose configuration file

mkdir -p ~/trojan-go/
nano ~/trojan-go/docker-compose.yml
version: '3.5'
services:
  trojan-server:
    container_name: trojan-server
    image: p4gefau1t/trojan-go
    volumes:
      - type: bind
        source: ./config/trojan/config.json
        target: /etc/trojan/config.json
      - type: bind
        source: ./config/trojan/cert.pem
        target: /etc/trojan/cert.pem
      - type: bind
        source: ./config/trojan/private.key
        target: /etc/trojan/private.key
    ports:
      - 443:443
    command: ["trojan-go", "-config", "/etc/trojan/config.json"]
    restart: unless-stopped
  trojan-nginx:
    container_name: trojan-nginx
    image: nginx:alpine
    volumes:
      - type: bind
        source: ./config/nginx/nginx.conf
        target: /etc/nginx/conf.d/default.conf
    restart: unless-stopped

Tekan CTRL+X, Y, ENTER untuk save and exit nano text editor.

Buat NGINX configuration file.

mkdir -p ~/trojan-go/config/nginx/
nano ~/trojan-go/config/nginx/nginx.conf
server {
    listen      80 default_server;
    server_name _;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

server {
    listen 8080	http2;
    server_name	_;
    return	400;
}

Buat Trojan-Go configuration file.

mkdir -p ~/trojan-go/config/trojan/
nano ~/trojan-go/config/trojan/config.json
{
  "run_type": "server",
  "local_addr": "0.0.0.0",
  "local_port": 443,
  "remote_addr": "trojan-nginx",
  "remote_port": 80,
  "log_level": 2,
  "log_file": "",
  "password": [
    "your_password_here"
  ],
  "disable_http_check": false,
  "udp_timeout": 60,
  "ssl": {
    "verify": true,
    "verify_hostname": false,
    "cert": "/etc/trojan/cert.pem",
    "key": "/etc/trojan/private.key",
    "key_password": "",
    "cipher": "",
    "curves": "",
    "prefer_server_cipher": false,
    "sni": "your-domain.com",
    "alpn": [
      "h2"
    ],
    "session_ticket": true,
    "reuse_session": true,
    "plain_http_response": "",
    "fallback_addr": "",
    "fallback_port": 0,
    "fingerprint": "firefox"
  },
  "tcp": {
    "no_delay": true,
    "keep_alive": true,
    "prefer_ipv4": true
  },
  "mux": {
    "enabled": true,
    "concurrency": 64,
    "idle_timeout": 60
  },
  "router": {
    "enabled": false,
    "bypass": [],
    "proxy": [],
    "block": [],
    "default_policy": "proxy",
    "domain_strategy": "as_is",
    "geoip": "$PROGRAM_DIR$/geoip.dat",
    "geosite": "$PROGRAM_DIR$/geosite.dat"
  },
  "websocket": {
    "enabled": true,
    "path": "/websocket",
    "host": "your-domain.com"
  },
  "shadowsocks": {
    "enabled": false,
    "method": "AES-128-GCM",
    "password": ""
  },
  "transport_plugin": {
    "enabled": false,
    "type": "",
    "command": "",
    "plugin_option": "",
    "arg": [],
    "env": []
  },
  "forward_proxy": {
    "enabled": false,
    "proxy_addr": "",
    "proxy_port": 0,
    "username": "",
    "password": ""
  },
  "mysql": {
    "enabled": false,
    "server_addr": "localhost",
    "server_port": 3306,
    "database": "",
    "username": "",
    "password": "",
    "check_rate": 60
  },
  "api": {
    "enabled": false,
    "api_addr": "",
    "api_port": 0,
    "ssl": {
      "enabled": false,
      "key": "",
      "cert": "",
      "verify_client": false,
      "client_cert": []
    }
  }
}

Beberapa hal yang perlu kalian edit sebagai berikut:

Password

"password": [
  "your_password_here"
],

SNI

"sni": "your-domain.com",

Websocket path dan host-name

"websocket": {
    "enabled": true,
    "path": "/websocket",
    "host": "your-domain.com"
  },

Obtain keys from Cloudflare

Masuk ke Cloudflare. Buka menu SSL/TLS pada halaman domain kalian.

Pilih Full.

Pergi ke sub menu Origin Server.

Biarkan Authenticated Origin Pulls tetap Off, klik tombol Create Certificate .

Biarkan saja semua. Klik Create

nano ~/trojan-go/config/trojan/cert.pem

Copy isi dari Origin Certificate ke file cert.pem.

nano ~/trojan-go/config/trojan/private.key

Copy isi dari Private key ke file private.key.

Point the domain-name to your server

Buka menu DNS .

Klik + Add record tambahkan 2 record berikut.

  • Type A, name @, content SERVER-IP-ADDRESS
  • Type CNAME, name www, content YOUR-DOMAIN-NAME

Keduanya harus di set ke Proxied agar semua orang hanya melihat IP dari Cloudflare CDN.

Start Trojan-Go

cd ~/trojan-go/
docker-compose up -d