• 1 Post
  • 9 Comments
Joined 1 year ago
cake
Cake day: July 5th, 2023

help-circle
  • Sure, the steps are different depending on which i2p router you are using, for i2pd, you just have to add a file in your tunnels.d directory, or add an entry in your tunnels.conf and then reload the tunnel configuration. In Java i2p, you will have to do it through the gui.

    Here is the link to the tunnel config for i2pd: http://i2pcraft.i2p/example/i2pdtunnel.html And here is a link to a screenshot of Java i2p: http://i2pcraft.i2p/img/config.png

    The tunnel length can be reduced to 1 for better performance, but you will sacrifice some anonymity.

    But once the tunnel is setup and running, you can use Minecraft 1.19.2, or a newer version with ViaFabricPlus and connect to 127.0.0.1:25565. Its an anarchy server, but its pretty chill, I heard there is an iron farm and trained villagers for anyone to use near spawn, but I havent seen them. It is a cracked server, so you will have to use /register and save your password somewhere.

    The other server is at mc.r4sas.i2p, I couldnt copy any links from there, I think its down rn, but the instructions for i2pcraft should be pretty much the same, just a different address. But I think its a russian speaking server, all of the players ive seen on i2pcraft speak english.


  • 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();