I2P is one of the many darknets floating around (running over?) the internet and I’ve been playing around with it since, like, high school. It’s peer-to-peer, censorship resistant, and overall just super cool. And by peer-to-peer I mean that you can share files over the network (using torrents) while both remaining anonymous and not being a nuisance to other users (unlike Tor).
Also unlike Tor it doesn’t have its own “browser bundle”.
I mean, it did at one point. But then it got discontinued.
Before the browser bundle I had to rely on a manually configured secondary browser, which I am now back to doing. It’s not a majorly inconvenient process, but wow was that browser bundle very convenient.
I’ve been a die hard user of Firefox (and browsers based on/related to Firefox, like Camino or pre-Chromium Flock) since the early/mid 2000s and I have no plans to ever switch over to Chrome or its ilk. Even though the browser wars are over, I will forever continue the struggle as part of the dissident Firefox-users campaign. Sure, I have to rely on Google for plenty of other things (like my phone, calendar, contacts, cloud storage, captcha protection for this site, and so on), but they’ll never get my browser! Or email! Or web searches (mostly)!
You can have my Gecko layout engine when you uninstall it from my cold, bricked, SSD.
So obviously, I’d use something Firefox-ish for my manually configured secondary browser. And the Firefox-ish browser I’m using here is SeaMonkey; the direct descendant of the original Mozilla Application Suite which Firefox, as well as Thunderbird (which I still use as a desktop mail/RSS client), were spun off of from.
In addition to a browser, SeaMonkey includes an email (and newsgroup) client, an IRC client, an HTML editor, and an email address book.
So, why SeaMonkey? And not, like… a separate Firefox profile or container tab or something.
Well, for all their similarities (both being darknet-proxy-software things and all), I2P and Tor are different. They fill different niches, I guess. While they both have hidden services and out-proxies to the clearweb, Tor’s focus is definitely on the latter, while I2P seems to focus more on the former. And I2P’s hidden services aren’t all websites (I’m not saying all of Tor’s are though); I2P also has email, and IRC, and torrents too!
And also I’m already comfortable doing things this way. Leave me alone.
Installing I2P and SeaMonkey
The first thing I did here was actually getting the software. I did a manual download/installation rather than relying on my machine’s package manager, because I didn’t want to have to build possibly outdated versions from the AUR that may overwrite whatever changes I made after an update. Links to download both SeaMonkey and I2P are below.
Download SeaMonkey → https://www.seamonkey-project.org/releases/
Download I2P → https://geti2p.net/en/download
Configuring the browser
Like I said before, I2P hidden services aren’t all websites, but that is a large part of them, so configuring SeaMonkey’s browser was going to be necessary.
Configuring the browser is pretty straightforward. The process for SeaMonkey is more-or-less the same as the process for Firefox, the only difference being the location of where the changes needed to be made. In SeaMonkey, the Preferences are in the Edit menu, and the proxy settings will be in Proxies under the Advanced section.
And once that’s configured (and once I2P is running) the router homepage can be found here: http://127.0.0.1:7657
I will admit that it has been a bit painful when I have to run updates for SeaMonkey, as I’ve had to temporarily disable the proxy. Updates to I2P, however, are done entirely within I2P! Via torrents!
I love torrents.
Configuring the mail client
Thanks to the mysterious and venerable postman, getting an I2P email address is super easy. And it works like any other email address; messages can be sent to whoever! And that ain’t just limited to other folks with I2P email addresses. It works Clearnet-to-I2P (and vice versa) as well!
I don’t really make use of the email service, because I’d really only be sending encrypted emails talking about encryption (relevant xkcd), but it’s still a useful tool for folks that need it. And by default, I2P actually has a pre-configured browser-integrated mail client that works great.
But sometimes having a dedicated(-ish) mail client is good. It’s not something I need, but still, I can do it with SeaMonkey.
If you can set up a mail client for a normal email account then you can do the same for an I2P mail account. Only POP3 works though, so that’s what I had to use; no IMAP. Also, I didn’t have to select any encryption/connection security settings because all packets being sent through I2P are encrypted anyways.
127.0.0.1 as the host for both POP and SMTP over ports
7659 respectively (as mentioned in I2P’s list of used ports). By default, these ports are tunneled to/from the mail service that postman runs, but if I wanted to use another service I can change them in the I2P tunnel settings.
Configuring the IRC client
I was able to configure the IRC client, Chatzilla, pretty quickly as well. It was just the matter of adding a network named
irc2p, and then adding a server under that network, with the actual “server” being
127.0.0.1 and the port being
And again, no encryption/connection security settings were necessary here either because everything’s encrypted anyways.
I2P has some documentation on configuring other IRC clients that’s definitely worth a read.
Like the email service, the mentioned port (
6668) is also set to tunnel to/from the a service run by postman, but I can always change this if I want (same way as the email stuff).
Configuring a desktop shortcut
Since I did a manual install of both SeaMonkey and I2P, I had to do some manual work to actually set up a shortcut. I installed both pieces of software in the same directory (
i2p-browser) and then wrote a bash script to, first, start the I2P router (in headless mode) and, then, start SeaMonkey. After SeaMonkey exits, I then stop the router.
#!/bin/bash /path/to/my/i2p-browser/i2p/i2prouter start && wait /path/to/my/i2p-browser/seamonkey/seamonkey && wait /path/to/my/i2p-browser/i2p/i2prouter stop
I then created a
.desktop file to point at this script, and stuck it where all of those custom
.desktop files go in GNOME (
~/.local/share/applications/). That way a shortcut will be in my applications menu, and I can start the whole thing with one click.
[Desktop Entry] Type=Application Name=i2p Browser Comment= Categories=Network;WebBrowser;Security; Exec=bash /path/to/my/i2p-browser/i2p_browser_start.sh Icon=/path/to/my/i2p-browser/i2p/docs/console.ico
Yeah, I use GNOME. Fight me.
By default, when I2P starts, it will open the router console in the default browser. Since I didn’t want this, and wanted to use SeaMonkey, I unchecked that settings in the router config.
A web browser, mail client, and IRC client. That pretty much covers everything that’s part of SeaMonkey. And once it’s all configured, it’s on to browsing the invisible internet.
But what about torrents? I’ve mentioned torrents a few times here. How am I going to start using those? Well I could try configuring my normal torrent client, Deluge, to proxy traffic through I2P using a SAM Bridge and…
I2P actually includes, by default, a browser-accessible torrent client called I2PSnark! And, because of how I2P works, it’s totally anonymous! Since, like, everything is encrypted. And also I2P is a darknet.
I2P has plenty of other cool features that I really need to explore, like anonymous
git hosting. Maybe after I play around with (finally) setting up my own hidden service on I2P (they’re called eepsites) like I did with Tor I can finally do that.