Skip to content
/ ashttp Public

HTTP tunnel implementation using Twisted for passing through restrictive firewalls.

License

Notifications You must be signed in to change notification settings

reith/ashttp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

It's an HTTP Tunnel, not Proxy or something else.. You need at least one Proxy,
Tunnel, Gateway to talk with server:

              +--------------------------------+
              |   +--------+      +--------+   |
  Client      |   | tunnel |      | tunnel |   |      Gateway
  Proxy    <------+        +------+        +------->  Tunnel
  Tunnel      |   | client |      | server |   |      Proxy
              |   +--------+      +--------+   |
   (A)        +--------------------------------+       (B)

If (A) supports talking with CONNECT and (B) is capable of serving it, this can
be used to pass TCP streams (e.g SSL, SSH) although traffic passed between
tunnel endpoints are not CONNECT packets. Actually you can change shape of data
(adding encryption, authentication or fake headers reformatting) in
alterResponse() and alteredRequest(). If the firewall which you're trying to
bypass, has some limitations on TCP connections, you might want to change
connection pool options too, otherwise probably it is better to turn it off
utterly.


Install
-------
`python setup.py install`


Usage
-----
See `ashttpc --help` or `ashttps --help` and provide proper arguments according
to your network setup.

Assuming on your server machine, you have some proxy server on port 3128, run
here:

`ashttps <server_port> -P 127.0.0.1:3128 -t -l t.log`

This will start server program listening on port <server_port> using twistd
daemonizer (switch -t) and passes `-l t.log` to it.

Then, on client machine run:

`ashttpc <client_port> <server_ip>:<server_port> -t`

Will launch client software listening on <client_port> and makes tunnel to
server. Softwares could use this tunnel now by using HTTP proxy
127.0.0.1:<client_port>

About

HTTP tunnel implementation using Twisted for passing through restrictive firewalls.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages