Butingtaon's Corner

Posts by type
Other

i2p: Invisible Internet Project

This is a series of notes about using the Invisible Internet Project, especially notes and links discussing how to host services on that darknet.

The Invisible Internet Project (I2P) is a fully encrypted private network layer. It protects your activity and location. Every day people use the network to connect with people without worry of being tracked or their data being collected. In some cases people rely on the network when they need to be discrete or are doing sensitive work. ~

Reading through thhe documentation above, it looks like hosting a service on I2P is as simple as letting the I2P router know about your service by entering the port settings and other details into tunnels.conf, running the appropriate software on the listed ports and then restarting the router.

I really like using w3m via emacs and I use the below code snippet to toggle using i2p on and off with w3m.

	  
(setq browse-url-browser-function 'w3m-browse-url)

(require 'w3m)
(require 'w3m-load)

(defun butingtaon/toggle-i2p-mode ()
  "Toggles between clearnet mode and i2p mode."
  (interactive)
  (if (equal url-gateway-method 'native)
      (progn (setq url-gateway-method 'socks)
	     (setq w3m-command-arguments
		   (nconc w3m-command-arguments '("-o" "http_proxy=http://127.0.0.1:4444")))
	     (message "I2P mode, enabled."))
    (progn (setq url-gateway-method 'native)
	   (setq w3m-command-arguments nil)
	   (message "I2P mode, disabled."))))
	  
	  

After toggling a mode, run w3m-quit to shut down the background w3m instance and then run w3m again. Although switching between i2p- and regular web mode seems to work (and having clearnet and i2p web pages up), w3m-quit in between modes seems to be cleaner. It delineates whether you're on the clearnet or not.