thoughtt ...thinking aloud

VMessy Gostly Trojanic Chiselling Town

In this post, I am gonna introduce some easy to setup anti-disconnection techniques. This post continues my last post on how to prevent disconnection on my planet. This list is not by any means complete, but I try to keep it updated. Almost all guides here are taken from the internet and I just put them in one place, so kudos to the people who did this.


TL;DR

Method Server Server Params Client
V2Ray UUID Sample JSON
Gost Nothing Client Command
Chisel Heroku Deploy USER:PASSWORDS Client Command
Trojan Installer Script Nothing Refer to installer script’s repo
Cloak Installer Script Nothing Refer to installer script’s repo

V2Ray on Heroku

Server

One-click Deploy on Heroku using v2Hero. The only parameter you need to specify is UUID. You can use this site to generate UUIDs.

Clients

Client configuration can be tricky cause most GUI-based clients have some limitation to fully configure the client. The best way is to edit a configuration is by text editor. Here is a valid sample JSON file for v2Hero-based servers:

{
  "routing" : {
    "name" : "all_to_main",
    "domainStrategy" : "AsIs",
    "rules" : [
      {
        "type" : "field",
        "outboundTag" : "SOME_TAG",
        "port" : "0-65535"
      }
    ]
  },
  "inbounds" : [
    {
      "listen" : "0.0.0.0",
      "protocol" : "socks",
      "settings" : {
        "ip" : "127.0.0.1",
        "auth" : "noauth",
        "udp" : true
      },
      "tag" : "socksinbound",
      "port" : 1081
    },
    {
      "listen" : "0.0.0.0",
      "protocol" : "http",
      "settings" : {
        "timeout" : 0
      },
      "tag" : "httpinbound",
      "port" : 8001
    }
  ],
  "dns" : {
    "servers" : [
      "1.1.1.1"
    ]
  },
  "outbounds" : [
    {
      "sendThrough" : "0.0.0.0",
      "mux" : {
        "enabled" : false,
        "concurrency" : 8
      },
      "protocol" : "vmess",
      "settings" : {
        "vnext" : [
          {
            "address" : "SERVER-URL-HERE",
            "users" : [
              {
                "id" : "UUID-HERE",
                "alterId" : 64,
                "security" : "auto",
                "level" : 1
              }
            ],
            "port" : 443
          }
        ]
      },
      "tag" : "V2HERO-HEROKU",
      "streamSettings": {
          "network": "ws",
          "security": "tls",
          "wsSettings": {
              "path": "/"
          }
      }
    }
  ]
}
  1. V2RayX - A Client for MacOS
  2. V2RayW - A Client for Windows
  3. ShadowRocket - An iOS Client
  4. V2RayNG - An Android Client

Learn More about v2Hero

  1. v2Hero Github Repository

Gost on Heroku

Gost is branded as a simple security tunnel written in Golang, but trust me, it is everything except for simple! It offers multiple transport layers, protocols, load-balancing, and a lot more.

Server

The easiest way to deploy Gost on Heroku is with the help of a project called gost-heroku. No configuration is needed, everything is taken care of, just deploy a Heroku app using the button below:

Clients

With Gost binary on any platform:

./gost -L=:1080 -F=quick+wss://SERVER_URL.herokuapp.com:443

Or with official Docker image:

 docker run -d -p 1080:1080 --restart=always ginuerzh/gost -L=:1080 -F="quick+wss://SERVER_URL.herokuapp.com:443"

Other Clients:

  1. ShadowRocket - An iOS Client
  2. ShadowSocksGost Plugin for Android

Learn More About Gost and gost-heroku

  1. Gost Github Page
  2. Official Documentation
  3. Gost-Heroku Github Page

Chisel

I described Chisel in my previous post, So I just copy-paste whatever I wrote there, in here:

Chisel creates a TCP tunnel over HTTP and It is magically fast! I think faster than anything I ever have seen before. With a click of the purple button on the bellow, you can deploy a Chisel server on Heroku. You only have to set credentials in form of user:password and the URL for your Heroku app.

Heroku Deploy

On the client it is as simple as running the following command:

chisel client --auth USER:PASSWORDS URL_OF_HEROKU_APP 0.0.0.0:1080:socks

After connecting to the server, you have a Socks5 proxy on your client-side, completely free!

Custom Dockerfile

Here is a custom Dockerfile I am using on multiple platforms. For some reason, the official ARM docker images didn’t work for me. For each platform, just change the CHISEL_BINARY_URL.gz with appropriate one (official builds are here.)

FROM alpine
RUN apk update && apk add --no-cache ca-certificates
RUN apk --no-cache add curl  
RUN curl -sSL CHISEL_BINARY_URL.gz | gzip -d - > /bin/chisel
RUN chmod +x /bin/chisel
ENTRYPOINT ["/bin/chisel"]

Learn More About Chisel

  1. Github Page
  2. Official Docker
  3. Setup Chisel on Heroku - Tutorial
  4. Deploy Chisel On Heroku
  5. Crowbar

Trojan

Trojan is the latest addition to our list, It is extremely fast and hard to detect. There is no magic “Deploy to Heroku” button just yet, but there are some easy to use scripts to set up a server in this repository. Here are one-line installers for server:

Docker-based Installer for CentOS 7:

curl -O https://raw.githubusercontent.com/atrandys/trojan/master/trojan_install.sh && chmod +x trojan_install.sh && ./trojan_install.sh

Normal Installer for all destros:

curl -O https://raw.githubusercontent.com/atrandys/trojan/master/trojan_install.sh && chmod +x trojan_install.sh && ./trojan_install.sh

Clients

  1. ShadowRocket - An iOS Client
  2. Igniter - An Under Development Android Client

Learn More About Trojan

  1. Trojan Github Page
  2. Useful Scripts

Cloak

Cloak is just another tool that obfuscates any traffic as a legitimate HTTPS traffic. It can be used to hide other protocols traffic, like ShadowSocks and even OpenVPN.

Clients

  1. ShadowRocket - An iOS Client
  2. Cloak-android - An Android Client

Learn More About Cloak

  1. Cloak Github Page
  2. Useful Scripts
  3. Cloak Wiki - Underlying proxy configuration guides

Image Credits

  1. Header Image taken from Freepik. Icon vector created by rawpixel.com - www.freepik.com