ZNC

From Amahi Wiki
Jump to: navigation, search

tags: IRC Chat mIRC bounce Chatzilla server

ZNC is an IRC bounce with many advanced features such as a built-in web interface, persistent connection (detaching), multiple users, per channel playback buffer, SSL, IPv6, transparent DCC bouncing, and c++ module support, to name a few.

About ZNC in Amahi

  • Currently LIVE in Amahi.
  • The application makes use of your HDA first admin user. To log in to the web interface, enter that user name and the password is admin. You can change the password once logged in to anything you desire.
  • Once the application is installed, you are automatically connected to the IRC for the server irc.freenode.net. This setting can be turned off via the web interface if you do not want to autoconnect when ZNC is started.
  • ZNC appears in the Servers tab so you can stop, start, and restart as needed.

SSL Configuration

To enable SSL support, some manual configuration must be done (Required znc.pem certificate is pre-installed; it can be regenerated by following Generate a Certificate).

  • As root user, install one dependency:
Bash code
​yum -y install mod_ssl​
  • Change the line in /etc/httpd/conf.d/####-znc.conf to read (replace #### with the number in your file name):
bash code
​RedirectPermanent / https://znc:26244​
  • Restart the web server:
Bash code
​service httpd restart​
  • Modify the line in /home/username/.znc/config/znc.conf to read:
Text
​Listener4 = +26244​
  • Restart ZNC:
Bash code
​service znc restart​
  • Access the web console via https://znc:26244
  • All connections with IRC clients will be SSL. When you add new servers, ensure you precede the port number with a +. The default server on install is already set for SSL communication.


NOTE: See ZNC Configuration for more guidance on customization.

Generating a Certificate

You can use the following openssl commands to generate a certificate:

bash code
​openssl req -nodes -newkey rsa:2048 -keyout znc.key -x509 -days 365 -out znc.crt cat znc.crt znc.key > znc.pem​

Copy this file to your /home/username/.znc directory (replace username with your first admin user name), overwriting the current one if needed.


NOTE: See ZNC Cert for more guidance on certificates.

IRC Client Setup

mIRC

  • When using the mIRC client you will need to connect to ZNC using the following command:
mirc code
​/server -m <yourHdaIp> -p 26244 -g gZNC -w <username>:<password> -d ZNC​


Option Description
<yourHdaIp> The ip address of the HDA where you installed ZNC
<username> Username that's configured to connect to a channel
<password> Password for the username that's configured to connect to a channel


  • When using mIRC in Windows, go to the options page. Select Server and choose Add. The following window will open:

 


Option Value
Description ZNC
IRC Server HDA IP
Port 26244
Group ZNC
Password ZNC <username>:<password>


Chatzilla (FireFox Add-on)

After installation of Chatzilla Add-on you can enter the following in your browsers address bar:

Link
​irc://<YouHdaIp>:26244/<channel>/?pass=<ZncUser>:<ZncUserPass>

or

Link
​irc://<YourHdaIp>:26244/,needpass?pass=<ZncUser>:<ZncUserPass>

or SSL

Link
​ircs://<YourHdaIp>:26244/,needpass?pass=<ZncUser>:<ZncUserPass>

Client Commands

Commands are given to ZNC by messaging the virtual user *status. Likewise, modules are communicated to by messaging *modname as well. Alternatively you can use /znc command instead of /msg *status command and /znc *module command instead of /msg *module command.

Command Arguments Description
Version Prints which version of znc this is
ListDCCs List all active DCCs
ListMods List all loaded modules
ListAvailMods List all available modules
ListChans List all channels
ListNicks <#chan> List all nicks on a channel
ListServers List all servers
AddServer <host> [[+]port] [pass] Add a server to the list
RemServer <host> Remove a server from the list
Enablechan <#chan> Enable the channel
Detach <#chan> Detach from the channel
Topics Show topics in all channels
PlayBuffer <#chan> Play back the buffer for a given channel
ClearBuffer <#chan> Clear the buffer for a given channel
ClearAllChannelBuffers Clear the channel buffers
SetBuffer <#chan> [linecount] Set the buffer count for a channel
SetVHost <vhost (ip preferred)> Set the VHost for this connection
ClearVHost Clear the VHost for this connection
Jump Jump to the next server in the list
Disconnect Disconnect from IRC
Connect Reconnect to IRC
Send <nick> <file> Send a shell file to a nick on IRC
Get <file> Send a shell file to yourself
LoadMod <module> Load a module
UnloadMod <module> Unload a module
ReloadMod <module> Reload a module
ShowMOTD Show the message of the day
SetMOTD <Message> Set the message of the day
AddMOTD <Message> Append <Message> to MOTD
ClearMOTD Clear the MOTD
Rehash Reload znc.conf from disk
SaveConfig Save the current settings to disk
ListUsers List all users/clients connected to znc
ListClients [User] List all clients connected to your znc user
Traffic Show basic traffic stats for all znc users
Uptime Show how long ZNC is already running
Broadcast [message] Broadcast a message to all users
Shutdown [message] Shutdown znc completely
Restart [message] Restarts znc


NOTE: Go here for guidance on how to use ZNC modules.

Troubleshooting

Can't connect to server (No route to host)

If ZNC can't connect to a IRC server with the message:

Attempting to connect to [chat.freenode.net +7000] ...
Disconnected from IRC (No route to host).  Reconnecting...

You could try using the IP address of the server you are trying to connect to. For chat.freenode.net this IP is: 140.211.166.3

  • Go to your ZNC webadmin page
  • Login using your username and password
  • Click on "Your Settings"
  • Edit the server name in the Servers: text box.

ZNC will pickup this new server name the next time trying to connect (wait a minute or so).

Install Fails

If you have installed ZNC multiple times without success, perform the following as root user:

bash code
​yum -y erase znc*​
  • Once the RPMs have been removed, perform install.
  • Check /var/log/amahi-app-installer.log for details.