Studio3104::BLOG.new

uninitialized constant Studio3104 (NameError)

WeeChat は IRC Bouncer にもなる

テキストベースの IRC クライアントとして有名な WeeChat ですが、IRC Bouncer としても使えることがわかり、使ってみたら大変によさそうであったので共有いたします。

旧環境

最近まではこんな感じで ZNC に IRC サーバに繋ぎっぱなしにさせて、クライアントが繋いできたときは設定された行数をプレイバックするみたいにして使っていた。

+--------------+    IRC     +---------+  IRC   +-------------+
| LimeChat(PC) | ---------> |+-------+| -----> | Company IRC |
+--------------+            ||  ZNC  ||        +-------------+
+------------------+  IRC   |+-------+|  IRC   +----------+
| LimeChat(iPhone) | -----> | Server  | -----> | freenode |
+------------------+        +---------+        +----------+

これだとちょっとダルい問題があって、PC からだとネットワークが切れて再接続されるたびにバッファプレイバックするので、直近で nick 呼ばれてたりするといちいち LimeChat が通知出して来てウザい。
iPhone からだと、細い回線下ではバッファの読み込みに超時間がかかってウザい。
かと言ってバッファを少なくし過ぎたり、バッファを残さないようにするとかだと利便性に欠いてしまうので大変ウザい。

新環境

そこでこのような構成にしてみた。
WeeChat はサーバの tmux 上で動いていて、 SSH してから tmux attach してから普通にクライアントとして使います。
最初は WeeChat のウラに ZNC を残しておいて、WeeChat も iPhone も ZNC に繋ぎに行くようにしようと考えていたけど、WeeChat に IRC Boucer としての機能があるとわかり、ZNC は落とした。

+----+        SSH           +-----------+  IRC   +-------------+
| PC | -------------------> |+---------+| -----> | Company IRC |
+----+                      || WeeChat ||        +-------------+
+------------------+  IRC   |+---------+|  IRC   +----------+
| LimeChat(iPhone) | -----> |   Server  | -----> | freenode |
+------------------+        +-----------+        +----------+

新環境のメリットとデメリット

ごく短期間使っただけの所感です。

  • メリット
    • 未読行だけバッファプレイバックする!!
      • ZNC のように、毎回設定された行を読みに行かない
        • iPhone からの利用で上述のようなイライラがない
      • バッファプレイバックに関しては特に設定不要
        • もちろん設定で制御することは可能
    • 集中力が保つようになった
      • LimeChat とターミナルの行き来は地味にダルい
      • ターミナルに集中出来ると、ダレずに作業出来る
      • マルチモニタにして片方に置いておくとかしなくていい
    • CLI でッターンしてるとなんとなくカッコいい感じがする
  • デメリット
    • NOTICE をプレイバックしない!!!!
      • コレは自分にとって結構致命的
      • ユーザーズガイド読んだけどよくわからんかった
      • 誰か知ってたら是非教えて欲しい
      • まぁでもバッファプレイバックを必要とするのは iPhone だけだし、WeeChat からはちゃんと見られるのでとりあえずはおkかな・・・
iPhone と WeeChat で未読が共有出来るのは本当に便利。

Relay の設定

接続先のサーバごとに待ち受けポートを変えるなど、いくつかやり方があるので、ユーザーズガイドを一読してからお試しになることをオススメいたします。
今回は SSL で接続し、ひとつのポートで待ち受けて、サーバパスワードで接続先サーバを区別する方法を紹介します。

  • 前提
    IRC サーバへの接続など、WeeChat を IRC クライアントとしてひと通り普通に使えるようにしておく必要があります。
    ここでは割愛します。クイックスタートガイドを読みましょう。

  • SSL 鍵作成

$ mkdir -p ~/.weechat/ssl
$ cd ~/.weechat/ssl
$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 3650 -out relay.pem
weechat: /relay sslcertkey
  • パスワードを設定
weechat: /set relay.network.password **********
  • リレー設定
weechat: /relay add ssl.irc 8000
  • クライアントの設定
    • SSL 有効
    • ポート 8000
    • サーバパスワード servername:password

おまけ

WeeChat に乗り換えてやったことを都度書くようにした。
- WeeChat を入れてやったことまとめ
オススメプラグインや設定などあれば、是非教えて下さい。
Enjoy IRC!!