encodeous / horizon

Horizon is a high performance port tunneling program and tcp proxy powered by WebSockets.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Horizon - High performance TCP Proxy and Port Tunneling over WebSockets.

Banner

About Horizon

Build status | Quick Download

Horizon is a gateway that allows a client to map a remote tcp resource to a local port through a proxy server.

Functionality

Horizon is useful if either end of the connection is restricted to HTTP/S connections (like behind a firewall).

For example, if you want to access a SSH server through a Firewall , Horizon can Obfuscate the SSH data through WebSockets and on the server, Horizon will mirror the data sent by the client and connect to the SSH server as if the client was directly connecting to it.

Main Features

  • Access a resource through a firewall
  • Blazingly fast! (Tested to handle ~5Gbit/s with iperf)
  • Built in Authentication (With an intuitive configuration wizard)
  • Simple to use Command Line Interface
  • Supports both Windows and Linux
  • Portable, no dependencies
  • Could tunnel through CDNs like CloudFlare (Not Officially Supported)

Getting Started

Horizon has a simple cli, the commands are as follows:

  -a, --about       About horizon

  -s, --server      [Server] Start horizon as a server

  -q, --authfile    [Server] Specify a custom path to an auth file

  -p, --port        [Server] Specify a port to listen to

  -c, --client      [Client] Start horizon as a client and connect to the specified horizon server --client <uri>

  -m, --portmap     [Client] Maps local ports to remote addresses. <port>:<remote_server>:<port> Example:
                    22:ssh.example.com:22

  -u, --user        [Client] Authentication username

  -t, --token       [Client] Authentication token (secret)

  -b, --buffer      [Client/Server] I/O buffer size

  -g, --config      [Util] Generate an auth file through a wizard

  --help            Display this help screen.

  --version         Display version information.

Here is an example of hosting a Horizon server on port 1234:

horizon-cli -s -p 1234

Here is another example of connecting to the server above and mirroring port 1235 (Client) to localhost:1236 (on the server) with Horizon.

horizon-cli -c ws://10.10.10.3:1234 -m 1235:localhost:1236

Connections can be made through the client on port 1234, and Horizon will tunnel the data and automagically mirror it on the Server side on port 1236.

About

Horizon is a high performance port tunneling program and tcp proxy powered by WebSockets.


Languages

Language:C# 100.0%