IRCサーバ

2008.6.21

 何故だか調べる気もしないが、cibiaku だけが接続していてping に応答しない。chibiaku は他のサーバでは様子がちょっと違うかもしれない。pongで応答しないからサーバが切断する。ほとんどのユーザがやるように、チャットのソフトでは切断されたら、すぐ再接続するように設定してある。だからチャットをしていないと2分毎に切断、再接続を繰り返す。わずらわしい。

/usr/local/etc  の ircd.conf の Pongtimeout を書き換えてみた。デフォルトでは20、すなわち20秒だ。

# After <PingTimeout> seconds of inactivity the server will send a
	# PING to the peer to test whether it is alive or not.
	;PingTimeout = 120

	# If a client fails to answer a PING with a PONG within <PongTimeout>
	# seconds, it will be disconnected by the server.
	;PongTimeout = 20

Ping を2分毎にサーバが発し、20秒以内に Pong が帰ってこないとサーバが切断する。

# After <PingTimeout> seconds of inactivity the server will send a
	# PING to the peer to test whether it is alive or not.
	;PingTimeout = 120

	# If a client fails to answer a PING with a PONG within <PongTimeout>
	# seconds, it will be disconnected by the server.
#	;PongTimeout = 20

;Pongtimeout = 1800

この Pong を30分にしちゃった。 がだめだった。変化がない。

2008.3.29   0.11.1 にアップデート

以下の 0.10.3 のアップデートと全く同じ操作を行う。

ngIRCd: Next Generation IRC Daemon

から ngircd-0.11.1.tar.gz をダウンロード、解凍する。解凍してできたフォルダにターミナルで行って

sudo ./configure

sudo make

sudo make install

のコマンドを実行しておしまい。自動起動ファイルやMOTDなどのファイルはそのまま使う。

クライアントとして別PCから接続し、サーバからのメッセージに

Your host is irc.the.net, running version ngircd-0.11.1 (i386/apple/darwin8.11.1)

の表示がでたら成功。

インストールの経過ファイル

正常な動作の確認したらデスクトップのngircd-0.11.1というフォルダは削除していい。ダウンロードしたファイルは別途保存しておく。

2007.10.9   0.10.3 にアップデート

以下の最初のインストール同様に

ngIRCd: Next Generation IRC Daemon

から ngircd-0.10.3.tar.gz  をダウンロード。デスクトップにダウンロードして、Macだからダブルクリックで解凍できる。ngircd-0.10.3というフォルダがデスクトップにできる。解凍の中間段階の圧縮ファイルngircd-0.10.3.tar を保存しておく。

ターミナルで /users/seigi/desktop/ngircd-0.10.3 にいって

sudo ./configure

sudo make

sudo make install

のコマンドを実行しておしまい。自動起動ファイルやMOTDなどのファイルはそのまま使う。

クライアントとして別PCから接続し、サーバからのメッセージに

Your host is irc.the.net, running version ngircd-0.10.3 (i386/apple/darwin8.10.1)

の表示がでたら成功。

インストール経過のファイル

正常な動作の確認したらデスクトップのngircd-0.10.3というフォルダは削除していい。

######## 以下は0.10.1のインストール 2007.1.6 ###########

ngIRCd: Next Generation IRC Daemon

Install

http://ngircd.barton.de/#download の ngircd-0.10.1.tar.gz: ftp から

ngircd-0.101.tar をダウンロード

デスクトップ(多分、環境によって変わるかも)に ngircd-0.101.tar というファイルができるからこれをダブルクリックして解凍する。

ターミナルを使ってコマンドラインから解凍するときは、落としたファイルのdirectory で

% tar xvzf ngircd-0.101.tar

とする。

解凍されたフォルダ ngircd-0.10.1は /temp のdirecctoryへ移した。こういうのはどこにおくべきなのかよくわからん。

ターミナルで /tmp/ngircd-0.10.1 で

# ./configure

# make

# make install

これでインストールは終了。なにも問題はない。

マニュアルは

# man /usr/local/man/man8/ngircd.8

configulation file は

/usr/local/etc

Motd file (Mweeage of Today)は

/usr/local/etc/ngircd.motd

にそれぞれある。

手動起動はroot権限で

# /usr/local/sbin/ngircd -p

である。これで動くことをクライアントからアクセスして確認する。

クライアントソフトでは、

設定名:正義のサーバ とか自由に

Host: [ip address またはサーバ名seigi.accsnet.ne.jp]

Port: 6667

チャネルは #Test

ユーザ名とかニックネームとかも自由に設定する。

ここまでは問題なし。

ngircd.conf

/usr/local/etc の ngircd.conf は以下である。これでコンソールにエラーはでてこない。

MOTD

usr/local/etc に置いた ngircd.motd の内容。これがサーバに接続したクライアントに今日のメッセージ(Message of Today)として表示される。

正義の IRC サーバへようこそ。

このサーバはメインテナンスの都合で予告なしにシャットダウンすることがあります。

アップデートのときは2分程度でしょう。10分経ってもつながらないようでしたら

正義がなにかごそごそやっているんでしょう。

Shit-JIS 改行は UNIX のフォーマットである。

自動起動

/Library/StartupItems に ngIRCd という directory を作る

: /library/startupitems root# mkdir ngIRCd

ngIRCd というファイルを作り以下を記入し/library/startupitems/ngIRCd内に置く。
このファイル名は格納するdirectoryと大文字小文字を含めて全く同じでないといけない。


#!/bin/sh

##
# ngircd-0.10.1
# control ngIRC daemon (start,stop,restart)
##

. /etc/rc.common

StartService ()
{
 ConsoleMessage "Starting ngIRCd"
 /usr/local/sbin/ngircd -p
}

StopService ()
{
 ConsoleMessage "Stopping ngIRCd"
 kill $(ps auxww | grep 'ngirc[d]' | awk '{print $2}')
}

RestartService ()
{
 ConsoleMessage "Restarting ngIRCd"
 kill $(ps auxww | grep 'ngirc[d]' | awk '{print $2}')
 sleep 2
 /usr/local/sbin/ngircd -p
}
RunService "$1"

StartupParameters.plist というファイルを作り以下を記入し/library/startupitems/ngIRCd内に置く。

{
 Description = "ngIRCd";
 Messages = {
 restart = "Restarting ngIRCd.";
 start = "Starting ngIRCd daemon.";
 stop = "Stopping ngIRCd daemon.";
};

OrderPreference = none;
Provides = ("IRC chat server");
Requires = (Network, "Network Configuration");

}

Owner と アクセス権を変更する

chown -R root:admin /Library/StartupItems/ngIRCd

chmod -R 755 /Library/StartupItems/ngIRCd

chmod 644 /Library/StartupItems/ngIRCd/StartupParameters.plist

以下のコマンドが通ったらOK

# /library/startupitems/ngircd/ngircd start

Starting ngIRCd

# /library/startupitems/ngircd/ngircd stop

Stopping ngIRCd

# /library/startupitems/ngircd/ngircd restart

Restarting ngIRCd

サーバを再起動してircd がうごいていることを確認する。