October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk12 min

How to Install ZNC, an IRC Bouncer, on a Linux VPS

A complete guide to installing ZNC on a Linux VPS, from apt installation and non-root configuration to TLS, systemd, IRC network setup, client authentication, source builds, backups, and troubleshooting.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install ZNC from your Debian or Ubuntu package repository, create its configuration as a non-root service account, enable the systemd unit, secure the listener with TLS, and then point any IRC client at the VPS. ZNC keeps the upstream IRC connection online while your clients disconnect, so you can reconnect later and see the session through one endpoint.

What ZNC does on a VPS

ZNC is an IRC bouncer and proxy daemon. It maintains a connection from your VPS to one or more IRC networks and exposes a separate listener for your IRC clients. When your desktop or mobile client disconnects, ZNC can keep the upstream sessions and joined channels alive. When you reconnect, you authenticate to ZNC and resume through the same endpoint instead of connecting directly from your changing IP address.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ubuntu’s manual describes znc as a daemon that connects to an IRC server and lets a workstation connect as the user already logged in to that server. Debian describes it as an advanced bouncer that can maintain permanent connections to several networks and channels while clients disconnect and reconnect. ZNC therefore has two distinct connections to configure:

  • Upstream: ZNC to the IRC network, including the network’s server address, port, TLS choice, password, and possibly SASL settings.
  • Downstream: Your IRC client to the ZNC listener on the VPS, using the ZNC account credentials.

The VPS must stay powered on and reachable for the bouncer to preserve the upstream session. ZNC does not make an IRC network available when that network itself is down, and it does not remove the need to follow the network’s registration, password, and connection policies.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Requirements and decisions before installing

  • A supported Debian or Ubuntu VPS with administrator access through SSH.
  • A separate, non-root account for the ZNC process or the service account created by the distribution package.
  • A DNS name if you intend to use a trusted TLS certificate. You can initially test with the VPS address, but a certificate normally needs a hostname.
  • A firewall plan that keeps SSH available and exposes only the ZNC listener port to the clients that need it.
  • The upstream IRC network’s server hostname, port, TLS requirement, account password, SASL details if required, nickname, and channels.

Keep your current SSH session open while changing firewall rules. Test a second SSH session before closing the first one. Listener ports and firewall commands differ between VPS providers and distributions, so use the firewall mechanism supplied by your host and permit only the port you choose for ZNC.

Package installation versus a source build

For a normal Debian or Ubuntu VPS, the distribution package is the practical choice: upgrades, service integration, file ownership, and security updates follow the operating system. Build from source only when you need a custom installation prefix or a feature that your distribution package does not provide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Decision Distribution package Source build
Installation path sudo apt install znc Official CMake, make, and make install workflow
Service model Packaged systemd unit with a dedicated service account and /var/lib/znc data directory on Debian’s unit You must design and maintain the service, data directory, account, and startup method
Updates Arrive through normal Debian or Ubuntu package updates Rebuild and reinstall the custom prefix when you choose a new source version
When it fits Most VPS installations and simpler maintenance Custom prefix, custom compile-time options, or a package that lacks a needed feature

Package versions change with the distribution release. The Ubuntu Noble package page lists ZNC 1.9.0-2build3 for Ubuntu 24.04 LTS. Debian’s stable package page lists 1.9.1-2, with updates shown on that page. These are repository versions for those distributions, not a promise that every Debian or Ubuntu release carries the same build.

Install ZNC from Debian or Ubuntu repositories

  1. Update package metadata. Connect over SSH and run:
    sudo apt update
  2. Install ZNC.
    sudo apt install znc

    Accept the package and its dependencies when prompted. Confirm the binary is available with znc --version if you want to record the installed version.

  3. Check the packaged service definition. Before creating the production configuration, inspect the unit and its account:
    systemctl cat znc
    systemctl show -p User,ExecStart,After znc

    Debian’s documented unit starts ZNC in the foreground with --datadir=/var/lib/znc, runs it as user znc, and orders startup after network.target. Package revisions can differ, so treat the unit installed on your VPS as authoritative.

Create the first configuration without root

The interactive configuration command is znc --makeconf. Do not run the daemon as root. The manual exposes --allow-root only as an override; using that override gives an Internet-facing IRC service more privileges than it needs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Per-user configuration

If you are running a per-user daemon rather than the packaged system service, switch to the dedicated non-root account that will own the configuration and run:

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
znc --makeconf

The resulting data directory and files belong to that account. You are responsible for starting this instance at boot, for example with your own service definition or user-session mechanism.

Debian’s packaged data directory

For Debian’s packaged daemon, the Debian guide creates the configuration in /var/lib/znc as the package’s service account before enabling systemd. On systems where that setup account is named _znc, the command is:

sudo -u _znc znc --makeconf --datadir=/var/lib/znc

Then inspect the installed unit to confirm the runtime account. Some package revisions show User=znc even though the configuration walkthrough uses _znc. The account that runs the service must be able to read and write the data directory and certificate. If the names differ on your release, follow the unit’s User= value and the package’s ownership conventions rather than copying ownership commands from another release.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Answers to the interactive prompts

The exact wording can vary by ZNC version, but the first-run wizard asks for the values needed to create a listener, an administrator account, and at least one network. Plan these answers before starting:

  • Listener address and port: Bind to the interface you intend to expose and choose a dedicated TCP port. If the wizard offers a loopback-only option, use it only when a separate reverse proxy or tunnel will be the public endpoint.
  • SSL/TLS: Enable SSL for clients connecting across the Internet. Record the port separately from any plaintext listener you may retain for local testing.
  • ZNC username and password: These credentials authenticate your IRC client to ZNC. They are not automatically the same as your password on an upstream IRC network.
  • IRC nickname, ident, and real name: Supply the identity you want ZNC to present upstream. The network may enforce its own nickname or registration rules.
  • Network and server: Enter the IRC network name and the upstream server hostname and port. Use the network’s TLS port when it requires encrypted upstream connections.
  • Channels: Add channels that ZNC should join for this network. You can change the list later through WebAdmin or IRC commands.
  • Network authentication: Enter an upstream password or configure SASL when the network requires it. Keep this separate from the ZNC login you give to your client.

After the wizard writes the configuration, do not paste the file into tickets or public repositories. It can contain account credentials and network secrets.

Enable and inspect the systemd service

Once the configuration exists in the data directory named by the unit, enable ZNC at boot and start it:

sudo systemctl enable --now znc

Check both the unit state and its recent journal output:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
sudo systemctl status znc
sudo journalctl -u znc -e

A healthy service remains active and listens on the configured port. If the unit starts before the network is usable, the packaged ordering after network.target normally gives the daemon a basic network dependency, but an upstream IRC server can still be unreachable temporarily. Examine the journal rather than repeatedly starting the service.

Secure the listener with TLS

ZNC supports SSL/TLS for client connections and can generate a PEM file with:

znc --makepem

Run the command as the account that owns the ZNC data directory, adding the appropriate --datadir=/var/lib/znc option for a packaged instance. Debian’s default setup uses a self-signed certificate. That is useful for initial encryption testing but normally causes a trust warning in an IRC client.

For an Internet-facing VPS, replace the self-signed certificate with a certificate trusted for the DNS name clients use. The certificate and private key are commonly stored together in ZNC’s znc.pem; restrict the file to the service account and make sure backups are protected. A trusted certificate does not authenticate users by itself: clients still need the ZNC username and password.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Firewall exposure

Allow only the chosen TLS listener port through the VPS firewall and any provider-level firewall. Do not expose an unused plaintext listener. Keep SSH permitted, and if you use WebAdmin, limit its exposure according to your access plan rather than opening every port on the VPS. After applying rules, test a new client connection from the network where you will actually use IRC.

Add networks and channels after the service starts

ZNC can be configured through its WebAdmin module or through IRC commands. The web interface is convenient for adding networks and modules; IRC commands are useful when the web listener is not exposed.

Configure each upstream network

  1. Create a network entry with a clear name that your client can recognize.
  2. Add one or more upstream server hostnames and the correct port. Select TLS for the upstream connection when the network requires or recommends it.
  3. Enter the network password or SASL settings exactly as supplied by the network operator.
  4. Set the nickname, ident, and real name that should be used on that network.
  5. Add channels and choose whether ZNC should join them automatically when it connects.
  6. Save the network and watch the ZNC status or client notices for connection and authentication errors.

ZNC’s global modules apply across networks, while per-network modules and settings apply only to the selected network. Enable only the modules you understand; each module can change commands, logging, playback, or authentication behavior.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

Connect an IRC client to ZNC

In your IRC client’s server settings, enter the VPS hostname and the ZNC listener port. Select TLS when you enabled an SSL listener, and configure certificate validation according to the certificate you installed. The client should treat ZNC as the IRC server; ZNC then connects to the configured upstream network.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The official ZNC documentation shows the server-password form as:

username:password

Use the ZNC username and password in that server-password field if your client supports it. Some clients offer separate username and password boxes; in that case, enter the username normally and use the password field for the ZNC password, following the client’s own syntax. Do not put the upstream network password in the client field unless your ZNC configuration specifically requires that method.

If you configured multiple networks, the client may use a network-qualified username or a server selection field, depending on the client. Follow the ZNC account and network naming shown by your configuration rather than assuming every client handles network selection identically.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Build ZNC from source when the package is not enough

A source build is appropriate when you need a custom installation prefix or functionality not present in the repository package. It also creates more maintenance work: you must track source releases, rebuild after updates, preserve configuration ownership, and provide your own service integration.

  1. Install the compiler, CMake, and the development libraries required by the ZNC release on your target distribution.
  2. Obtain the ZNC source for the version you have chosen and review its build requirements.
  3. Create a separate build directory and configure it with CMake. A typical custom-prefix workflow is:
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/znc
make
sudo make install

The exact CMake options depend on the source version and the features you need. Keep the custom prefix separate from files managed by apt, and record the options used so a later rebuild is reproducible.

  1. Create a dedicated non-root runtime account and a data directory outside the source tree.
  2. Run znc --makeconf from the installed binary as that account, then create a systemd service that starts the binary in the foreground with the selected data directory.
  3. Set the service’s User=, data-directory permissions, restart policy, and network ordering deliberately. Test the unit with systemctl status and journalctl just as you would for the distribution package.

Do not mix a source-built binary with the distribution unit or package-owned data directory without checking paths and ownership. An upgrade can otherwise start a different binary than the one you tested.

Operate, reload, and troubleshoot ZNC

Service will not start

Start with:

sudo systemctl status znc
sudo journalctl -u znc -e

Look for a malformed configuration, an occupied listener port, a missing data directory, or a permission error reading znc.pem. Confirm the unit’s ExecStart, User, and --datadir values, then check that the runtime account can access every file in that directory.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The port is unreachable

Verify that ZNC is listening on the address and port selected in the configuration, that the VPS firewall and provider firewall allow that port, and that the client is using the same TLS or plaintext mode. A listener bound only to loopback cannot be reached directly from the Internet.

TLS certificate warnings or handshake failures

A self-signed certificate is expected to trigger a trust warning. Install a trusted certificate for the hostname entered in the client, reload or restart ZNC after replacing the PEM file, and confirm the private key remains readable by the service account. If the client still fails, check that it is using the TLS listener port rather than a plaintext one.

Authentication is rejected

Distinguish the ZNC login from upstream IRC credentials. Recheck the ZNC username and password, and use the documented username:password server-password form when your client supports it. If ZNC accepts your login but the network disconnects you, inspect the network’s password, SASL settings, nickname registration, and upstream port separately.

ZNC connects but does not join channels

Check that the network is enabled, the channel name is exact, and the upstream account is allowed to join it. Review network notices in the client and verify that automatic-join settings were saved for the correct network rather than only as a global preference.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Foreground diagnostics and signals

For a manual diagnostic run, the ZNC manual documents -f and -D for foreground and debug operation. Stop the systemd instance first so two processes do not compete for the same port. The manual also documents SIGUSR1 to rewrite the configuration and SIGHUP to reload it. Use signals only when you understand the configuration change and have a backup.

Backups, upgrades, and ongoing security

  • Back up the data directory: Include the ZNC configuration, network settings, and znc.pem. Store the backup somewhere with access controls because it can contain passwords and a private key.
  • Update the operating system: For package installs, apply Debian or Ubuntu security updates and review ZNC package changes before restarting.
  • Rebuild source installs: Keep the source version, CMake options, install prefix, service file, and configuration backup together so you can reproduce the installation.
  • Minimize exposure: Keep only the required listener reachable, use TLS for remote clients, and avoid running ZNC as root.
  • Rotate credentials after exposure: If the configuration, PEM file, or ZNC password is disclosed, change the affected ZNC and upstream credentials and replace the certificate as appropriate.
  • Monitor service health: Check systemd status and journal messages after reboots, package upgrades, certificate replacement, and firewall changes.

Version and documentation notes

Distribution package versions and service-unit details are tied to the release you install. Ubuntu 24.04 LTS, codenamed Noble, lists ZNC 1.9.0-2build3; Debian stable lists 1.9.1-2 with updates displayed on its package page. ZNC API documentation pages identify generated documentation for version 1.9.8; that metadata describes the documentation set and should not be treated as proof that 1.9.8 is the newest release available for your VPS.

Before a production rollout, check the package page and the ZNC documentation for your exact distribution release. Dependencies, unit-file account names, certificate defaults, and upstream release status can change even when the basic installation command remains the same.

Recommended installation path

For most Linux VPS users, install the repository package, create the configuration in the package’s data directory as its non-root account, inspect the systemd unit, enable the service, and secure the listener with a trusted certificate. Use a source build only when the package’s version or feature set is a deliberate limitation you are prepared to maintain yourself.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.