新聞閱讀器是用戶觸達 Usenet 的核心介面,優秀的閱讀器不僅提供舒適閱讀體驗,更通過執行緒重組(Threading)將龐雜文章編織成可追蹤的對話樹。Linux 平台三大經典閱讀器——tin、trn、nn——各具設計哲學與調優重點。本文深度解析三者的索引機制、守護程式部署、NNTP 整合與過期清理策略,助您打造高效穩定的閱讀環境。
Re: 原主題Message-ID大型新聞組(如 comp.os.linux.misc 日均百篇)若無執行緒,用戶將淹沒在平鋪列表中。
~/.tin/index/,多用戶系統建議集中化管理。# 1. 讓 tin 以 news 權限運行,索引寫入集中目錄
chown news:news /usr/bin/tin
chmod u+s /usr/bin/tin
mkdir -p /var/spool/news/.index
chown news:news /var/spool/news/.index
# 2. 環境變數導向集中索引
export TIN_INDEX_DIR=/var/spool/news/.index
# 3. 部署 tind 索引守護程式(需自行編譯,源碼內附)
# 定期更新索引,客戶端啟動即讀取現成索引,極大加速 NNTP 場景
tind -d -u news
rtin 或 tin -r/etc/nntpserver(單行主機名)或環境變數 NNTPSERVERnntpd 打 tin 專用補丁),進一步消除首屏等待。mthreads 定期掃描假脫機目錄產生索引檔。mthreads 仍可閱讀,但文章呈平鋪狀,失去執行緒優勢。# 手動針對特定新聞組建立索引(排除 rec.games.go)
mthreads comp.rec.!rec.games.go
# 全量新聞組索引
mthreads all
# 生產環境:cron 定時任務(每天清晨處理夜間收到的文章)
0 4 * * * /usr/local/bin/rn/mthreads -eav
# 高流量站點:守護程式模式(每 10 分鐘檢查新文章)
/usr/local/bin/rn/mthreads -deav
# 放入 rc.news 開機腳本
參數解析:-a 新新聞組自動開啟執行緒;-v 詳盡日誌 mt.log;-e 增強型過期(清理低水位以上但已過期文章),守護模式下午夜自動執行。
updatemin 更新 active 低水位)。-e 選項啟用增強過期,配合 Expires: 標頭精準清理。座右銘:「No news is good news. nn is better.」提供 nnadmin 互動式管理介面、nnmaster 後台索引/過期引擎、完整的訪問控制與主題數據庫一致性檢查。
# 開機啟動:為 active 所有新聞組建立主題歸類
/usr/local/lib/nn/nnmaster -1 -r -c
# cron 定期增量更新(新聞組列表格式類似 sys,空格分隔,空參數代表 all)
/usr/local/lib/nn/nnmaster !rec.games.go rec comp
# 三種過期模式:
# 1. 掃描目錄刪除失效條目(預設,-E)
nnmaster -E
# 2. 僅刪除低水位以下文章(-e,類似 mthreads 預設)
nnmaster -e
# 3. 重建全量數據庫(-E 3,核災級修復)
nnmaster -E 3
# 守護程式模式下的過期處理:先殺舊進程,再重啟
nnmaster -kf ""
nnmaster -lrc
順序敏感:新聞組列表最左優先,!rec.games.go rec 有效,rec !rec.games.go 會導致排除失效。
/usr/local/lib/nn/GROUPS)comp.os.linux.misc 1234567890 F # 新聞組名 時間戳 標記
rec.games.go 1234567890 D # D=禁用執行緒,F=強制執行緒等
標記可編輯調整行為,但順序不可變(需與二進制 MASTER 索引順序一致)。
| 維度 | tin | trn | nn |
|---|---|---|---|
| 執行緒引擎 | 內建即時 | 外掛 mthreads 定期 | 內建 nnmaster 定期/守護 |
| NNTP 首屏速度 | 慢(需 tind/擴展優化) | 快(讀取現成索引) | 快(讀取現成索引) |
| 多用戶索引共享 | 需 setuid + 集中目錄 | 天然共享(mthreads 產出公共索引) | 天然共享(nnmaster 產出公共索引) |
| 管理介面 | 鍵盤命令為主 | 鍵盤命令為主 | nnadmin 互動式選單 |
| 過期靈活度 | 基於 active 低水位 | 增強型過期支援 Expires 標頭 | 三種模式可選,含全量重建 |
| 推薦場景 | 個人高級用戶、需即時執行緒 | 多用戶新聞伺服器、自動化運維 | 追求管理便利、需精細訪問控制 |
無論選擇哪款閱讀器,索引建立與過期清理的自動化程度直接決定用戶體驗。生產環境建議:部署專用索引守護程式(tind/mthreads -d/nnmaster -d),配合 cron 定期增強過期,將索引目錄置於高速儲存(SSD/NVMe),並透過 NNTP 擴展讓客戶端直接拉取預建索引。掌握這三套工具的調優精髓,您將擁有穩定、高效、可擴展的新聞閱讀基礎設施。