Post № 05 — Filed under I2P

I2P - getting started

The Invisible Internet Project (I2P) is a closed network that provides a more secure and private alternative to the regular internet.

Introduction

Let's dedicate one post to covering the basics of using the Invisible Internet Project (I2P). This is a self-contained network designed to optimize privacy and security. You might be familiar with Tor already, and there are some similarities, but the primary difference is that I2P was not designed to proxy the "clearnet" - the rest of the internet.

I2P is an overlay network, or a network layer that runs on top of the clearnet. It is designed to let users use content within the network, and not intended for use as a proxy to clearnet resources.

The router console

Each node on this network acts as a router and the software is called the same since it describes the function. On I2P every node routes traffic, hence the moniker. There are several choices for router software. It does not matter so much which one you choose; they all adhere to the protocol.

The original router was written in java, and called i2p. It's successor is called i2p+ and should be used instead of the older one. It has built-in applications for common things. There is a torrenting program called ipsnark, an email front end for Bote, an addressbook front end called Susimail, and more. It has a full featured dashboard and links to lots of applications, so it's a good choice to use to get started.

A popular choice is i2pd, a router written in C++. This is the software I prefer, and it is a cleaner, more efficient version. It uses less memory, starts up faster and is just better in most ways - partly because C++ is just better than Java :p

browser setup

Unlike Tor, the project does not put out a dedicated browser to use. There are a couple of 3rd party efforts I'm aware of, but typically users will configure an installed browser for this purpose. Best practice is to create a new browser profile in Firefox or Librewolf.

firefox profiles
Fig. 01 Firefox profiles chooser

Chromium browser accepts proxy settings from the command line, like so:
/bin/chromium --proxy-server="http://127.0.0.1:4444"

proxy settings

The change you must make to get an ordinary browser to use I2P is to set the proxy settings. The HTTP proxy should be set to localhost or 127.0.0.1, and 4444 for the port.

firefox proxy settings
Fig. 02 Firefox proxy settings

running programs over I2P

Some programs let you set the proxy to use and you can do so to use them in I2P. Go to preferences or settings and enter 127.0.0.1 as host and port 4444. Others will require setting this at the command line. You can set an environment variable:

export http_proxy=127.0.0.1:4444
/usr/bin/deluge
mpv via http proxy
Fig. 03 running mpv program using http proxy

or if your command knows how to use proxies, like curl:

shelllinux
curl --proxy http://127.0.0.1:4444 reg.i2p/api/status/zzz.i2p
{
   "hostname": "notbob.i2p",
   "base64": "gOSToOvSkRewCcwl5mWXbnn1IElEBlGH92vAe0TI8C-Z4tC1DVMNdNlcnUTRcB7znjFTP0vQ42dIDs1dN2Co1kSJ~nXaef4QUS-Ou5kDogPLwJxI1Hj0djktSLKWJSL40FdQvWZ1rwQ7dnaRSyOm8lrgo~HbVlh682CM1JHmEGapQaYiF6zaP4uOpeTFlkk6wEYevQ3Pn4pctJD4XElVLrS2slEsbzim3O5FzFrIVYyskEbnpyMpyffwvsq0R~RF6bhDhQ15rAmJuju91WZ8iUlORQKipougCwBP9DxQ5zdXQWxxhSJ~h604dKhxncetl0skdErLHjwhSI2gl4o66juP9wsjaczBZo4RSil2uWMWApMgvan~9FSRtxriI5f6-X2fTopWa9KlUwMCBTiqYAy9bIdVVhS-xSdFhM~IGPEZ-rlIscdb3Z5Gh1osoO-~SglUcOpj7E-8XjjvsmLkUu9VBxscdD4p3aiyaHGSljkd3WPvlfaOBmqejqEgEWwqBQAEAAEAAA==",
   "base32": "nytzrhrjjfsutowojvxi7hphesskpqqr65wpistz6wa7cpajhp7a.b32.i2p",
   "last_seen": 1786500458
}
				

foxyproxy browser extension

To avoid switching between normal internet and I2P, a handy utility is a browser extension called FoxyProxy.

foxyproxy browser extension
Fig. 04 foxyproxy browser extension in firefox

Go into options and set the same settings you would normally put into Firefox proxy panel; see description above.

foxyproxy settings
Fig. 05 foxyproxy settings

configure your browser

One reason to make a separate browser profile for I2P is so you can customize security and other settings specifically for I2P use. I wrote a post about browser security settings earlier - please read it and harden your browser. Priority number one is no Javascript!

chnaging search settings

One of the main things you might want to change is the search engine settings. Instead of using DuckDuckGo or StartPage or your usual search engine, you can use eepsite search engines. I like to use search.i2p or schizoid.i2p but your mileage may vary.

I2P browser

There is a browser customized for I2P, it's called i2pd browser. This modified Firefox browser customizes settings, search, certificates, bookmarks, etc. The links on its homepage are generally Russian eepsites.

i2p browser
Fig. 06 i2p browser

The i2p+ router actually runs on android devices; it might be the only solution widely available for these.

i2p+ router running on android device
Fig. 06 i2p router running on android device