Cheapskate's Guide

Home Contact

An Introduction to the I2P Distributed, Peer-to-Peer Network

10-31-19



I recently decided to foray onto the Invisible Internet Project (I2P) network and write about what I found there. The I2P network is a distributed, peer-to-peer network that allows users to interact with others via chat rooms, forums, and email. Users can also take advantage of various other I2P services: gaming, file sharing, search, and RSS aggregators. According to one survey, the I2P network has more than 140,000 users, with an average of about 25,000 actively connected at any given time.

The functioning of the I2P network can be obscure to new users. All traffic over the I2P network is encrypted for users' privacy. Unlike TOR, I2P does not obscure users' IP addresses from peers (other I2P users' computers). Similar to TOR, traffic passes through multiple computers before being sent to the user, but these are peers, not dedicated onion routers. Although certain applications like I2P-Bote can store users' data, the I2P network itself does not store any data on peers. It only routes data through peers.

Anyone can create their own website on the I2P network for free without paying any domain name registration fees. But, since peers don't store I2P users' data, anyone who wants to run a website on the I2P network must run their I2P server (AKA an I2P "node") 24 hours a day, 7 days a week--at least, if they want it to be continuously accessible. I have used the commonly understood term, "website", here, even though these sites are not on the World Wide Web, nor anywhere on the regular Internet, also known as the "clearnet". On the I2P network, websites are known as "eepsites", so I'll switch to using that term from here on.



I2P System Requirements

The software that is used to connect to the I2P network will run on just about any old computer. It only requires 128KB of RAM by default and can run on very slow CPU's, even on Raspberry Pi's. It will run on Windows, Mac, and Linux computers. The I2P software adjusts itself to the amount of bandwidth available on a user's Internet connection, and users can specify that it use the percentage of their bandwidth that they desire (in 10% increments). I'm currently running with a 3Mb/s (3 megabits per second) down and 0.5Mb/s up Internet connection, and I have plenty of overhead to spare. However, sites do load more slowly on the I2P network than they do on the clearnet. The I2P network purportedly runs at around 30KB/s. In this respect, the I2P network is silimar to the IPFS network.



I2P Software Installation

I have found the I2P software to be more difficult to set up and get running correctly than ZeroNet or IPFS software. I've also noticed that the vast majority of websites that explain how to set up the I2P software leave out a lot. I will try to provide enough details in this article to give you a reasonable chance of successfully getting your computer connected to the I2P network. In setting up the I2P software, it helps if you are familiar with some of the basic concepts and terminology of computer networking. If you aren't, there's always Google (or better, Duckduckgo) and Wikipedia. If you feel you need to have your confidence boosted a little first, try installing and running ZeroNet. Then, attempt to set up the I2P software later.

Once the I2P software has been successfully installed and an I2P network connection has been established, users should be abble to access I2P eepsites with just about any Internet browser. Those who would rather not have I2P peers seeing their IP addresses should use the TOR browser. The steps below may be helpful in setting up the I2P software and establishing a connection to the network using Linux Ubuntu or one of it's derivatives. Although the steps did not work for me with the TOR browser, they did work with the Firefox browser. The TOR browser not working may have had something to do with it not allowing me to deactivate SOCKS. One thing I've noticed with browser settings and layouts is that browser versions change so fast that what works now may not work with the newest browser version six months from now. My understanding is that the newest version of the TOR browser that was released last week (which I am not using, yet) will only allow adjustment of proxy settings (Step 5, below) from the about:config page.



1. Download the I2P installer from here. On a computer running Linux Mint, the installer can be downloaded via the Linux command line by typing:

   sudo apt-add-repository ppa:i2p-maintainers/i2p
   sudo apt-get update
   sudo apt-get install i2p
   

2. Start the I2P router by typing this at the Linux command line:

   i2prouter start
   

This brings up the "New Install Wizard" in your default browser. Let the New Install Wizard guide you through the installation process. At the end of the installation process, you will arrive at the "I2P ROUTER CONSOLE" (below), which has this URL: http://127.0.0.1:7657/home. Although you have now completed the I2P software "installation" process, you are not yet to the point where you can begin using the I2P network.



I2P Router Console



3. If you prefer to use the TOR browser for increased privacy, instead of your default browser, then at the end of the I2P software installation, click on the "Configure Bandwidth" icon, or type http://127.0.0.1:7657/config on the browser's URL line. Then click on the "Service" tab at the top of the page. Then, click the "Do not view console on startup" button at the bottom of the page that comes up. This prevents your default Internet browser from starting automatically after you start the i2prouter.

4.Now go to the TOR browser network proxy settings pannel (at settings/preferences/Network Proxy/Settings/) or the equivalent for any Internet browser that you decide to use with I2P.

5.Check the "Manual proxy configuration" box. Enter these settings: HTTP Proxy: 127.0.0.1, Port: 4444. Enter these settings: SSL Proxy: 127.0.0.1, Port: 4445. Type "localhost, 127.0.0.1" (without the quotes) into the "No Proxy for" box. TOR will automatically choose this setting: SOCKS Host: 127.0.0.1 Port: 9150. Click the "OK" button. (Some say to go to the about:config page and disable SOCKS by removing any text from the network.proxy.socks line and setting network.proxy.socks_port to "0". When I tried this, the TOR browser just reset those parameters to their original values when I rebooted the TOR browser.) If you have chosen to use a browser other than the TOR browser, save the above network settings in that browser.

6. Now you are ready to access I2P eepsites with the TOR browser. If it's not already running, start the I2P router first by typing at the Linux command prompt:

   i2prouter start
   

Then, start the TOR browser and type http://127.0.0.1:7657 onto the URL line to get to the "I2P ROUTER CONSOLE" page. After a minute or two, when you see "Network: OK" and nonzero numbers under "BANDWIDTH IN.OUT" on the left side of the page, you have successfully connected to the I2P network.

In the middle of the I2P Router Console page you will see the "HIDDEN SERVICES OF INTEREST" section. These are external I2P eepsites that you should now be able to connect to. It may take a few minutes for them to become reachable, so be patient. In fact, some users have told me that they run their I2P software 24 hours a day to maximize their access to I2P eepsites. Note that while the i2prouter is running you should not be able to use your browser to access the regular Internet. This is intentional to preserve your anonymity.

At the bottom of the page, you will see the "APPLICATIONS AND CONFIGURATION" section. Even if you are not able to access external I2P epsites, you should have access to the local information pointed to by these icons. Clicking on the "Router Console" icon will give you more information about what is pointed to by the icons on this page.

If you're having problems connecting to the I2P network, click on "TUNNELS" (or "LOCAL TUNNELS" in Firefox) on the left side of the I2P Router Console to see which local ports are active and their status. The port numbers should agree with Step 5 in the I2P installation procedure above. This will help you to set your Internet browser's network settings correctly.

7. By default, I2P uses UPnP to open ports through your home router (your home router, not the i2prouter software). However, your home router should have UPnP disabled to prevent malware from doing the same. So, we want to disable the i2prouter's use of UPnP and forward the I2P port on your router. To do this, go to the network configuration page (http://127.0.0.1:7657/confignet). De-select "Enable UPnP to open firewall ports". Then, look at the I2P port number in the "Specify Port" box farther down the page. This is the I2P port you should have your home router forward to. Unfortunately, since every home router is different, I can't tell you how to forward a port on your particular home router. All I can say is that you must forward the I2P port number from the Internet side of your home router to the same port number on the computer you are running I2P on. Type "ifconfig" at the Linux command prompt to get your computer's IP address that is being assigned to it by your home router. Now, on your home router's configuration console, forward the I2P port number to your computer's assigned IP address. Also open this port on any firewall you may have running on your computer. This IP address could change every time you start up your computer if your router assigns IP addresses using DHCP. If it does, you can assign your computer a static IP address from the Linux "Networking Settings" console and forward your I2P port to that static IP address.

8. Click on the shield symbol on the right side (or the onion symbol on left side) of the menu bar at the top pf the TOR browser window. If it says "Security Level Standard" and "All Tor Browser and website features are enabled", you are connected securely to the I2P network through the TOR network, so I2P peers cannot see your true IP address.

9. If you are on a metered or low-bandwidth Internet connection, you can modify the volume of traffic that passes through you computer by clicking on the "Configure Bandwith" icon on the I2P Router Console and modifying your settings accordingly.


I2P Documentation

The I2P documentation that you can access directly through the I2P Router Console is actually quite good, which is unusual for documentation written by computer geeks. If your connection to the I2P network is not working, help can be obtained by clicking on the "Help" icon on the I2P Router Console or by going to the clearnet here. If your I2P connection is working, you can get more information by clicking on the "I2P FAQ" or "I2P Forum" icons on the I2P Router Console. Also try:





You can also find more I2P setup instructions at the Tin Hat and Secrets of the Dark.



How to Use the I2P Network

All eepsites on the I2P network have addresses that are long strings of characters. For example, the MayVaneDay blog is located on the I2P network at this address: zli2qsg54w7y42vgw4xxlnj4nktcpg7xp33yjxkp33sjafvznbwa.b32.i2p . This 32-character b32 address (some are longer than 32 characters) is what you would type onto your browser's URL line to get to the MayVaneDay eepsite. Most of the time, you will prefer to get to an eepsite by typing in a much shorter human-readable "URL", instead of this long string of characters. In order to do that, an association must first be established between the shorter URL and the I2P b32 (or longer) address.

Your I2P address book contains associations of human-readable "URL's" with b32 addresses. The clearnet uses a DNS service to translate the human-readable address that you type onto your browser's URL line into an IP address. Your I2P software accomplishes this with your address book. It uses your address book to translate the human-readable "URL" that you type into your browser into a b32 address that the I2P network uses instead of an IP address. If the eepsite you wish to visit is not in your address book, your I2P software will not know how to connect to the eepsite.

To open your address book, click on the "Addressbook" icon on your I2P Router Console. Then, click on the "Router" button at the top of the page that comes up. This page displays a default list of eepsites that you can visit by clicking on them. Notice that there are hundreds of eepsites already in your address book. At the bottom of the page is the "ADD NEW DESTINATION" section where you can add other eepsites to your address book. When you find an interesting I2P site that you would like to save to your address book, add its human-readable "URL" on the "Hostname" line and then the 32-character or longer I2P address on the "Destination" line. Then, click the "Add" button. Note that you should add new addresses to the private or master address books, because the router address book is updated periodically, and your additional addresses will be overwritten at each update.

Jump services help you to find the b32 addresses associated with human-readable eepsite addresses. Two jump services are: http://stats.i2p/i2p/lookup.html and no.isp . There you can get the b32 addresses of eepsites that are not in your address book. Add the longer string of characters from the "Destination" line, not the "Base 32" line, to your address book. Note the warning attached to using the stats.i2p jump service: "WARNING: Using a jump service exposes the identity of your HTTP Client tunnel and the requested URL, including query parameters, to a third party. For higher security, add the host to your address book or use a b32 address. All stats.i2p services are logged." Jump services are similar to DNS services on the clearnet. The reason your I2P software contains an address book is so that you will not have to use a jump service every time you want to visit an eepsite. The significance of the use of an address book is that unlike the clearnet's use of DNS servers that allow third parties to track you everywhere you go on the clearnet by intercepting your DNS queries, third parties cannot use this method to track you to the eepsites you visit when you use your address book to find their b32 addresses.

When you are unable to reach an eepsite, your I2P software will display the following message in your browser: "The website was not reachable. The website is offline, there is network congestion, or your router is not yet well-integrated with peers. You may want to retry." Then, you may or may not be presented with links to jump services. I have been told that eepsites are generally much more reachable when the left side of your I2P Router Console page (http://127.0.0.1:7657/console) says you have more than 2000 known peers.

A listing of eepsites that are known to be currently operational can be found at http://identiguy.i2p/ . Try looking up the b32 addresses of a few of these eepsites using the stats.ip jump service. Some of the addresses on the "Destination" line of stats.i2p may be rejected by your address book. Keep trying until you are successful with one, and then go to that eepsite. Trying to go to eepsites on this list is like hunting for buried treasure. You won't know what's there until you dig, and sometimes it may not be readily apparent even then.

You will often find that you cannot reach an eepsite that you know is on line and for which you have a correct b32 address. As I alluded to earlier, it may take some time for your i2prouter software to locate enough peers to connect to some eepsites. If you cannot connect to an eepsite the first time you try, you may have to wait for a few minutes or even a few hours before you will be able to connect. As far as I am concerned, this makes using the I2P network seem less appealing. You will probably find that, except for the most well-known eepsites, many eepsites to which you try to connect will not be reachable. This is very similar to my experience with the IPFS. I suspect this is unfortunately a characteristic of distributed, peer-to-peer networks where hobbyists and volunteers provide content on their servers paid for out of their own pockets. This is one area where ZeroNet has a definite advantage, because website data is downloaded automatically to every user who visits it--until they intentionally delete it. My experience with ZeroNet is that most of its websites have content that is available to users most of the time.



Places to go on the I2P Network

Now for the part you've been waiting for, finding content on the I2P network.


I2P Links and Lists

As I have already stated, some I2P sites can be accessed through the icons on the I2P Router Console. One of these is "The Tin Hat". You can also find the Tin Hat on the clearnet, and it has a webpage with links to I2P eepsites. Here is another page of links. In order to follow these I2P links, you will have to have your i2prouter software running. Another good list of eepsites can be found on the clearnet here.


I2P Search Engines

Several I2P search engines reside on the I2P network. They can sometimes be hard to connect to, so you may have to try some of them repeatedly before you are successful. Here they are:




You can also find a clearnet search engine for I2P eepsites here.


Currently-Operational Eepsite Lists

In addition to http://identiguy.i2p, other lists of eepsites that are known to be operational can be found by visiting:





For More Information on I2P

On the clearnet, Full Wiki has a page on I2P here. Information on I2P can be also found on the following eepsites:





The last two eepsites are forums where you can ask questions.



Final Words

The information presented in this introduction to the I2P network should be enough to get you well on your way. You should be able to successfully install the I2P software on your Linux computer. Installation on Windows computers should be even easier. You should be able to start the software and establish a connection to the I2P network. And, you should be able to navigate around the I2P network of eepsites fairly confidently. But, remember that there is still much more to learn about the I2P network. The more you use it, the more knowledge you will obtain, and the more proficient you will become. So, get started.



Related Articles:

Why I Love the Idea of Community File Sharing and Mesh Networks

What I Learned about the Internet by Creating My Own Website

ZeroNet and the Future of the Internet

The Next Internet

How to Access the Interplanetary File System

Comments


Required Fields *

*Name:

*Comment:
Comments Powered by Babbleweb

*day of the month + 8 =

Copyright © 2019 The Cheapskate's Guide to Computers and the Internet. All rights reserved.