Configuring a custom fteproxy tunnel

fteproxy is a client-server proxy. That is, fteproxy requires two separate instances (a client and a server) to operate. For testing purposes the client and server may be on the same machine.

This page outlines how to configure fteproxy to establish your own fteproxy tunnel.


The goal: fteproxy will enable you to access the Internet from the client's machine, as if your were on the server.


See our downloads page to acquire fteproxy for your system.

Then, you can verify that fteproxy is correctly installed and in your PATH.
$ fteproxy --mode test



There are six variables for configuring a fteproxy client-server tunnel:

In a typical configuration, one can leave the client and proxy variables as default. Then, change the server ip and server port, such that then run on an open port of a publicly-facing interface.

On the client: start the fteproxy client

$ fteproxy --client_ip $CLIENT_IP --client_port $CLIENT_PORT --server_ip $SERVER_IP --server_port $SERVER_PORT

On the server: start the fteproxy server

$ fteproxy --server_ip $SERVER_IP --server_port $SERVER_PORT --proxy_ip $PROXY_IP --proxy_port $PROXY_PORT

On the server: start your proxy

A command to start a SOCKS server. As one example:
 $ ssh -D 8081 [my username]@localhost

However, any TCP proxy can be used as an endpoint.


On the client

First, select a destination website:
$ curl example.com
and ensure that it can be curl'd.

Then, connect through your fteproxy connection:
$ curl --socks $CLIENT_IP:$CLIENT_PORT example.com
and ensure that you are able to connect to the remote website.