Neutrino is a modular proxy. It is inspired by ideas like Proxy Chaining, Shadowsocks, HTTP Injection and Pluggable Transports. Neutrino modules can be arranged to serve different purposes. Neutrino can be configured to work in networks that block proxy protocols by injecting a fake protocol header and encrypting the proxy communication.
A Neutrino configuration has two parts a Input
chain and a Output
chain.
Neutrino acts as a server and routes the incoming connection through the Input
chain, after the request is resolved a request is made through the Output
chain.
The Output
chain might simply be a single node that opens a socket and routes the traffic to the internet.
Or it may be a node that routes it to a SOCKS5 proxy. You can use the header_injection
node in the Output
chain to inject a header to the communication stream, this can make a firewall think this is a HTTP connection
rather than a proxy connection.
Please note that doing this breaks compatibility with the regular SOCKS5 protocol.
You need another Neutrino instance running in a trusted server that has a header_injection
in its Input
chain
to strip away the fake header before the SOCKS5 handler node.
Neutrino can inject a fake HTTP header before the SOCKS5 proxy communication starts.
This can make it possible to use proxy in a network that disallows proxy communication by hiding the protocol.
This breaks the compatibility with the SOCKS5 protocol standard but Neutrino can also act as a server
and strip away the fake HTTP header in it's input chain.
Here is a diagram of how this works:
Note: TLS Support is a WIP.
Most Tor exit nodes are flagged by site protection systems. Most sites might require you to fill captcha or even make it impossible to use a site. So it might be desirable to hide the fact that you are using Tor. This is a simple configuration that allows that.
You can have multiple socks5
nodes in your input chain to route your traffic through multiple proxy servers.
Note: Proxy chaining is not very safe. Since the SOCKS5 protocol doesn't have any encryption the first proxy server in your chain can read your traffic.