• 2 Posts
  • 42 Comments
Joined 1 year ago
cake
Cake day: July 5th, 2023

help-circle



  • No worries, hopefully increasing the tunnel quantity will get you acceptable speeds, I could be missing something, but thats all I can think of besides allowing inbound traffic.

    Something I forgot to mention, there is the Java I2P router, its availiable in the default f-droid repo, I havent tested it out on Android, but it has a fancy gui on desktop where everything can be configured, it some blocklists of tor exit nodes and stuff, I think that helps performance, I’m not totally sure tho, I dont use the Java versions, they have too many buttons and switches, and its kinda overwhelming for me.



  • I’ve never used this app, but it looks like its using i2pd, I would look for the i2pd.conf, and change the bandwidth flag from L (32kb/s) to like O (256kb/s) or P (2048kb/s), but performance may still not be very good if your router is firewalled.

    But you might just be getting bad peers, the speed of a tunnel will be limited by its weakest peer, I would try increasing tunnel quantity on both sides, and allowing inbound traffic on both routers if they arent un-firewalled already, if possible.



  • Ive been torrenting on I2P with qBittorrent for a lil while now, its not as fast as the clearnet, the fastest speed down ive ever got so far is 1.7MB/s, and this was on a torrent with loads of seeders. Its possible to increase your tunnel quantity and lower the amount of hops each tunnel has for better performance, but you will have less anonymity with less tunnel length.

    But so far its been nice, there is no need to think about NAT/Firewall, as all peers can communicate with each other, but it doesnt have as much content as the clearnet, so I try to cross-seed what I can. But when im torrenting, I try to go I2P-first, and then fallback on the clearnet if I couldnt find what I was looking for.


  • I’m not very familliar with Java I2P, but I took a look at the documentation for Docker, and I didnt see anything about this issue, but I did have the same issue with i2pd in a container. I would try installing it manually and running it outside of the container.

    If you need the bind mount feature from Docker, and you are on a systemd system, I recommand using systemd’s PrivateMounts feature. It can be added in a dropin file that can be created with the command systemctl edit i2p.service, the i2p.service may be different depending on your distro, but for Java I2P’s package on Arch its just i2p.service, but you can add the following in a dropin file to get the same private mounts just for your I2P router:

    [Service]
    PrivateMounts=yes
    BindPaths=/XXX/i2pconfig:/i2p/.i2p
    BindPaths=/XXX/I2P-data/i2ptorrents:/i2psnark
    

    You might have to mess around with file permissions depending on who you run your I2P router as.

    Sorry I dont have a better solution, I dont know much about Docker. But I think the developer of the Java I2P router is on r/i2p on reddit, and I think you can find him on http://i2pforum.i2p/, he prolly knows a whole lot more about Java I2P and the Docker image than I do.


  • Is your I2P router running in a container like Docker or systemd-nspawn? I had some issues with this error back when I ran my router in a systemd-nspawn container with VirtualEthernet=yes.

    But id shutting down the I2P router and running something different on the same port like an HTTP server, and trying to access it from a vpn or tor or something and make sure your ISP isnt doing anything weird on this specific port.

    And if you are using i2pd, you can goto the webconsole and go inside “Router Commands” and click “Run peer test” to have it test again. Im not sure how to do this in Java I2P tho.


  • I dont use the outproxies for ssh, but it should be possible to connect to my server using its clearnet address using one of the outproxies. I have i2pd running on my server 24/7, and an entry in the tunnels.conf file that points to 127.0.0.1:22 on the server. When I want to connect to it, Ill run another i2p router on whatever device im connecting to, and Ill put the “.b32.i2p” address into ssh while using the SOCKS proxy for it. It is possible to make a client entry in the tunnels.conf on whatever device you are connecting from, and you can even turn the hops down to 1, which will increase performance, but lower anonymity. I think by default the SOCKS proxy uses 3 hops, but it can be changed.

    But it should totally be possible to run your own private VPN over i2p, but Ive never done it myself, I just use ssh to port forward all of my self hosted stuff.


  • There are exit nodes in i2p, but they are called outproxies. The most popular ones are exit.stormycloud.i2p, purokishi.i2p, and outproxy.acetone.i2p. To setup an outproxy, you will have to setup software external to i2p, i2p routers by themselves will never exit. It is possible to visit onion domains inside of i2p, StormyClouds’s outproxy has support for this, but from what ive heard, its recommended to use none of these, and to just use the tor browser if you need to access onion sites or the clearnet anonymously.

    There are many use cases for i2p besides eepsites and torrenting, pretty much anything that runs on TCP can prolly be ran on i2p. For example, I run my servers ssh over i2p, so if my ip address were to change for whatever reason, the i2p address will remain the same. There are also IRC services, internet radio stations, there are even 2 public Minecraft servers.





  • I made this userscript to put the vote count in comments back beside the vote button because the new one is kind of hard to see, its not the prettiest script (idk much about javascript), but I’ve tested it in Librewolf with Violentmonkey and it does work, hope it helps someone else!

    // ==UserScript==
    // @name        New script blahaj.zone
    // @namespace   Violentmonkey Scripts
    // @match       https://lemmy.blahaj.zone/post/*
    // @grant       none
    // @version     1.0
    // @author      -
    // @description 8/24/2024, 3:32:47 PM
    // @run-at      document-idle
    // ==/UserScript==
    
    function main ()
    {
    	var parent_comments = document.getElementsByClassName("comment list-unstyled"); 
    	for (var i = 0; i < parent_comments.length; /*i++*/)
    	{
    		/*console.log(i);*/
    		var comments = parent_comments[i].getElementsByTagName("article");
    		for (var j = 0; j < comments.length; j++)
    		{
    			var upvote_button = comments[j].getElementsByTagName("button")[1];
    			
    			if (upvote_button.attributes["vote_count_patched"] != null)
    			{
    				i++;
    				continue;
    			}
    			
    			var post_votes = upvote_button.attributes[2].textContent.split(' ')[0];
    			upvote_button.append(' ' + String(post_votes));
    			upvote_button.attributes["vote_count_patched"] = true;
    			i++;
    		}
    	}
    }
    /*var mutation = null;
    var mutation_observer = new MutationObserver(function(m) { mutation = m; console.log("new mutation logged yo");} );
    mutation_observer.observe(document, { childList: true, subtree: true }); */
    
    var mutation_observer = new MutationObserver(main);
    mutation_observer.observe(document, { childList: true, subtree: true});
    
    main();