layout: post
title: "IRC 服務(wù)器搭建與測試"
date: 2018-05-12 11:12:20 +0800
categories: 瞎折騰
description: 很簡單,就是不想用tx的東西。
以下為原創(chuàng)內(nèi)容。
mac上的QQ、Wechat耗電堪比IDE,越來越多的功能,越來越臃腫的程序,越來越可怕的耗電量。國內(nèi)Telegram也涼的差不多了,加上工作學(xué)習(xí)用終端比較多,IRC或許是個不錯的選擇。
先上一波百度百科。
IRC是Internet Relay Chat 的英文縮寫,中文一般稱為互聯(lián)網(wǎng)中繼聊天。它是由芬蘭人Jarkko Oikarinen于1988年首創(chuàng)的一種網(wǎng)絡(luò)聊天協(xié)議。經(jīng)過十年的發(fā)展,目前世界上有超過60個國家提供了IRC的服務(wù)。IRC的工作原理非常簡單,您只要在自己的PC上運(yùn)行客戶端軟件,然后通過因特網(wǎng)以IRC協(xié)議連接到一臺IRC服務(wù)器上即可。它的特點(diǎn)是速度非常之快,聊天時幾乎沒有延遲的現(xiàn)象,并且只占用很小的帶寬資源。所有用戶可以在一個被稱為"Channel"(頻道)的地方就某一話題進(jìn)行交談或密談。每個IRC的使用者都有一個Nickname(昵稱)。
搭建IRC服務(wù)器主要是為了和研究團(tuán)隊(duì)的成員們保持聯(lián)系。下面簡單說一下自主搭建IRC服務(wù)器的過程。
安裝 UnrealIRCd
UnrealIRCd是一個IRC服務(wù)端守護(hù)進(jìn)程。具體的可以看官方的說明.
UnrealIRCd is an Open Source IRC Server, serving thousands of networks since 1999. It runs on Linux, OS X and Windows and is currently the most widely deployed IRCd with a market share of over 50%. UnrealIRCd is a highly advanced IRCd with a strong focus on modularity, an advanced and highly configurable configuration file. Key features include SSL, cloaking, its advanced anti-flood and anti-spam systems, swear filtering and module support. We are also particularly proud on our extensive online documentation.
官方文檔里安裝過程也說的很明白了,下面總結(jié)一下。
# 測試環(huán)境為 Ubuntu 16.04 LTS
# 注意不要以root身份安裝,可能會導(dǎo)致安全問題。
# 首先下載最新的源碼
wget --no-check-certificate --trust-server-names https://www.unrealircd.org/downloads/unrealircd-latest.tar.gz
# 解壓并進(jìn)入目錄
tar -zxvf unrealircd-4.0.17
cd unrealircd-4.0.17
# 運(yùn)行配置(注意大小寫)
# 如果機(jī)器沒有安裝gcc、make、openssl-devel等可能會報(bào)錯。按照錯誤提示安裝即可。
# 默認(rèn)配置一路回車即可,組織名稱可按需配置。
./Config
# make & install
make
make install
# 進(jìn)入到安裝的目錄(默認(rèn)為~下),復(fù)制配置文件模版并啟動
cd ~/unrealircd
cp conf/examples/example.conf conf/unrealircd.conf
如果啟動失敗,可去官方的FAQ界面尋求幫助,以下列出我遇到的一些問題。
[圖片上傳中...(irc-err0.jpg-db7834-1531849426722-0)]
主要是默認(rèn)信息沒有修改和密鑰的問題,對應(yīng)著行號解決一下。
[圖片上傳中...(irc-err1.jpg-729480-1531849435693-0)]
修改oper后面的name和下面的password。
第二和第三條報(bào)錯注釋里說了怎么解決。執(zhí)行如下命令然后把生成的key貼到cloak-keys的第二三條即可。
./unrealircd gencloak
最后一條錯誤改一下郵箱即可。
別忘了加分號。
貼一下啟動成功的圖。
[圖片上傳中...(irc-success.jpg-a345d7-1531849450329-0)]
可能還需要添加防火墻例外(或ECS安全策略)以確保外部訪問正常。
<del>## 補(bǔ)充內(nèi)容
<del>如果想開啟iOS端的消息推送(僅限Mutter),還需配置IRC服務(wù)端連接至蘋果推送服務(wù)。Mutter提供了Mutter Push ZNC Module,點(diǎn)擊以查看更多,下面簡單翻譯一下。
# 下載并解壓模塊,進(jìn)入解壓出的文件夾
wget https://bitbucket.org/jmclough/mutter-push/get/master.zip
unzip -d mutter -j master.zip
cd mutter
# 安裝依賴(Python、requests包)
sudo apt-get install python3-pip
sudo pip3 install requests
# 加載 ModPython 模塊
/znc loadmod modpython
# 拷貝模塊至模塊目錄下
cp mutter.py ~/.znc/modules/
# 加載ZNC模塊
/znc loadmod mutter
客戶端安裝與測試
簡單介紹一下不同環(huán)境下IRC客戶端的安裝??蛻舳瞬捎没诮K端的Irssi,經(jīng)典的IRC文本聊天器。相關(guān)GUI版本在此不作介紹。
*NIX
僅介紹macOS和Ubuntu環(huán)境,其他環(huán)境相差無幾。
macOS
如果mac上從安裝包管理工具,請先安裝brew(或需要先安裝Xcode并運(yùn)行一次,安裝相關(guān)開發(fā)者工具)。
依次運(yùn)行下面的命令安裝Homebrew,更新源并安裝Irssi
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update
brew install irssi
如果速度慢則請參考LUG@USTC考慮更換Homebrew源。
安裝完成后運(yùn)行irssi。
irssi
簡單介紹一下Irssi中的入門命令。
# 連接到服務(wù)器
/connect [IP]
# 更改昵稱(可選)
/nick [nickname]
# 加入頻道(若無則創(chuàng)建)
/channel [channel]
# 退出當(dāng)前頻道
/wc
# 斷開服務(wù)器
/disconnect
# 退出程序
/quit
# 幫助
/help
# 命令幫助
/help [command]
進(jìn)一步操作可參考官方完備的說明文檔。
Ubuntu
與macOS類似,簡單介紹一下。
# 更新源并安裝
sudo apt-get update
sudo apt-get install irssi
# 運(yùn)行
irssi
# 下面的操作參考macOS中的介紹
Windows
在Windows下,推薦使用WSL(Windows Subsystem for Linux),然后參考Ubuntu的安裝和操作進(jìn)行。相關(guān)的GUI版本在此不作介紹。
移動端
iOS
在App Store搜索Mutter并安裝。
安裝后打開Mutter,點(diǎn)擊左上角的加號添加服務(wù)器。輸入名稱、IP或域名、昵稱等添加一個連接。
進(jìn)入服務(wù)器后,點(diǎn)擊右上角的三個點(diǎn),變更頻道至協(xié)商好的頻道(別忘了#號)。
Let's chat.
Android
Android下的客戶端眾多,根據(jù)喜好選擇下載即可。推薦一款liteIRC。
好了,就這么多,有空再更。