I2P (Invisible Internet Project or Invisible Internet Protocol) – anonymous overlay decentralized peer-to-peer network. Overlay – works on top of other networks, for example, the regular Internet; decentralized – distributed, without a single point of failure: one node falls, half of the network, or 3 users remain in the entire network – I2P will still function. I2P is a peer-to-peer network because all participants have equal rights and opportunities: each user of the hidden network builds his tunnels through other participants and is himself a potential link in the chain of another user. At the same time, natural network activity does not compromise the subscriber in front of the home provider or participants in the hidden network.
I2P outperforms Tor by anonymity parameters, but does not have an output proxy to the regular Internet by default. The I2P network is completely decentralized and open source. There are two web clients: Java (first released in 2003) and i2pd in C ++ (first released in 2014). The C ++ I2P router outperforms its predecessor in speed and stability and is highly recommended. The main discussion of i2pd development is on the #dev channel on the ILITA. When working through Yggdrasil, the I2P network does not form a separate segment, but remains unified: users from the regular Internet are also available. A schematic of the interaction of Yggdrasil-only routers with other network participants is shown in the illustration.
Details about the mechanism of operation of the I2P network and the history of the appearance of the alternative i2pd client are described in the video (en): YouTube.com, Open.Tube, Intranet repository.
The easiest and most correct option is to download the package for your operating system from the official releases page. Also i2pd exists in the standard repositories of some unix-like operating systems like Debian or Ubuntu, and is available for installation via the short line sudo apt-get install i2pd
, but this installation method is not recommended, since there are always very outdated versions in the default repositories.
However, there is an up-to-date community repository, adding which to your system, you can forget about rotten packages and update in a familiar and convenient way. For comprehensive installation information, see documentation i2pd.
Below are instructions for Debian and Ubuntu using the user R4SAS
repository in the clearnet:
# Ubuntu sudo add-apt-repository ppa:purplei2p/i2pd sudo apt-get update sudo apt-get install i2pd # Debian sudo apt-get install apt-transport-https wget -q -O - https://repo.i2pd.xyz/.help/add_repo | sudo bash -s - apt-get update sudo apt-get install i2pd
The same, but with access via Yggdrasil, i.e. intranet repository:
# Debian wget -q -O - http://[321:c99a:91a1:cd2c::4]/.help-ygg/add_repo | sudo bash -s - sudo apt-get update sudo apt-get install i2pd
The community supports a Firefox-based I2P browser similar in concept to the Tor browser. You can download the browser from releases page of the corresponding git repository of the PurpleI2P team (distributed only for Windows). The package of a portable browser may not contain the latest version of i2pd, so you will probably need to manually replace the executable file i2pd.exe
to use the current version.
Starting from version 2.36.0 i2pd has a mode of operation that excludes connections via the regular Internet. Below is an example of a router configuration that communicates with a hidden I2P network exclusively through other Yggdrasil routers. By default, the configuration file is located in /etc/i2pd/i2pd.conf
or ~/.i2pd/i2pd.conf
, and for Windows OS: %AppData%\i2pd\i2pd.conf
. For the I2P router to work in “Portable” mode, when all data is stored in the directory with the executable file, you need to create the “i2pd.conf” file in the same folder where the program binary file is located.
daemon=true # note: remove it if you running on Windows! ipv4=false ipv6=false ssu=false ntcp2.enabled=false meshnets.yggdrasil=true
If you want the I2P router to publish the address from your Yggdrasil subnet used on the device, add the line:
meshnets.yggaddress=your_local_yggdrasil_address
At the first start, i2pd will contact the start server inside the Yggdrasil network, which will give away several routers sufficient to get started. Then, the router's network base will start automatically replenishing. Thus, the use of I2P will do without a single call to the clearnet.
An I2P router (i2pd) at system startup (in the example Debian) can start earlier than the Yggdrasil service. This leads to a forced manual restart of i2pd. The yggdrasil interface is not detected by the I2P router until the Yggdrasil service starts. There are two main ways to solve this problem (use whichever you like):
1) After starting Yggdrasil, set the delay before starting the dependent services:
mkdir /etc/systemd/system/i2pd.service.d
nano /etc/systemd/system/i2pd.service.d/override.conf
[Unit] After=network.target yggdrasil.service
Ctrl+O – save changes to the file, Ctrl+X - exit from nano editor
mkdir /etc/systemd/system/yggdrasil.service.d
nano /etc/systemd/system/yggdrasil.service.d/override.conf
[Service] # adding post-up delay to bring up yggdrasil tunnel interface before starting other services which depends on ygg ExecStartPost=/bin/sleep 5
Ctrl+O – save changes to the file, Ctrl+X - exit from nano editor
2) Set i2pd start timer:
/etc/systemd/system/i2pd.timer
sudo nano /etc/systemd/system/i2pd.timer
[Unit] Description=i2pd service timer After=yggdrasil.service [Timer] OnActiveSec=10 [Install] WantedBy=multi-user.target
Ctrl+O – save changes to the file, Ctrl+X - exit from nano editor
sudo systemctl disable i2pd.service
sudo systemctl enable i2pd.timer
How can the average user contribute to the development of the I2P network? This question is asked by many enthusiasts. And here's the answer:
ipv4=true ipv6=true meshnets.yggdrasil=true
floodfill=true
Please note that these settings are primarily relevant for server administrators or home users who have a dedicated IP address. In any case, keeping the I2P router on for as long as possible is a good contribution to the overall power of the network. A network client running even on a smartphone (!) Can receive “probe” tunnels created by other participants to explore the network and have extremely low traffic.
Monitoring the number of Yggdrasil routers in the I2P network
Git repository
Releases page for download i2pd
Documentation
Java-router (client without Yggdrasil support)