tiarraをやめてzncにしてみた
Limechatのサーバー設定をいじってる時に、ふとSSL Optionが気になった。tiarra+stoneでやってみるかーと思ってyum search stoneしたところ、見つからない。ソースから入れるかなと思い、openssl-develを入れようとyum search sslしたところ、最下行に
znc.x86_64 : Advanced IRC bouncer
とかいうのを発見。これらしい。
SSL Support Encryption for both the listen port and connecting to IRC servers. If your system has OpenSSL, ZNC automatically supports SSL connections.
公式に、↑と書いてあった。せっかくなのでこっちを入れてみることにする。
Installはyumで。SakuraVPSのCent5.5だと、EPELにパッケージがあるらしいので、さくっと追加。
$ rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm $ sudo yum install znc znc-extra
installはあっさり終わる。
設定にいくまえに注意。zncとtiarraの最大の差が、zncには複数のネットワークを1つにまとめる機能がない事。つまり、これまでtiarraで、
#aaa@freenode, #bbb@freenode, #aaa@ircnet, #bbb@ircnet
みたいにやってたアレができない。が、zncは1プロセスで複数ユーザーが接続出来るのでそれで代用可能。
freenodeとircnetの2つにつなぐ場合は、hideden-freenode, hideden-ircnetのように2つのユーザーを作成するようにする。1つのユーザーには、1つのnetworkのサーバーのみを指定するようにする。
zncを--makeconfオプション付で起動するとウィザードが始まる。nickやらpasswordやらいろいろ聞かれるので主なところを以下に。
$ znc --makeconf # portは適当に [ ?? ] What port would you like ZNC to listen on? (1 to 65535): 6668 # 今回、SSLが目的なので当然yes [ ?? ] Would you like ZNC to listen using SSL? (yes/no) [no]: yes # pemを自動で作ってくれてとても楽。 [ ?? ] Would you like to create a new pem file now? (yes/no) [yes]: yes # global moduleはとりあえず全部noで。 [ ?? ] Load global module <partyline>? (yes/no) [no]: [ ?? ] Load global module <webadmin>? (yes/no) [no]: # usernameはircクライアントのLoginNameとして設定する [ ?? ] Username (AlphaNumeric): hideden-freenode # passwordはサーバーパスワードになる [ ?? ] Enter Password: # adminにしとくと、そのアカウントから色々できる [ ?? ] Would you like this user to be an admin? (yes/no) [yes]: yes # 接続してない時に流れるログの保存行数。チャンネルごと。 [ ?? ] Number of lines to buffer per channel [50]: # yesにすると、接続するたびに保存されてるログがplaybackされる。noだと未読のが1回出るだけ。 [ ?? ] Would you like to keep buffers after replay? (yes/no) [no]: yes # ircクライアントから色々管理するやつ。とりあえずこのモジュールだけ入れる。 [ ?? ] Load module <admin>? (yes/no) [no]: yes # 1つのユーザーには1つのnetworkのサーバーしか登録しない。別networkの場合はこの後、別のユーザーをつくる。 [ ?? ] IRC server (host only): irc.freenode.net
これで、~/.znc/config/znc.conf ができる。
コンソールから
$ znc
で起動。勝手にbackgroundに回って常駐する。
さっそくLimechatなどのircクライアントから接続。port, login name, server passwordは設定したものを指定。SSLをyesにした場合はSSLも有効に。login nameにzncでつくったuserを指定することで、接続先をわけられる。作成したユーザー分、サーバーを追加する。
tiarraの#aaa@freenodeも悪くはないのだが、もともとirc的に若干無理があってLimeChatからTalk送るときなどに不便。zncのこっちの方が自然で便利かも。今どきのクライアントで複数サーバー未対応なものは少ないし。
zncにも、tiarraと同じく色々Moduleがあるので、ここから探して使うと便利。
もともとtiarraでもlogとってるくらいだったので、今のところlog, keepnick, nickservくらいしか使ってない。
moduleの追加は、ircクライアント上から
/znc LoadModule MODULENAME # log moduleの場合 /znc LoadModule log # charset moduleの場合 /znc LoadModule charset IRCクライアントの文字コード サーバーの文字コード
とやるだけ。configファイルを直接いじる場合は、
/znc SaveConfig ... ~/.znc/config/znc.conf を編集 ... /znc Rehash
とやる。logモジュールの場合、特に設定もなくloadするだけですべてのチャンネルのlogが
~/.znc/users/hideden-free/moddata/log/#channel_YYYYMMDD.log
に保存される。もろもろのコマンドは
/znc help ( or /msg *status help ) /msg *admin help
で出てくる。
tiarraに特に不満はなかったものの、
- 設定ファイルが簡潔
- SSL対応
- Moduleが結構豊富
- 1プロセスで複数ユーザーを使える
- Moduleを書くのにperlを使えるらしい(modperlモジュール)
- talkするときに不便じゃない
と、いい感じなのでこのまま乗り換えることにした。