How to setup I2P tunnels for XMPP

How to setup I2P tunnels for XMPP

tomfun

Contents

  • Install i2pd / i2p / f-droid
  • How to configure SOCKS proxy with I2P
  • How to create dedicated I2P tunnel for XMPP account

Install

I2PD cannot be found on google play market. But both I2P and I2PD can be found in alternative application repository: f-droid - read about it https://f-droid.org/en/docs/FAQ_-_General/

For easy installation of I2P(d) you can install f-droid.org - https://f-droid.org/F-Droid.apk but it is not required

You can just download and install apk's:

-- Which one should I install?

-- It is your choice. Both are valid. Both work. I2P Java is older and more popular. I2PD considered more efficient. I2P Java require additional SOCKS tunnel for default Conversations I2P proxy configuration - follow instruction below to create modern SOCKS proxy or change proxy configuration in Conversations

How to configure SOCKS proxy with I2P

Final and complete configuration (tldr) must be like this:


To configure SOCKS proxy with I2P Android router (original Java version) create such tunnel. type: SOCKS, port: 4447. It is enough to use with conversation. I2PD router has it by default - nothing to configure.

Steps to create the tunnel

  1. You need start I2P app
  2. run it on main page
  3. open Tunnels configuration and wait some time to be able see and add tunnels

4. add a new one.


5. Select Client


6. SOCKS ...5 proxy


7. any name is ok


8. description - left empty

9. outproxies - left empty

10. listen locally - 127.0.0.1 - only phone (and Conversations) can use the I2P proxy

11. port - 4447


12. enable auto start


13. Confirm creation.

After some time the tunnel will be available and green light appears:

Dedicated I2P tunnel for XMPP account

-- Why?

-- When you do not completely trust the XMPP server you want to connect. Or if you want to connect with persistent or separate from other used tunnels. You can use VPS with own proxy. You can use different XMPP clients which has no I2P support, but have 'Extended connection settings' as in Conversations.

Let's say we want connect to example.i2p via dedicated tunnel. We need:

  • create tunnel for example.i2p
  • enable at 'Expert settings' 'Extended connection settings' flag
  • add extra [local]host and [local]port to the account

Tunnel

Similar to instructions above we need to create tunnel. For it we use android I2P router. But it is also possible to use local network or VPN'ed i2p router. By the way better and secure to use .b32 address not example.i2p. Here is final tunnel creation step:

destination - ....i2p:port [5222 default], type - client


Also depends on your preferences you may make it persistent and dedicated [not shared]:

go to settings of created tunnel and press edit

Enable


Configure account

To use created tunnel go to your account-name@example.i2p settings and fill data from 1st step host (127.0.0.1) and port (5222) there

After some time, when tunnel will be available:




Report Page