Cookie Engineer's Website

Tholianยฎ Warps

Tholian Warps Teaser

Overview

Tholianยฎ Warps is a proactive and adaptive Mesh Network Router.

It tries to automatically detect and bypass censorship and throttling measurements at all cost. Programmable routing, traffic compression, traffic scattering, dynamic encryption rotation and other features are part of this experimental research project.

The goal of this project is to find out how feasible common NAT breaking and firewall bypassing techniques are and whether they can be used to build a reliable mesh network that's based on a peer-to-peer architecture.

Network Architecture

Network Architecture
  • A Warps tunnel tunnels network traffic through a peer or gateway to access the internet.
  • A Warps tunnel uses the initial configured network protocol.
  • A Warps peer tunnels network traffic through other peer or gateway instances.
  • A Warps peer rotates the used network protocols.
  • All Warps peer or gateway instances use optimizers to reduce web asset file sizes.
  • All Warps peer or gateway instances use DNS over TLS to resolve relayed DNS queries.
  • All Warps instances use a local ProxyCache and ResolverCache .
  • All Warps instances can rotate encryption keys and can scatter network traffic on-demand.

Building

cd /path/to/tholian-network/warps;

# build binary
bash build.sh;

# install binary
chmod +x ./build/tholian-warps;
sudo cp ./build/tholian-warps /usr/bin/tholian-warps;

# show help
tholian-warps;
						

Usage: Tunnels and Gateways

The easiest way to use Warps is with running a Warps gateway on your own VPS that is connected to the internet, and a locally running Warps tunnel .

As a defaulted network protocol, it is best to use dns , as that usually works to bypass typical firewall setups. Alternative supported network protocols are documented further down in this document.

# on your VPS server (1.3.3.7)
tholian-warps gateway "dns://0.0.0.0:1053";

# on your local machine
tholian-warps tunnel "any" "dns://1.3.3.7:1053";
curl -x localhost:1080 http://google.com;
						

Usage: Proxy Chains

Warps can be chained via multiple proxies, without a limit on how many network hops you want to the public internet. In this example, we are routing local web traffic through 3 instances before the traffic hits the clearnet.

# on your first VPS server (1.3.3.7)
tholian-warps gateway "dns://0.0.0.0:1337";

# on your second VPS server (1.3.3.8)
tholian-warps forward "http://1.3.3.8:1338" "dns://1.3.3.7:1337";

# on your third VPS server (1.3.3.9)
tholian-warps forward "dns://1.3.3.9:1339" "http://1.3.3.8:1338";

# on your local machine
# local -> dns -> 1.3.3.9 -> http -> 1.3.3.8 -> dns -> 1.3.3.7 -> * -> internet
tholian-warps tunnel "any" "dns://1.3.3.9:1339";
curl -x localhost:1080 http://google.com;