RealPath:
WebPath:
2017/01/13 02:40 (JST) 更新
各種サービス >>

ircd

Contents

クライアント

  • Chocoa
  • LimeChat

サーバインストール (yum)

bash
# yum install -y --enablerepo=epel ircd-hybrid

サーバインストール (ソースコードから)

bash
# wget http://prdownloads.sourceforge.net/ircd-hybrid/ircd-hybrid-8.2.21.tgz
# tar xzvf ircd-hybrid-8.2.21.tgz
# cd ircd-hybrid-8.2.21
# ./configure
# make
# make install
# cp /usr/local/ircd/etc/example.conf /usr/local/ircd/etc/ircd.conf

設定

必須設定

/etc/ircd/ircd.conf
havent_read_conf = 1; ← まずこの行を消す

サーバ情報

/etc/ircd/ircd.conf
serverinfo {
    name = "hades.arpa";
    ↓
    name = "192.168.10.139"; … クライアントが認識できるホスト名を入れる

    sid = "_CHANGE_ME_";
    ↓
    sid = "392"; … [0-9][A-Z0-9][A-Z0-9] という形式の3文字で指定。 (日本は392と決まっているらしい?)

    description = "hybrid-7 test server";
    ↓
    description = "test irc server"; … 適当な説明文

    max_clients = 512;
    ↓
    max_clients = 1024;
};

管理者情報

/etc/ircd/ircd.conf
admin {
    name = "Smurf target";
    description = "Main Server Administrator";
    email = "<kobake@hoge.local>"; … とりあえず連絡可能なメールアドレスを入れておくのが好ましい
};

ログ

デフォルトのままでも特に支障はない。

/etc/ircd/ircd.conf
log {
    use_logging = yes;

    fname_userlog = "logs/userlog";
    fname_operlog = "logs/operlog";
    fname_killlog = "logs/kill";
    fname_klinelog = "logs/kline";
    fname_glinelog = "logs/gline";

    /*
     * L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
    */
    log_level = L_INFO;
};

クラス設定

クラウド上に IRC サーバを置いて同じ組織内から複数人アクセスがあるような用途では number_per_ip は大きめにしておくと良い。

/etc/ircd/ircd.conf
class {
    name = "users";

    …

    number_per_ip = 2; … 同じIP からの最大接続数
    ↓
    number_per_ip = 50;

    max_local = 2; … よくわからんから変更なし。
    max_global = 10; … よくわからんから変更なし。

    max_number = 100; … 最大接続数
    ↓
    max_number = 200;

    …
};

クラス一覧

  • users
  • opers
  • server

リスン設定

/etc/ircd/ircd.conf
listen {
    port = 6665 .. 6669; … 変更なし

    flags = hidden, ssl; … 変更なし
    host = "192.168.0.1"; … 変更なし
    port = 6697; … 変更なし

    …
};

認証設定

/etc/ircd/ircd.conf
auth {
    user = "*@*";
    class = "users";
    // flags = need_ident; … ここをコメントアウトしておくと誰でも接続できるようになる
};

オペレーター設定

特にいじらなくても良さそう。

/etc/ircd/ircd.conf
operator {
    name = "god";
    ....
};

コメント書式

/etc/ircd/ircd.conf
# コメント
// コメント
/* コメント */

起動・停止等

bash
# service ircd status
# service ircd start
# service ircd stop
# service ircd restart

ircd 引数

bash
# ircd -help
Usage: /usr/local/sbin/ircd [options]
Where valid options are:
        -dlinefile  <string>            File to use for dline.conf
        -configfile <string>            File to use for ircd.conf
        -klinefile  <string>            File to use for kline.conf
        -xlinefile  <string>            File to use for xline.conf
        -logfile    <string>            File to use for ircd.log
        -pidfile    <string>            File to use for process ID
        -foreground                     Run in foreground (don't detach)
        -version                        Print version and exit
        -help                           Print this text

トラブルシューティング

「You haven't read your config file properly.」エラー

ircd.conf の havent_read_conf を削除(またはコメントアウト)していないと以下のようなエラーが出る。

bash
$ cat logs/ircd.log
[2009/4/25 17.46] You haven't read your config file properly.
[2009/4/25 17.46] There is a line in the example conf that will kill your server if not removed.
[2009/4/25 17.46] Consider actually reading/editing the conf file, and removing this line.

「ERROR Closing Link: ..... (Install identd)」エラー

「flags = need_ident;」をコメントアウトすると良い。

参考