今回は、インターネットリレーチャット、または単にIRCについて説明します。この記事の最初の部分では、このプロトコル、IrssiまたはXChatを使用してFreenodeやその他のIRCネットワークに接続し、チャネルに参加して人々と話す方法を確認します。その後、UnrealIRCdを使用して独自のIRCサービスを開始する方法を確認します。
目次
- はじめに
- IRCで接続する
- 基本的なIRCコマンド
- UnrealIRCdを使用したIRCの提供
はじめに
Facebook、Google +、LinkedInなどがなく、ソーシャルネットワークがIRCチャットチャネルだったときのIRCチャットを覚えているかもしれません。今日、インターネット上の誰かと話すための多くの選択肢があり、ソーシャルネットワークに加えて、Whatsapp、Skype、ハングアウトなどの多くの人気のあるメッセージングサービスがあります。
ただし、IRCはインターネット上の主要なコミュニケーションプログラムではありませんが、それでも機能し、優れたツールです。これは軽量で広く展開され、標準化されたプロトコルであり、もともとはトークプログラムの代替と改善としてBBSユーザーによって1988年に作成され、その特性により、他の多くのメッセージングシステムの誕生と死を目の当たりにしました。
IRCで接続する
IRCネットワークに接続するには、クライアントソフトウェアが必要です。 Linux用の優れたクライアントをいくつか紹介します。
Irssi
IrssiはcursesベースのIRCクライアントであり、非常に優れており、カスタマイズ可能であり、スクリプトを使用でき、Xサーバーの必要性を排除します。
インストール
yum install irssi
-cフラグを使用してネットワークに接続します
irssi -c irc.freenode.org
Irssiウィンドウを切り替えるには、最初は少し注意が必要です。 [Ctrl + n]を使用できます。 次のウィンドウに移動して[Ctrl+ p] 前のために。 /windowコマンド。
/window [ next | previous ]
listパラメータを使用して、開いているウィンドウでリストを表示します
/window list
次に、 [Alt +#] を使用して、リストされたウィンドウ番号にジャンプできます。 、ここで、#は1〜9のウィンドウ番号です。これを行う別の方法は、gotoパラメーターを使用することです
QuadpointWebサイトでIrssiの使用方法に関する優れたヒントを見つけることもできます。
/window goto [1-9]
XChat
XChatは、コマンドとほとんどのアクションにポイントアンドクリックオプションを提供することで、新規参入者のプロセスを簡素化します。
XChatはyumでインストールできます
yum install xchat
XChatを起動したときに表示されるダイアログを使用して、IRCネットワークに接続します。メニューからもアクセスできます XChat-> Network List [Ctrl + s]
ネットワークに正常に接続したら、チャネルに参加するためのオプションの1つを選択できます。メニューのサーバー->チャンネルのリストを使用することもできます。
基本的なIRCコマンド
これでクライアントができました。IRCで使用できるコマンドを次に示します。ネットワークに初めて接続するときは、クライアントによるシステムログインに基づいてニックネームが付けられます。たとえば、ニックネームをTuxmanに変更するには、これを試してください。
/nick Tuxman
新しいもので、あなたはチャンネルに参加したいかもしれません。 リストする 開発に関連するチャネルの試行
/list #devel*
興味のあるチャンネルを見つけたら、参加してみてください /join#channelnameを使用します。
/join #linux
OK、あなたはチャンネルに参加しています。今すぐ話し始めることができます。チャンネルに誰が参加しているかを知るには、名前でこれを行います。
/names
ネットワーク上の誰かについてもっと知りたい場合は、whoisを試してください。
/whois MrRobot
誰かとチャットウィンドウをしたいですか? クエリ。
/query MrRobot
ニックネームを登録
IRCネットワークでチャットするためにアカウントを作成する必要はありません。ただし、自分のニックネームが他人に使用されないようにする場合は、ネットワークにニックネームを登録する必要があります。これにより、クローキングやより多くのチャネルへのアクセスなど、登録されたニックネームを必要とするリソースへのアクセスも可能になります。
FreenodeにTuxmanのニックネームを登録したいとします。 NickServにニックネームの登録を依頼してください
/msg NickServ REGISTER password [email protected]
その後、提供した電子メールに送信された確認コードを取得して、NickServに送信する必要があります
/msg NickServ VERIFY REGISTER nickname verifycode
ニックネームを登録しました。これで、ネットワークで自分を識別できます
/msg NickServ IDENTIFY password
Irssiの起動時に-nフラグと-wフラグを使用して接続および識別します。
irssi -c irc.freenode.net -n nickname -w password
また、パスワードは随時変更する必要があります。次のコマンドを使用してください
/msg nickserv set password newpassword
UnrealIRCdのインストール
他のIrcd実装の中には、UnrealIRCdがあります。これは、完全な機能を備え、モジュール式で、高度に文書化されており、現在最も実装されているIRCサーバーでもあり、現在実行中のIRCサーバーの50%以上に相当します。
追加要件
UnrealIRCdを最大限に活用するためのいくつかの要件がありますが、必須ではありませんが、後で説明するように強くお勧めします。
Ntp -正しい時刻と日付が必要です。ntpは、正しい時刻と日付を維持するための最良の選択です。
ntpをインストールする
yum install ntp
ntpdを有効にする
chkconfig ntpd on
OpenSSL -これもオプションです。SSL/TLSサポートが必要な場合に使用されます。
yum install openssl
Zlib -これにより、ネットワークパケットを圧縮し、リンク上の負荷を軽減できます。
yum install zlib
UnrealIRCdを入手
Unrealircdをダウンロードしてください。
wget --no-check-certificate https://www.unrealircd.org/downloads/Unreal3.2.10.5.tar.gz
tarballを正確に
tar zxvf Unreal3.2.10.5.tar.gz
ソースツリーに入る
cd Unreal*
chroot ircユーザーとircグループを有効にする(推奨)
この手順はオプションですが、スーパーユーザー権限を削除し、chrootされた環境内で非特権ユーザーアカウントでUnreadIRCdを実行できるため、セットアップ全体がはるかに安全になるため、強くお勧めします。
これを行うには、 include / config.hを編集する必要があります ソースディレクトリ内のファイル。
Chroot環境機能は、次のディレクティブによって定義されます
/* #define CHROOTDIR */
IRC_USER定数を定義する
/* #define IRC_USER "<user name>" */
IRC_GROUP定数を定義します
/* #define IRC_GROUP "<group name>" */
ircdのグループを作成する
groupadd ircd
ircdユーザーを作成し、ircdグループに追加します。
useradd ircd -s /bin/false -g ircd
ircdユーザーのパスワードを設定して、誰も入力できないようにします。
passwd ircd
ビルドを構成します
この時点で、画面の質問に従い、ほとんどの場合デフォルト設定を使用できますが、SSLサポートを有効にするように求められたら「はい」と答えることをお勧めします。
./config
ソースを作成する
make
ファイルをインストールする
make install
ircdユーザー、グループ、chroot機能を有効にした場合は、UnrealIRCdディレクトリの所有権を変更する必要があります。
chown -R ircd:ircd /home/ircd/UnrealIRCd
構成
IRCデーモンを機能させる時が来ました。このために、 unrealircd.confを編集します 、UnrealIRCdの構成ファイル。 UnrealIRCDディレクトリツリーの下に、十分に文書化されたファイルdoc/sample.confがあります。これはあなたの旅に役立つかもしれません。簡単な説明を付けてこの作業スニペットを作成しました。
私 -このブロックは、いくつかの基本的なサーバー設定、名前を設定します 、基本的な情報 および数値 同じネットワーク上のサーバー間で一意である必要がある値。
me {
名前"irc.localhost"; info"マイサーバー";数値1;
};
管理者 -ここでは、サーバー管理者、その名前、ニックネーム、および電子メールを設定します。
admin {
"ジョージジェダイ"; /*名前*/"geroge";/*ニックネーム*/"[email protected]"; /*メール*/
};
クラスのクライアント/サーバー -これにより、クライアントと他のサーバーがそれぞれサーバーによって処理される方法が設定されます。 pingの頻度、クライアント接続の最大数、再接続の試行の頻度、キューの送受信。
class clients {
pingfreq 90; maxclients 500; sendq 100000; recvq 8000;
}; 'クラスサーバー{
pingfreq 90; maxclients 10; /*一度にリンクできる最大サーバー数*/sendq 1000000; connfreq 100; /*各接続試行間の秒数*/
};
許可 -サーバーに接続できるユーザーと方法を定義します。最初のブロックは、任意のIPまたはホスト名からのユーザー接続を許可し、接続をIPごとに5つに制限します。 2番目のブロックでは、ugly.people.comからのユーザーへの認証済み接続を1つだけ許可します
allow {
ip *;ホスト名*;クラスクライアント; maxperip 5;
}; {
を許可するip * @ *;ホスト名*@*。ugly.people.com;クラスクライアント;パスワード「ジャヤジャヤ」; maxperip 1;
};
聞く -接続をリッスンするポート。ブロックでは、SSL(Secure Socket Layer)を介して接続しているユーザークライアントのポート6697でリッスンしています。ポート6667でのプレーンテキスト接続の行の単純なステートメントにも注意してください
listen *:6697 {
オプション{
ssl;クライアントのみ;
};
}; #listen *:8067;聞く*:6667; #listen *:6660-6669;
オペラ -オペレーター属性。この例では、「fuba」パスワードを使用してどこからでも接続できる、ジョージというニックネームのオペレーターを使用しています。
opergeorge{クラスクライアント; from {userhost * @ *; };
パスワード"fuba";フラグ{
netadmin; can_gkline; can_kline; can_unkline; can_gzline; can_zline; can_restart; can_die; can_rehash;グローバル;
};
swhois「whoisマスクの例」; snomask cFfkoSsqNG;
};
ロードモジュール -モジュールをロードします。これらは最低限推奨されます
loadmodule "modules/commands.so";
loadmodule "modules/cloak.so";
ログ -ログファイルの書き込み方法。たとえば、エラー、キルなどのフラグが立てられたイベントをログに記録します。
log ircd.log {
最大サイズ5MB;フラグ{
エラー;殺す; oper; tkl;
};
};
セット -ここで他の多くの設定を行うことができます。この例では、ドメインgaia.netにgaianetというネットワークがあり、ユーザーを#welcomeチャネルに接続し、3つの異なる英数字のマントキーを設定し、ネットワーク上にホストを設定し、 #helpchannelおよびnrealircd.orgで詳しく説明されているその他のオプション。
set {
kline-address [email protected];自動参加#welcome; op
オプション{
非表示-ulines;
};
maxchannelsperuser 10; services-server "services.gaia.net";デフォルト-サーバー"localhost";ネットワーク名"gaianet";ヘルプチャネル"#help"; hiddenhost-プレフィックス"gaia";
マントキー{
"aoAr1O6fh3Q6w4Hnl3J7hVz4Zb7x4YwpW"; "andaoAr1HnR6gl3sJ7uhVzO6fh3Q6w4oN3"; "a2Ja2JO6fh3Q6w4oNs7O6fh3Q6w4oN3s7";
};
ホスト{
ローカル"locop.gaia.net";グローバル"ircop.gaia.net"; coadmin "coadmin.gaia.net"; admin "admin.gaia.net"; servicesadmin "csops.gaia.net"; netadmin "netadmin.gaia.net"; host-on-oper-up "no";
};
};
UnrealIRCdを開始
すべてが整ったら、今すぐIRCデーモンを起動できます。 rc.localに次のコマンドを追加して、システムの起動時にUnrealIRCdを起動します。
/home/ircd/UnrealIRCd/unreal start
問題なく動作するはずですが、起動中に問題が発生した場合は、ターミナルとircd.logファイルのエラーメッセージを読んで、何が問題なのかを突き止めてください。
結論
これで完了です。クライアントとサーバーが実行されているはずです。グローバルネットワークの一部を使用して、または独自のネットワークを使用して、世界中の人々と話すことができます。ただし、IRCプロトコル、ネットワーク、チャネル、ユーザーの管理方法などについて詳しく知ることをお勧めします。次のドキュメントが役立ちます。
RFCドキュメント
次のRFCは、IRCプロトコルの標準を定義しています。 IRCを最大限に活用する前に、これを読む必要があります。
RFC-1459、RFC-2810、RFC-2811、RFC-2812、RFC-2813、RFC-7194
UnrealIRCdのサポートとドキュメント
詳細については、UnrealIRCdの公式ドキュメントを参照してください。このドキュメントに記載されていないすべての詳細が含まれています。 #unreal-supportチャネルのirc.unrealircd.org:6667に接続して、IRCからヘルプを入手することもできます。読んでくれてありがとう!