Linux

Install I2P on Linux

Step-by-step instructions for installing I2P on all major Linux distributions including Debian, Ubuntu, Fedora, CentOS, openSUSE, Alpine, and Docker.


Install I2P on Linux

There are two ways to install I2P on Linux. Choose the method that best fits your needs:

Easy Install Script

Available Now

Best for most users

A single command that automatically detects your distribution and installs I2P with sensible defaults.

Easy Install Guide →

Standard Installation

Available Now

For advanced users

Run commands manually for your specific distribution and understand what each step does.

Standard Install Guide →

Easy Install

The one-line installer automatically detects your Linux distribution and installs I2P with the correct repository and signing keys. This is the fastest way to get up and running.

Run this command in your terminal:

curl -fsSL https://stormycloud.org/installi2p.sh | bash

What this does:

  • Detects your Linux distribution (Debian, Ubuntu, Fedora, CentOS/RHEL, openSUSE)
  • Adds the appropriate I2P repository and GPG signing keys
  • Installs the I2P package
  • Enables the I2P system service so it starts on boot
  • Falls back to a Docker install if your distro is unsupported

When the installer finishes, the I2P router console will be available at http://127.0.0.1:7657. You can then continue to Post-Installation Configuration to fine-tune bandwidth and port forwarding.

Tip: If you’d rather inspect the script before running it, download it first with curl -O https://stormycloud.org/installi2p.sh, review the contents, then run it with bash installi2p.sh.


Standard Installation

Choose the instructions for your distribution:


Debian

For Debian and its derivatives (LMDE, Kali Linux, ParrotOS, Knoppix, etc.).

Step 1: Install prerequisites

sudo apt-get update
sudo apt-get install apt-transport-https lsb-release curl

Step 2: Download and install the repository signing key

curl -o i2p-archive-keyring.gpg https://i2p.net/i2p-archive-keyring.gpg

Verify the key fingerprint before trusting it:

gpg --keyid-format long --import --import-options show-only --with-fingerprint i2p-archive-keyring.gpg

Confirm the output shows this fingerprint:

7840 E761 0F28 B904 7535  49D7 67EC E560 5BCF 1346

Install the verified key:

sudo cp i2p-archive-keyring.gpg /usr/share/keyrings

Step 3: Add the I2P repository

For Debian Bullseye (11) or newer:

echo "deb [signed-by=/usr/share/keyrings/i2p-archive-keyring.gpg] https://deb.i2p.net/ $(lsb_release -sc) main" \
  | sudo tee /etc/apt/sources.list.d/i2p.list

For Debian derivatives (LMDE, Kali, ParrotOS, etc.):

echo "deb [signed-by=/usr/share/keyrings/i2p-archive-keyring.gpg] https://deb.i2p.net/ $(dpkg --status tzdata | grep Provides | cut -f2 -d'-') main" \
  | sudo tee /etc/apt/sources.list.d/i2p.list

Step 4: Install I2P

sudo apt-get update
sudo apt-get install i2p i2p-keyring

Ubuntu

Ubuntu and its derivatives (Linux Mint, elementary OS, Pop!_OS, etc.) can use the I2P PPA.

Step 1: Add the I2P PPA

sudo apt-add-repository ppa:i2p-maintainers/i2p

Step 2: Install I2P

sudo apt-get update
sudo apt-get install i2p

Fedora

# Enable the I2P COPR repository
sudo dnf copr enable i2porg/i2p

# Install I2P
sudo dnf install i2p

# Start and enable the service
sudo systemctl enable --now i2p

CentOS / RHEL / AlmaLinux / Rocky Linux

For RHEL-family distributions (CentOS Stream 9+, RHEL 9+, AlmaLinux 9+, Rocky Linux 9+).

Step 1: Install DNF plugins

sudo dnf install dnf-plugins-core

Step 2: Enable the I2P COPR repository

sudo dnf copr enable i2porg/i2p

Step 3: Install I2P

sudo dnf install i2p

Step 4: Start and enable the service

sudo systemctl enable --now i2p

openSUSE

For openSUSE Tumbleweed:

# Add the I2P repository
sudo zypper addrepo https://download.opensuse.org/repositories/home:i2p/openSUSE_Tumbleweed/home:i2p.repo
sudo zypper refresh

# Install I2P
sudo zypper install i2p

# Start and enable the service
sudo systemctl enable --now i2p

For openSUSE Leap 15.6:

# Add the I2P repository
sudo zypper addrepo https://download.opensuse.org/repositories/home:i2p/openSUSE_Leap_15.6/home:i2p.repo
sudo zypper refresh

# Install I2P
sudo zypper install i2p

# Start and enable the service
sudo systemctl enable --now i2p

Alpine Linux

Coming Soon

Step 1: Enable the community repository

Ensure the community repository is enabled in /etc/apk/repositories:

sudo sed -i 's/^#\(.*\/community\)$/\1/' /etc/apk/repositories

Step 2: Install I2P

sudo apk update
sudo apk add i2p

Docker

Run I2P using the official Docker image.

Step 1: Pull the image

docker pull geti2p/i2p

Step 2: Create a data volume

docker volume create i2p-data

Step 3: Run I2P

docker run -d \
  --name i2p \
  -v i2p-data:/i2p/.i2p \
  -p 7657:7657 \
  -p 4444:4444 \
  -p 4445:4445 \
  geti2p/i2p

The router console will be available at http://127.0.0.1:7657.


Post-Installation Configuration

After installing I2P, start the router and perform initial setup.

Starting I2P

Debian/Ubuntu:

sudo dpkg-reconfigure i2p

Select “Yes” to enable I2P as a system service that starts on boot.

Fedora / CentOS / RHEL / AlmaLinux / Rocky:

sudo systemctl enable --now i2p

Alpine:

sudo rc-update add i2p default
sudo rc-service i2p start

On-demand

Start I2P manually when needed:

i2prouter start

Do not run this as root. To stop:

i2prouter stop

Configure NAT/Firewall

For best performance, forward I2P’s ports through your firewall:

  1. Open the Router Console
  2. Go to Network Configuration
  3. Note the UDP and TCP port numbers
  4. Forward both UDP and TCP on those ports in your router/firewall

If you need help with port forwarding, portforward.com has router-specific guides.

Adjust Bandwidth

The default bandwidth settings are conservative. To improve performance:

  1. Visit the Configuration page
  2. Increase bandwidth limits based on your internet connection