Development discussions
Sat, 01 Dec 2018, 08:14pm #1


Don't really know where else to ask for this, please let me know in case this is not the right place.

I2P has a Networking setting called Laptop mode:

"Change router identity and UDP port when IP changes for enhanced anonymity (Experimental)"

1. Why only change the UDP port and not the TCP port?

2. I would like to request a semi-laptop mode: change the router identity, but not the UDP port.

Why? Well, I have a virtual network where the router has a dynamic IP address, and I2P is virtualized on a NAT-only internal network, so I have forwarded specific ports. When the IP changes I do want the router identity to change, but having to update the ports every time my IP address changes gets tedious.

2b. One might say, "but if your port does not change, then the probability of correlating the old and new router identities increases."

I do not know if this is true, but if it is, then maybe it could be mitigated if the user were allowed to supply a list of ports from which I2P randomly selects every time the IP address changes, because in that case I can forward all of those ports to the I2P router on the NAT.

3. How can one manually change the router identity?

Thanks fnord

Sun, 02 Dec 2018, 12:17pm #2

1) Unless you have a TCP port manually configured, it's the same as the UDP port, so both will change

2b) is true, so there's really not much use in changing your identity if you keep the same port

3) Stop i2p. In your config dir, delete the files router.keys.dat, router.info, keyBackup/*. Start i2p.

Wed, 05 Dec 2018, 11:31pm #3

Hi zzz. Thanks for letting me know how to change the router identity.

So, regarding 2b. Are you open to the suggestion of allowing the user to specify ports?

e.g. I can specify port 5000, 10000, 15000, 20000 somewhere (of course in reality this will be different) and I2P is using 5000 now. But then, after my IP changes, the router will change its identity and switch to any other port in this list.

And would you be willing to implement this? I'm sorry but I'm just not a programmer.