Thought I would share my simple docker/podman setup for torrenting over I2P. It’s just 2 files, a compose file and a config file, along with an in-depth explanation, available at my repo https://codeberg.org/xabadak/podman-i2p-qbittorrent. And it comes with a built-in “kill-switch” to prevent traffic leaking out to the clearnet. But for the uninitiated, some may be wondering:

What is I2P and why should I care?

For a p2p system like bittorrent, for two peers to connect to each other, at least one side needs to have their ports open. If one side uses a VPN, their provider needs to support “port forwarding” in order for them to have their ports open (assuming everything else is configured properly). If you have ever tried to download a torrent with seeders available, yet failed to connect to any of them, your ports are probably not open. And with regulators cracking down on VPNs and forcing providers like Mullvad to shut down port forwarding, torrenting over the clearnet is becoming more and more difficult.

The I2P network doesn’t have these issues. The I2P is an alternative internet network where all users are anonymous by default. So you don’t need a VPN to hide your activity from your ISP. You don’t need port-forwarding either, all peers can reach each other. And if you do happen to run a VPN on your PC, that’s fine too - I2P will work just the same. So if you’re turning your VPN on and off all the time, you can keep I2P running throughout, and continue downloading/uploading.

I2P eliminates all the complications and worries about seeding, making it easy for beginners to contribute to the network. I2P also makes downloading easier, since all peers are always reachable. And it’s more decentralized too, since users don’t need to rely on VPN providers. And of course, it’s free and open source!

A fair warning though, I2P is restricted in some countries. And in terms of torrenting specifically, torrents have to explicitly support I2P. You can’t just take any clearnet torrent and expect it to work on I2P. And the speeds are generally lower since there are less seeders, and the built-in anonymity has a cost as well. However I’ve been surprised at the amount of content on the I2P network, and I’ve been able to reach 1 MB/s download speeds. It’s more than good enough for me, and it will only get better the more people join, so I hope this repo is enough for people to get started.

  • garret@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 days ago

    Thank you! I just randomly found your guide in another Lemmy post and this kind of setup has been in my to-do list after I became “pro” with gluetun and qbitorrent (inside Docker) and thought the same could be done for i2pd but haven’t had the time.

    I have some questions

    1. I have been very happy about qbitorrent finally opening to i2p but recently found out that because it is using libtorrent it doesn’t support DHT for i2p (while the official i2psnark client does). Don’t you think is better at this point to still use i2psnark (and you would have the commodity to also have the browser included?) despite being in Java…

    2. For some reason, I would still feel insecure in using i2p without a VPN. It is said there is no need, ok, but what if I still want to use it. I guess it shouldn’t harm? Like affecting speed or other factors? I would like to remove as much as possible any chance of my ISP sniffing on my connections.

    PS: I have an improvement for your guide 😁You could add an extra container with Mullvad-Browser (still from linuxserver) to access Postman.