Drill is a simple, no-bullshit HTTP tunnel that just works. It only needs a single port and expects to run behind a reverse proxy such as nginx.
- Tiny binaries
- Concurrent and multi-threaded
- Supports multiplexing
- Websocket support
Currently, we do not provide prebuilts. You will have to compile it from source yourself.
The most simple server configuration would look like this:
$ drill-server --auth anonymous --subdomain-strategy random --websocket-host mydomain.com --domain mydomain.com --description "Welcome to my Drill instance!" -p 7777
This would run a public instance which hands out random subdomains (in the form of asdf.mydomain.com) with the control websocket running at mydomain.com.
The server supports several different authentication backends (via --auth):
aorequires clients to authorize using a token they receive in a tell in Anarchy Online (this is probably not wanted by anyone except us)privaterequires--token-fileto be set and verifies tokens against the list of tokens in the fileanonymousaccepts any tokens and is the least securedynamicrequires--auth-backendand will send a HTTP GET request with the query parameterstokenanddesired_subdomainto the URL specified. The backend can grant access with a 2xx response and the subdomain for the client as plaintext in the body or reject it with any other status code
The server supports three subdomain strategies:
ao-charactercan be used with theaoauthentication backendclient-choiceallows clients to choose the subdomain they wantrandommeans the server will randomize the subdomains granted
Obviously, dynamic auth ignores this setting.
$ drill-client -p 8080 -s subdomain -d mydomain.com
This will connect to the Drill instance at mydomain.com, attempt to claim subdomain.mydomain.com if possible and tunnel traffic to port 8080 locally. If the server uses token authentication (aka isn't using anonymous auth), a token can be pased with -t/--token.