Skip to Content
ZNC

ZNC IRC Bouncer

Advanced IRC bouncer that keeps you connected 24/7 with module support and a web admin panel

ZNC IRC Bouncer

ZNC is an advanced IRC network bouncer (BNC) that maintains persistent connections to IRC networks on your behalf. Unlike traditional IRC clients, ZNC acts as a proxy layer between you and IRC servers—staying connected 24/7, buffering messages when you’re offline, and allowing multiple clients to connect simultaneously while appearing as a single user on IRC.


What is ZNC?

ZNC is a lightweight, modular IRC bouncer that keeps you permanently connected to IRC networks. When you disconnect your IRC client, ZNC stays online and buffers all messages until you reconnect.

🔄 Always Connected

ZNC maintains persistent IRC connections 24/7, even when all your clients are offline

📝 Message Buffering

Never miss a message—ZNC stores chat history and plays it back when you reconnect

👥 Multiple Clients

Connect from desktop, laptop, and mobile simultaneously while appearing as one user

🧩 Module System

Extend functionality with modules for logging, notifications, SASL, and more

🌐 Web Administration

Configure networks, users, and modules through a built-in web interface

🔐 Secure Proxy

SSL/TLS support for both client connections and IRC server connections

ZNC vs IRC Clients

ZNC is not an IRC client—it’s a bouncer that sits between your IRC client and the IRC network. You still need an IRC client (like irssi, WeeChat, or HexChat) to connect to ZNC, which then connects to IRC networks on your behalf.


Installation

Prerequisites

Before installing ZNC, ensure your environment meets these requirements:

Symptoms

  • QuickBox Pro v3 installed and configured
  • Valid user account with appropriate permissions
  • Existing IRC client for connecting to ZNC
  • Understanding of IRC network configuration

Resolution

  • Install QuickBox Pro via standard installation process
  • Create user account with qb adduser command
  • Use any IRC client: irssi, WeeChat, HexChat, mIRC, etc.
  • ZNC web admin simplifies network setup after installation

Install ZNC

Install ZNC for a specific user:

qb install znc -u username

Per-User Installation

ZNC is installed per-user under /opt/<username>/ZNC. Each QuickBox user can have their own independent ZNC installation with separate configurations.

Automatic Installation Process

QuickBox performs comprehensive setup automatically:

  1. 📦 Compilation - Compiles ZNC from source into user-local prefix
  2. ⚙️ Configuration - Creates initial config with secure defaults
  3. 🔒 Service Setup - Configures per-user systemd service
  4. 🌐 Nginx Integration - Sets up reverse proxy for web administration
  5. 📁 Directory Structure - Creates config directories with proper permissions
  6. 💾 Automatic Backup - Creates initial configuration backup

CLI Commands

Basic Operations

CommandDescription
qb install znc -u usernameInstall ZNC with automatic configuration
qb reinstall znc -u usernameReinstall ZNC (preserves configuration)
qb update znc -u usernameUpdate to latest version
qb remove znc -u usernameRemove ZNC and clean up files

Usage Examples

Install ZNC:

qb install znc -u myuser

Update ZNC:

qb update znc -u myuser

Reinstall (fix corrupted installation while preserving data):

qb reinstall znc -u myuser

Remove ZNC and clean up:

qb remove znc -u myuser

Accessing ZNC

Web Administration

After installation, access the ZNC web admin through the QuickBox reverse proxy:

https://your-server/znc/

The web interface allows you to:

  • Add and configure IRC networks
  • Manage user accounts and permissions
  • Enable/disable modules
  • View connection status and logs

Connecting IRC Clients

Configure your IRC client to connect to ZNC instead of directly to IRC networks:

SettingValue
ServerYour server hostname or IP
PortAssigned during installation
Usernameusername/network (e.g., john/liberachat)
PasswordYour ZNC password
SSL/TLSEnabled (recommended)

Multiple Networks

To connect to a specific network, use the format username/network as your IRC username. For example, john/liberachat connects through user “john” to the network named “liberachat”.


Service Management

ZNC runs as a per-user systemd service:

Basic Service Commands

Check service status:

systemctl status znc@username

Start service:

systemctl start znc@username

Stop service:

systemctl stop znc@username

Restart service:

systemctl restart znc@username

View logs:

journalctl -u znc@username -f

Directory Structure

Application Files
/opt/USERNAME/ZNC
local/
├── bin/# ZNC executable binary
├── lib/# ZNC libraries and modules
└── share/# Web admin templates and skins
Configuration Files
/home/USERNAME/.config/ZNC
znc.pem# SSL certificate for secure connections
configs/
└── znc.conf# Main ZNC configuration file
moddata/# Module data and settings
users/# Per-user configuration directories

Troubleshooting

Common Issues

Service won’t start:

# Check service status and logs systemctl status znc@username journalctl -u znc@username -n 50 # Verify configuration directory exists ls -la /home/username/.config/ZNC/

Cannot access web admin:

# Check nginx configuration nginx -t systemctl reload nginx # Verify ZNC is listening ss -tlnp | grep znc

Client cannot connect:

# Verify service is running systemctl is-active znc@username # Check assigned port grep -i "port" /home/username/.config/ZNC/configs/znc.conf

Exit Codes

The installer returns exit code 2 when /opt/<username> is absent and 3 when /opt/<username>/ZNC is missing. Ensure the user exists and has proper home directory permissions.


Best Practices

Do

  • Run ZNC as a non-root QuickBox user
  • Enable SSL/TLS for both client and server connections
  • Use SASL module for automatic NickServ authentication
  • Configure buffer playback settings to avoid message floods
  • Keep modules minimal to reduce attack surface
  • Back up /home/<username>/.config/ZNC regularly
  • Use the QuickBox nginx proxy for secure web admin access

Don't

  • Don't run ZNC as root
  • Don't expose ZNC ports directly without SSL
  • Don't share ZNC credentials across multiple users
  • Don't install untrusted third-party modules
  • Don't disable the web admin SSL requirement

Additional Resources


💬

IRC Solutions

🔧

Automation


Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

Dedicated Support
Feature Previews
Community Configs
Active Discussions
Join Discord Server