Installing i2p on Arch Linux

I2P is an anonymous overlay network - a network within a network. It is intended to protect communication from dragnet surveillance and monitoring by third parties such as ISPs.

I2P is used by many people who care about their privacy: activists, oppressed people, journalists and whistleblowers, as well as the average person.

Machine used:

1
2
[root@portal ~]# uname -a
Linux portal 3.12.5-1-ARCH #1 SMP PREEMPT Thu Dec 12 13:32:40 CET 2013 i686 GNU/Linux

There are a few dependencies for i2p:

  • java-runtime
  • java-service-wrapper

The ‘java-runtime’ can be installed from via the following:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@portal ~]# pacman -Ss java-runtime
extra/jre7-openjdk 7.u51_2.4.5-1
Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs - Full Java runtime environment - needed for executing Java
GUI and Webstart programs
extra/jre7-openjdk-headless 7.u51_2.4.5-1
Free Java environment based on OpenJDK 7.0 with IcedTea7 replacing binary plugs - Minimal Java runtime - needed for executing non GUI Java
programs

[root@portal ~]# pacman -S jre7-openjdk-headless
resolving dependencies...
looking for inter-conflicts...

Packages (7): ca-certificates-java-20130815-1 lcms2-2.5-2 libjpeg-turbo-1.3.0-4 libtiff-4.0.3-4 nspr-4.10.3-1 nss-3.15.4-1
jre7-openjdk-headless-7.u51_2.4.5-1

Total Download Size: 45.64 MiB
Total Installed Size: 83.91 MiB

:: Proceed with installation? [Y/n] yes

You will need ‘make’ or java-service-wrapper will fail to install:

1
[root@portal ~]# pacman -S make

The ‘java-service-wrapper’ has to be downloaded and is found in the AUR:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
user@portal:/tmp$ wget https://aur.archlinux.org/packages/ja/java-service-wrapper/java-service-wrapper.tar.gz
user@portal:/tmp$ tar xvzf java-service-wrapper.tar.gz
user@portal:/tmp$ cd java-service-wrapper
user@portal:/tmp/java-service-wrapper$ makepkg -is
==> WARNING: Cannot find the sudo binary. Will use su to acquire root privileges.
==> Making package: java-service-wrapper 3.5.24-1 (Mon Feb 10 15:04:45 CST 2014)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
Password:
resolving dependencies...
looking for inter-conflicts...

Packages (19): hicolor-icon-theme-0.12-2 jre7-openjdk-7.u51_2.4.5-1 kbproto-1.0.6-1 libice-1.0.8-2 libsm-1.2.2-2 libx11-1.6.2-1
libxau-1.0.8-2 libxcb-1.10-1 libxdmcp-1.1.1-1 libxext-1.3.2-1 libxmu-1.1.2-1 libxt-1.1.4-1 xcb-proto-1.10-1
xdg-utils-1.1.0.git20140207-1 xextproto-7.3.0-1 xorg-xset-1.2.3-1 xproto-7.0.25-1 apache-ant-1.9.3-2
jdk7-openjdk-7.u51_2.4.5-1

Total Download Size: 21.71 MiB
Total Installed Size: 47.87 MiB

:: Proceed with installation? [Y/n] yes

...
..
.

==> Installing package java-service-wrapper with pacman -U...
Password:
loading packages...
resolving dependencies...
looking for inter-conflicts...

Packages (1): java-service-wrapper-3.5.24-1

Total Installed Size: 0.46 MiB

:: Proceed with installation? [Y/n] yes
(1/1) checking keys in keyring
[###################################################] 100%
(1/1) checking package integrity
[###################################################] 100%
(1/1) loading package files
[###################################################] 100%
(1/1) checking for file conflicts
[###################################################] 100%
(1/1) checking available disk space
[###################################################] 100%
(1/1) installing java-service-wrapper
[###################################################] 100%

Once the above is installed, you can move on to installing i2p:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
user@portal:/tmp$ wget https://aur.archlinux.org/packages/i2/i2p/i2p.tar.gz
user@portal:/tmp$ tar xvzf i2p.tar.gz
user@portal:/tmp$ cd i2p
user@portal:/tmp/i2p$ makepkg -is
==> WARNING: Cannot find the sudo binary. Will use su to acquire root privileges.
==> Making package: i2p 0.9.11-1 (Mon Feb 10 15:10:29 CST 2014)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...

==> Installing package i2p with pacman -U...
Password:
loading packages...
resolving dependencies...
looking for inter-conflicts...

Packages (1): i2p-0.9.11-1

Total Installed Size: 12.62 MiB

:: Proceed with installation? [Y/n] yes
(1/1) checking keys in keyring
[###################################################] 100%
(1/1) checking package integrity
[###################################################] 100%
(1/1) loading package files
[###################################################] 100%
(1/1) checking for file conflicts
[###################################################] 100%
(1/1) checking available disk space
[###################################################] 100%
(1/1) installing i2p
[###################################################] 100%
>>> Creating i2p system user... done
Optional dependencies for i2p
robert: I2P BitTorrent client

You can start the service via:

1
systemctl start i2prouter.service

Notes

  • The configuration files are found in ‘/opt/i2p’ and specifically ‘/opt/i2p/.i2p’
  • The default configuration assumes you are running i2p locally (127.0.0.1) thus all your traffic will have to through host ‘localhost’.
  • More information can be found here: Arch Wiki - i2p
  • Detailed configuration options can be found: i2p faq (Hint: Read #’s 23 and 24)