Hidden IRC Server

Create a Private IRC Server Over Anyone (Ubuntu)

Why Combine IRC with Anyone?

IRC (Internet Relay Chat) is a minimalist, text-based chat protocol based on a client <–> server model. It's lightweight, stable, and perfect for rapid messaging.

The Anyone Network provides strong anonymity and privacy. When you host an IRC server accessible only via hidden service, neither your IP nor your location is revealed. Clients connect entirely over the Anyone Network, offering untraceable communication.

“Privacy is a human right,” and enabling private, encrypted chat aligns with that ideal.


IRC Server


Step 1: Setup Environment (Ubuntu 20.04+)

Start with a clean Ubuntu Server environment, either virtualized or on bare metal. Make sure you have root or sudo access.

Install the essentials:

. /etc/os-release
sudo wget -qO- https://deb.en.anyone.tech/anon.asc | sudo tee /etc/apt/trusted.gpg.d/anon.asc
sudo echo "deb [signed-by=/etc/apt/trusted.gpg.d/anon.asc] https://deb.en.anyone.tech anon-live-$VERSION_CODENAME main" | sudo tee /etc/apt/sources.list.d/anon.list

sudo apt update
sudo apt install inspircd anon --yes

This installs both the IRC server (InspIRCd) and the Anon utility.

Step 2: Prepare InspIRCd

  1. Stop the service:

sudo systemctl stop inspircd.service
  1. Backup default configuration.

sudo mv /etc/inspircd/inspircd.conf /etc/inspircd/inspircd.conf.bak
  1. Bind only to localhost, clients will connect via Anon, not the public internet.

sudo echo '<bind address="127.0.0.1" port="6667" type="clients">' | sudo tee /etc/inspircd/inspircd.conf
  1. Start and check status of the service:

sudo systemctl start inspircd.service
sudo systemctl status inspircd.service

It should be listening on 127.0.0.1:6667 and be operational.

Step 3: Enable the Hidden Service

Backup /etc/anon/anonrc and create a hidden service pointing to your local IRC port:

sudo mv /etc/anon/anonrc /etc/anon/anonrc.bak
sudo echo -e "HiddenServiceDir /var/lib/anon/hidden_service/\nHiddenServicePort 6667 127.0.0.1:6667" | sudo tee /etc/anon/anonrc

Restart the anon.service .

sudo systemctl restart anon.service

Find your Hidden Service .anon hostname, which will work as the address for the IRC server, accessible through Anyone.

sudo cat /var/lib/anon/hidden_service/hostname

Clients will use this address to connect. Install a client to test it!


(Optional) Key Enhancements to Tighten Privacy

These are privacy choices that reduce intelligence leakage about the network and users.

  • Bind only to localhost, denying all public access.

  • Require a shared secret (password) for connection to avoid unauthorized access.

<bind 
address="127.0.0.1"
port="6667"
type="clients"
>

<connect
allow="127.0.0.1"
password="SecretPassword"
>
  • Hide server metadata (e.g., version, host, stats) to reduce fingerprinting.

<server
name="irc.anon"
description="Private Hidden IRC Server"
network="HiddenNet"
>

<security 
hideserver="yes"
customversion="irc-server"
flatlinks="yes"
hidesplits="yes"
hideulines="yes"
hidebans="yes"
maxtargets="5"
>
  • Disable DNS lookups and logging, minimizing metadata leakage.

<dns 
server=""
timeout="0"
>

# or set it to anon
<dns 
server="127.0.0.1" 
timeout="5"
>
  • Limit user history (WhoWas), channel visibility, and splat targets.

<whowas
groupsize="0"
maxgroups="0"
maxkeep="0"
>

Consider adding a Message of the Day (MOTD) and Administrator information:

<admin
name="Admin"
nick="admin"
email="admin@localhost"
>

<files
motd="/etc/inspircd/inspircd.motd"
>

Example /etc/inspircd/inspircd.motd:



      **************************************************
      *          A    N    Y    O    N     E           *
      *  This is a private irc server. Please contact  *
      *  the admin of the server for any questions or  *
      *  issues.                                       *         /$$
      **************************************************        |__/
  /$$$$$$  /$$$$$$$  /$$   /$$  /$$$$$$  /$$$$$$$   /$$$$$$      /$$  /$$$$$$
 |____  $$| $$__  $$| $$  | $$ /$$__  $$| $$__  $$ /$$__  $$    | $$ /$$__  $$
  /$$$$$$$| $$  \ $$| $$  | $$| $$  \ $$| $$  \ $$| $$$$$$$$    | $$| $$  \ $$
 /$$__  $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$| $$_____/    | $$| $$  | $$
|  $$$$$$$| $$  | $$|  $$$$$$$|  $$$$$$/| $$  | $$|  $$$$$$$ /$$| $$|  $$$$$$/
 \_______/|__/  |__/ \____  $$ \______/ |__/  |__/ \_______/|__/|__/ \______/
                     /$$  | $$
                    |  $$$$$$/
                     \______/


IRC Client

How to connect an IRC client to the Private Hidden IRC Server.

Install an IRC client

Ubuntu Linux Terminal Ubuntu Linux Desktop


Ubuntu Terminal (Linux CLI)

  1. Install weechat.

sudo apt install weechat
  1. Start Weechat

weechat
  1. Add a server:

(Change the address to your own hostname.anon address)

/server add anyone 55xt22bcdg6w7d26xf6eix6r33vgy34b4qoicm4z6zep63ebbm24gxad.anon/6667 -autoconnect -notls
  1. Set your nickname on the server:

/set irc.server.anyone.nicks ANyONe
  1. Add a proxy:

/proxy add anon socks5 127.0.0.1 9050
  1. Set the proxy to use for the server:

/set irc.server.anyone.proxy "anon"
  1. Connect to the server:

/connect anyone
  1. Join a channel

/join #anyone

Part from a channel:

/part #anyone

Switch windows:

Use Alt + 1 or 2 to change windows back to the "server" window.

See /help for more information on how to manage and handle weechat: /help server /help proxy /help set /help connect /help disconnect /help part /help quit

Disconnect:

/disconnect

Quit:

/quit

Ubuntu Linux Desktop

Install HexChat with a terminal:

sudo apt install hexchat

Start HexChat with the terminal or find it with your other desktop applications.

hexchat

Set Proxy Server in HexChat Preferences

Open Settings > Preferences > Network - Network setup.

Proxy Server Hostname: 127.0.0.1 Port: 9050 Type: SOCKS5 OK to Save.

Disable Logging

Join a channel with this command:

/join #anyone

Invite some friends

Last updated