Giter Site home page Giter Site logo

eyedeekay / basic-tunnel-tutorial Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 680 KB

A detailed walkthrough of tunnel configuration for an http server, run over i2p

Makefile 0.77% HTML 99.23%
http-tunnel i2p server-tunnel tunnel-wizard tunnel-tutorial

basic-tunnel-tutorial's Introduction

Basic i2p Tunnels Tutorial with Pictures

Although the Java i2p router comes pre-configured with a static web server, jetty, to provide the user's first eepSite, many require more sophisticated functionality from their web server and would rather create an eepSite with a different server. This is of course possible, and actually is really easy once you've done it one time.

Although it is easy to do, there are a few things you should consider before doing it. You will want to remove identifying characteristics from your web server, like potentially identifying headers and default error pages that report the server/distro type. More information about threats to anonymity posed by improperly configured applications see: Riseup here:, Whonix Here:, This blog article for some opsec fails:, and the i2p applications page here. Although much of this information is expressed for Tor Onion Services, the same procedures and principles apply to hosting applications over i2p.

Step One: Open the Tunnel Wizard

Go to the i2p web interface at 127.0.0.1:7657 and open the Hidden Services Manager(links to localhost). Click the button that says "Tunnel Wizard" to begin.

Step One: Open the Tunnel Wizard

Step Two: Select a Server Tunnel

The tunnel wizard is very simple. Since we're setting up an http server, all we need to do is select a server tunnel.

Step Two: Select a Server Tunnel

Step Three: Select an HTTP Tunnel

Now I may be wrong, but I'm pretty sure that the only difference between http server tunnels and regular server tunnels is that http server tunnels add in the X-I2P-DEST* header's using the repliable address of the client visiting the site. If you don't make use of X-I2P-DEST, you could just use a server tunnel. Nonetheless, select the HTTP tunnel for now.

Step Three: Select an HTTP Tunnel

Step Four: Give it a name and a description

For your own benefit and ability to remeber and distinguish the what you are using the tunnel for, give it a good nickname and description. If you need to come back and do more management later, then this is how you will identify the tunnel in the hidden services manager.

Step Four: Give it a name and a description

Step Five: Configure the Host and Port

In this step, you point the web server at the TCP port where your web server is listening. Since most web servers listen on port 80 or port 8080, the example shows that. If you use alternate ports or virtual machines or containers to isolate your web services, you may need to adjust the host, port, or both.

Step Five: Configure the Host and Port

Step Six: Decide whether to start it automatically

I cannot think of a way to elaborate on this step.

Step Six: Decide whether to start it automatically

Step Seven: Review your settings

Finally, take a look at the settings you have selected. If you approve, save them. If you did not choose to start the tunnel automatically, go to the hidden services manager and start it manually when you wish to make your service available.

Step Six: Review your settings

Appendix: HTTP Server Customization Options

i2p provides a detailed panel for configuring the http server tunnel in custom ways. I'll finish this tutorial by walking through all of them. Eventually.

Options page Options page Options page Options page

basic-tunnel-tutorial's People

Contributors

eyedeekay avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.