Skip to content

Tunnel proxy to wrap OpenVPN TCP traffic in to websocket or regular TCP traffic as a means to bypass OpenVPN blocks.

License

Notifications You must be signed in to change notification settings

Windscribe/wstunnel

Repository files navigation

Windscribe Tunnel Proxy for client apps.

This program forwards OpenVPN tcp traffic to WSTunnel or Stunnel server.

Build

  1. To build android library Run build_android.sh. (Require android sdk + ndk)
  2. To build ios framework Run build_ios.sh (Requires xcode build tools)
  3. To build binaries for desktop Run build_desktop.sh

Download from jitpack (Android only)

Use Library

Import Library/Framework & Start proxy.

    initialise(BuildConfig.DEV, logFile)
    registerTunnelCallback(callback)
    if (isWSTunnel) {
    val remote = "wss://$ip:$port/$PROXY_TUNNEL_PROTOCOL/$PROXY_TUNNEL_ADDRESS/$WS_TUNNEL_PORT"
    startProxy(":$PROXY_TUNNEL_PORT", remote, 1, mtu)
    } else {
    val remote = "https://$ip:$port"
    startProxy(":$PROXY_TUNNEL_PORT", remote, 2, mtu)
    }

Start binary

-d, --dev                    Turns on verbose logging.
-h, --help                   help for root
-l, --listenAddress string   Local port for proxy > :65479 (default ":65479")
-f, --logFilePath string     Path to log file > file.log
-m, --mtu int                1500 (default 1500)
-r, --remoteAddress string   Wstunnel > wss://$ip:$port/tcp/127.0.0.1/$WS_TUNNEL_PORT  Stunnel > https://$ip:$port
-t, --tunnelType int         WStunnel > 1 , Stunnel > 2 (default 1)
$ cli -l :65479 -r wss://$ip:$port/tcp/127.0.0.1/$WS_TUNNEL_PORT -t 1 -m 1500 -f file.log -d true
$ cli -l :65479 -r https://$ip:$port -t 2 -m 1500 -f file.log -d true

Dependencies

  1. Gorrila web socket for wstunnel Link
  2. Cobra for cli Link
  3. Zap for logging Link