nothing to see here, move along

I2P - getting started

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.

router software

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 profile

Chromium browser accepts proxy settings from the command line, like so:

/bin/chromium --proxy-server="http://127.0.0.1:4444"

HTTP 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

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. On linux and MacOS, you can set an environment variable,

export http_proxy=127.0.0.1:4444
/usr/bin/deluge

mpv

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

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

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

foxyproxy extension

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

foxyproxy options

configure browser for I2P

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!

changing 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 but your mileage may vary.

I2P browsers?

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

i2pd browser

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

i2p+ running on android

epilogue

Give I2P a try, and read my other blog posts about it:

browser hardening

streaming music on I2P