If this question doesn't belong here, I apologize.

I've seen a lot of questions about setting up and accessing an IRC server behind hidden services, and this obviously as a 'standalone' server(and well documented). Has anyone tried setting up the communication between IRC nodes over Tor? I've tried using torsocks when launching ircd-hybrid but that doesn't work (probably related to the change in ownership at startup). Has anyone experimented with this?



While I haven't set up an IRC server before, I think it should be possible, but it would be a standalone service. I don't think it could be connected to DALnet, Freenode, etc. because those services wouldn't have a way to interface with you since they wouldn't understand how to connect to Tor and probably wouldn't allow that anyway.

Using this tutorial, you can see that this server is set up on port 6697. You would create an onion service on port 6697 like any other onion service.

I've created all kinds of onion services just to see if I could from telnet to gopher. They all work on pretty much the same principal. The only thing that won't work are services that rely on UDP (like Mosh) instead of TCP.

  • Hi JS, thanks for responding, the idea is more about creating it's own IRC network over TOR. The challenge I'm finding is 'telling' the server to utilize the TOR network. I have yet to find an IRC server implementation that is itself, SOCKS aware. (Probably should've put this in the question). The trick without SOCKS is the resolution of the .onion address and interception/redirection of the traffic via the TOR daemon. There is a method of DNS intercept for .onion resolution. The idea of theTorSocks wrapper is handle all this. However, your post gave me an idea to try. :) – S43V3 Oct 11 '20 at 20:44
  • There are ways to torify your entire machine using something like whonix. That way you're not limited to only using torsocks. – JSEvans Oct 12 '20 at 15:27

In one server, configure Tor to provide the socks port locally. Then create a port on localhost with socat, which will redirect the connection through Tors socks port, so delivering it to the other server. E.g. Tor socks on 9050, other server at xyz.onion:6667

socat TCP4-LISTEN:4242,bind=,fork SOCKS4A:localhost:xyz.onion:6667,socksport=9050

The, you configure you ircd to connect to localhost:4242 in this example and not to the real address and socat will handle that.

If ircd need both to establish a connection to each other, perform the same steps on the other machine with the .onion of the first.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.