Community site: login faq

All the cool kids at my office have Linodes running ZNC to keep them on IRC. Is it possible to this with a shared hosting account with Webfaction? And would it violate the EULA (or whatever I agreed to when I signed up)?

asked 28 Dec '11, 19:56

accept rate: 0%

what are the cool kids using this for? curious. ;)

(21 Dec '12, 08:41) Prajwal

Yes, you can run ZNC on webfaction - the only requirement is that it's used privately (you or a group of people you know) and isn't used for malicious purposes.

You will use the server's Open-Ports IP address (free) or a Dedicated IP Address to connect to the ZNC server. Alternatively, you could use an SSH tunnel. Both of these methods are described below.

An open-ports IP address will be added to your account automatically after creating a "Custom Application (listening on port)", and then selecting that application and marking it as having an Open Port in the applications list. You can see your server's Open Ports IP from the Control Panel dashboard and you'll use that in place of OPENPORTS_IP in the instructions below.

Installing ZNC

First, create a Custom Application (Listening on Port) in the Control Panel. It will be used only to reserve the ZNC port. Note the port assigned by the Control Panel - we will call it PORT and use a value of 33333 in this example.

Next, edit the above application and mark Open Port. Then note your Open Ports IP address - we will call it OPENPORTS_IP and use a value of in this example. If you would rather connect through an SSH tunnel, use instead, and note the special steps at the end of the guide for using an SSH Tunnel.


# install znc. Original: http://znc.in/releases/znc-1.6.3.tar.gz
mkdir -p $HOME/znc/src
cd $HOME/znc/src
wget 'http://mirror.ryansanden.com/znc-1.6.3/znc-1.6.3.tar.gz'
tar -xzf znc-1.6.3.tar.gz
cd znc-1.6.3
./configure --prefix=$HOME/znc
make && make install

Configuring ZNC

# generate config
cd $HOME/znc/bin
./znc --makeconf

# answer the questions:
# [ ?? ] Listen on port (1025 to 65534):                    33333            # use your PORT
# [ ?? ] Listen using SSL (yes/no) [no]:                    yes
# [ ?? ] Listen using both IPv4 and IPv6 (yes/no) [yes]:    yes
# [ ?? ] Username (alphanumeric):                           myuser           # this is the admin user
# [ ?? ] Enter password:                                    some_password    # It's stored as a hash inside of ~/.znc
# [ ?? ] Nick [myuser]:                                     myuser
# [ ?? ] Alternate nick [myuser_]:                          myuser_
# [ ?? ] Ident [myuser]:                                    myuser
# [ ?? ] Real name [Got ZNC?]:                              Me               # Whatever you want (visible to others)
# [ ?? ] Bind host (optional):                        # use your OPENPORTS_IP . If you'd rather use a tunnel, enter instead
# [ ?? ] Set up a network? (yes/no) [yes]:                  no
# [ ?? ] Launch ZNC now? (yes/no) [yes]:                    yes
  • Accept defaults. You can enable modules later from the webadmin (and there is a better selection)
  • Next, add your IRC servers. The passwords are not stored encrypted (that would be impossible).
  • For IRC Channels, include the hash; use channel #foo instead of foo
  • Choose to launch ZNC

Accessing the ZNC Admin

open in a web browser (substituting with your OPENPORTS_IP:PORT).

Accept the (self-signed) SSL certificate and login with your ZNC admin username and password.

I enable the following modules:

  • buffextras
  • keepnick

Connecting to your ZNC

Set your IRC Client to use:

Server:         # use your OPENPORTS_IP
Port:     33333                 # use your PORT
Username: myuser                # use your znc username
Password: myuser:some_password  # note the "user:pass" format
Encoding: UTF-8
Use SSL:  True

Keeping ZNC up and running

Add this line to your crontab:

0,20,40 * * * * $HOME/znc/bin/znc > /dev/null 2>&1

ZNC won't start again if it's already running, so this is safe.

Using an SSH Tunnel (if you don't have a dedicated IP)

  • Use for the IP address in the ZNC configuration. (ZNC must bind to
  • Use the server's Shared IP instead of the Dedicated IP in all other locations above
  • Create an SSH tunnel exactly as for a remote connection to a database
  • Except, instead of using port "3306" or "5432" for the tunnel, use your PORT from above (ex: "33333").
  • Access your Web Admin from
  • When connecting to your ZNC, use a "Server" value of "" in your IRC client.
  • You can only connect to your local IRC client to the ZNC server while the tunnel is open
  • ZNC will remain connected to the IRC server at all times irrespective of the tunnel
permanent link

answered 28 Dec '11, 22:23

ryans ♦♦
accept rate: 43%

edited 30 Nov '16, 01:19

It didn't work for me using the shared IP, but using did.

(08 Jan '12, 04:14) spacetime

Correct - you cannot use the shared IP. You can only use a dedicated IP with an open port, or else use with a tunnel.

(09 Jan '12, 07:08) ryans ♦♦

Why I'm unfamiliar with SSH tunnels, hence the question.

(13 Jan '12, 15:18) nthdegreeburns

Because your IRC client is connecting to the tunnel, which is running on your local system ( == localhost).

(13 Jan '12, 15:56) seanf

I'm trying to get this running, but when I try to connect to the web admin (using an SSH tunnel) in Google Chrome it gives me the following SSL connection error:

Unable to make a secure connection to the server. This may be a problem with the server, or it may be requiring a client authentication certificate that you don't have. Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error.

(02 Apr '12, 18:22) dougwt

The problem was the Listen Host in the ZNC configuration. If you don't have a dedicated IP address or open port, then you would use as the IP address for ZNC to bind to.

I have also updated the guide to explain this more clearly. Thanks!

(02 Apr '12, 19:55) ryans ♦♦
showing 5 of 6 show 1 more comments
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 28 Dec '11, 19:56

question was seen: 3,992 times

last updated: 30 Nov '16, 01:19