BitchMyQnap
BitchMyQnap:在您的 QNAP 上使用 IRC
用戶端、機器人、含服務的伺服器、bouncer 和 FTP。
BitchMyQnap 在 NAS 上提供整套 IRC 環境:用戶端 irssi 和 BitchX、搭配 Tcl 的 Eggdrop 機器人、搭配 Anope 服務的 UnrealIRCd 伺服器、ZNC bouncer 和 Pure-FTPd。
套件包含這些程式。Bucket & Code Server IDE 中的編輯器專案另外提供精靈,它會詢問名稱和您的密碼、寫入設定檔,並啟動一個小型網路。
./irc.sh start
unrealircd: started
anope: started
znc: started
eggdrop: started
ftp: started
./irc.sh status
unrealircd: running (pid 10590)
anope: running (pid 10619)
znc: running (pid 10651)
eggdrop: running (pid 10683)
ftp: running (pid 10713)
內含項目
配方清單列出這些程式,建置時會加入它們需要的函式庫。
用戶端
- irssi
- 終端機 IRC 用戶端,支援 TLS
- BitchX
- 經典終端機用戶端,支援 TLS
機器人
- eggdrop
- Eggdrop 1.10,IRC 機器人
- tclsh
- Tcl 8.6,機器人的指令碼語言
伺服器與服務
- unrealircd
- UnrealIRCd 6,IRC 伺服器,含 unrealircdctl
- services
- Anope 2.0:NickServ、ChanServ、OperServ 等
Bouncer
- znc
- ZNC 1.9,含網頁介面;不含 Perl、Python 或 Tcl 模組
FTP
- pure-ftpd
- 支援 TLS 的 Pure-FTPd
- pure-pw
- 自己的使用者資料庫
工具
- busybox
- chpst 以各程式自己的使用者啟動它們
- screen
- 關閉終端機後仍讓用戶端繼續執行
實際畫面
QNAP NAS 上小型測試網路的實際畫面:精靈的頻道、它的機器人和兩個用戶端。
適合對象
您想要自己的聊天室
UnrealIRCd 和 Anope 讓您在自己營運的伺服器上擁有註冊的暱稱和頻道,供朋友或團隊使用。
您整天都在 IRC 上
電腦睡眠時 ZNC 仍保持連線,irssi 在終端機關閉後也會繼續在 screen 中執行。
您喜歡機器人
Eggdrop 待在您的頻道中,您可以用 Tcl 指令碼擴充它。
安裝
- 將本站儲存庫新增至 App Center 一次:三個步驟。
- 在儲存庫清單中找到 (example) BitchMyQnap,然後按 安裝。
- 在 控制台 › 網路&檔案服務 › Telnet / SSH 中開啟 SSH。
啟動
BitchMyQnap 沒有自己的視窗,要從終端機使用。以 admin 透過 SSH 登入,然後啟動用戶端。若要架設自己的網路,請使用下方的專案。
ssh admin@192.0.2.10 # 您的 NAS 位址 irssi -c irc.example.com -p 6697 --tls # 任何透過 TLS 連線的 IRC 伺服器
三個命令架起網路
套件包含這些程式,精靈和執行器則留在編輯器專案 BitchMyQnap 中,因此這部分需要 Bucket & Code。依下方說明建置並啟用應用程式,然後在編輯器終端機中執行:
make setup # 精靈:名稱、您的密碼、網路資料夾 make start # 啟動網路的程式 make irc-status # 哪些正在執行
精靈會詢問網路名稱、伺服器和服務的名稱、頻道、您的暱稱、機器人的暱稱,以及是否設定 FTP。您的密碼只以雜湊形式保存。UnrealIRCd 與 Anope 之間的連結密碼和 cloak 金鑰都是隨機產生。
每個程式都以使用者 65534 執行,而且只有在 /proc 顯示程式自己的二進位檔正以該使用者執行時,irc.sh 才會向它傳送訊號。
執行中網路的連接埠
| 連接埠 | 監聽者 |
|---|---|
| 6667 | UnrealIRCd,IRC,所有位址 |
| 6697 | UnrealIRCd,透過 TLS 的 IRC,所有位址 |
| 9669 | UnrealIRCd,服務連結,僅 127.0.0.1 |
| 9667 | ZNC,透過 TLS 的 IRC 和網頁介面,所有位址 |
| 9021, 9022-9031 | Pure-FTPd,控制與被動連接埠,所有位址 |
啟動之後
- 將用戶端連線到連接埠 6697,再用您的暱稱和密碼執行
/oper,就會成為 IRC 操作員。 /msg NickServ REGISTER會註冊您的暱稱。Anope 會將該暱稱設為服務的 root。- 用
/msg傳hello給機器人:第一個說 hello 的人會成為它的擁有者。 - ZNC 的網頁介面位於連接埠 9667,使用 HTTPS,IRC 用戶端則以 TLS 連線到同一個連接埠。
須知
- UnrealIRCd、ZNC 和 Eggdrop 拒絕以 root 執行。若只用套件啟動它們,您需要自行撰寫設定檔並選擇使用者。
- 網路的程式會在 NAS 重新啟動時停止。
make start會再次啟動它們。 - 在 QuTS hero 上,共用資料夾的 ACL 可能讓其中的資料夾對使用者 65534 關閉。精靈會在最後檢查,如果資料夾被關閉,就會指出它。應用程式自身磁碟區上的資料夾可以正常使用。
- BitchX 在每行開頭放置兩個 8 位元標記,UTF-8 終端機無法繪製。上方的圖片將它們留白。
隨時修改,重新建置
BitchMyQnap 是 Bucket & Code Server IDE 的範例,這是我們為 QNAP 提供的免費開發環境。它會在您自己的 NAS 上從原始碼編譯每個程式,並將結果打包成 QPKG。
從面板操作
- 在 Bucket & Code 中開啟 應用程式,再開啟 範例 分頁。如果還沒有 Builder 環境,請新增 Ubuntu 24.04 builder (full)。
- 在 BitchMyQnap (geek set 3) 上按 使用此範例。應用程式會連同配方一起出現,但尚未建置任何內容。
- 按 建置,再按 啟用。安裝 QDK 工具鏈後,匯出 就能產生 QPKG。
從終端機操作
編輯器專案 BitchMyQnap 在 recipes.txt 中保存相同的清單。刪除一行或從配方庫新增配方,然後在編輯器終端機中執行:
make app # 從 recipes.txt 製作應用程式 make build # 建置並追蹤工作 make activate # /usr/app/BitchMyQnap 現在指向此建置 make qpkg # 匯出 QPKG (需要 QDK 工具鏈)
QPKG 包含應用程式的程式。setup.sh 和 irc.sh 留在專案中。
觀看在 Bucket & Code 中的操作
Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware)
YouTube 影片 8 分鐘

