连接方法
大厅服务器目前仅支持使用RSA密钥进行SSH连接,请选择易于操作的终端对密钥和账户进行管理,此处推荐使用tabby terminal,服务器ip为*.*.*.*
(群内获取),SSH端口为22,请使用root用户登录,密钥文件可在群内找到,文件名为id_rsa
文件结构
在/root
文件夹即~
文件夹下存放着所有与大厅管理相关文件,目录结构如下
.
├── IDandEmail.txt //进入后发送邮件提醒,格式为:匹配项,邮箱
├── IDandInfo.txt //进入后大厅内消息提醒,格式为:匹配项,消息内容
├── SokuLobbiesServer-0.7 //大厅服务器的可执行文件
├── backup //杂项
├── ban.log //被ban的记录
├── banlist.txt //进入后使用iptables永久封禁的列表,格式为:匹配项
├── banlist_1min.txt //进入后使用iptables封禁一分钟的列表,格式为:匹配项
├── chat.log //聊天记录的记录
├── connect.csv //search.py的中间文件
├── connect.log //进入大厅记录的记录
├── frp_0.61.1_linux_amd64 //一个frp
├── log_banword_first.py //用于第一个大厅的消息处理文件
├── log_banword_second.py //用于第二个大厅的消息处理文件
├── log_banword_third.py //用于第三个大厅的消息处理文件
├── others.log //其余消息的记录
├── report.log //举报消息的记录
├── search.py //用于搜索一个机签的关联机签和ip
├── soku01.log //用于第一个大厅的消息记录的管道中转文件
├── soku02.log //用于第二个大厅的消息记录的管道中转文件
├── soku03.log //用于第三个大厅的消息记录的管道中转文件
├── teamspeak3-server_linux_amd64 //一个teamspeak服务端
└── wordlist.txt //敏感词列表
tmux使用方法
服务器使用tmux管理不同的大厅,可以使用tmux ls
查看当前的所有tmux实例

如图,当前大厅运行在三个tmux实例上,CN01运行在run07-12,CN02运行在run07-Second,另有一个通知实例run-Third
tmux new -s run
可以新建一个名为run的窗口
在窗口状态下按ctrl+B
后按D
退出当前窗口
tmux a -t run
可以回到名为run的窗口
tmux ls
可以列出当前后台运行的窗口
tmux kill-session -t run
可以删除名为run的窗口
一般运行状态下如下图所示

按ctrl+B
后按[
可进入滚动模式查看历史输出记录,此时显示为如下状态

按esc
即可回到正常可编辑状态
由于在tmux内输入的命令可能会被新产生的记录覆盖而导致错误,此时注意不可使用ctrl+C,若命令输入不全,直接回车即可,若要输入长命令,如/ban @profile1p bianshi
,建议在其他地方复制完以后再粘贴如tmux中运行
tmux中的大厅运行方法和消息记录管道
在一个新的tmux中使用命令./SokuLobbiesServer-0.7 "11122" "10" "随意esc请举报"
即可运行大厅,其中11122为运行端口,如果提示端口冲突请更改,10为人数上限
在创建了大厅以后需要使用log_banword_third.py
文件对输出的内容进行处理,请使用tmux中的管道进行操作,在tmux窗口中按ctrl+B
后按:
可以进入命令模式,此时输入 pipe-pane -o 'tee -a /root/soku03.log | python3 log_banword_third.py'
然后回车,可在当前窗口中使用对应文件处理大厅的输出内容,如下

tmux中对特定大厅的特定操作
由于记录文件需要对特定的tmux实例发送信息,所以在不同的python文件中规定了一个tmux名称,例如在log_banword_first.py
的开头可以看到定义有 tmux_session = 'run07-12'
即这个文件是针对名为run07-12的tmux实例进行操作的,也就是CN01
所以对不同的大厅需要使用不同的命令激活log程序,目前的三个大厅请在tmux中分别使用如下命令
pipe-pane -o 'tee -a /root/soku01.log | python3 log_banword_first.py'
pipe-pane -o 'tee -a /root/soku03.log | python3 log_banword_third.py'
pipe-pane -o 'tee -a /root/soku02.log | python3 log_banword_second.py'
tmux中的大厅内部操作
在运行了大厅后,可以使用/help
查看管理员命令
一般来说可以使用/say
、/kick
、/list
,请避免使用/ban
这是一个难以管理的不可逆操作
如果需要踢出某人,请先使用/list
查看对应机签的编号,然后使用类似于/kick 1
的编号操作进行踢出
/warn
会对所有用户进行弹窗,不可显示中文,请谨慎使用
查询机签、IP、聊天记录
如果对于某个ip或机签感兴趣,可以使用grep -rn -i "wyy" connect.log
、grep -rn -i "wyy" chat.log
进行查询
如果需要使用高级的交叉查询功能,请运行 python3 search.py
,随后按提示操作即可,如果程序无法自行结束可能是由于和别人共用机签等原因导致,请合理使用屏蔽ID和机签的功能
在查询聊天记录时,如果对某日的若干个机签的发言感兴趣,可以使用grep -rn -i -E "2025-07-19 .*<profile1p|2025-07-19 .*<profile2p" chat.log
进行查询,或者自行选择需要的正则表达式
封禁操作
如果需要封禁一个ip,可以使用 iptables -A INPUT -s 192.168.1.1 -j DROP
对单独ip进行封禁,或封禁CIDR表示的ip段,例如 iptables -A INPUT -s 192.168.1.0/24 -j DROP
即为封禁192.168.1.*
的所有IP
如果需要接触封禁可以使用 iptables -nL | grep "192.168.1.0"
确定被封禁的ip然后使用iptables -D INPUT -s 192.168.1.0/24 -j DROP
解除封禁
此外如果需要短期封禁某个ip,可以先使用
iptables -A INPUT -s
192.168.1.0
/24 -j DROP
echo "iptables -D INPUT -s
192.168.1.0
/24 -j DROP" | at now +4 days
具体的时间表示方法可以搜索at命令
如果需要封禁某个机签,可以在banlist_1min.txt或banlist.txt中添加
匹配项与fnmatch
在wordlist.txt
、banlist.txt
、banlist_1min.txt
、IDandInfo.txt
、IDandEmail.txt
中所有匹配内容支持fnmatch,规则如下
Pattern | Meaning |
---|---|
* | 匹配任意字符 |
? | 匹配任意单一字符 |
[seq] | 匹配seq中的字符 |
[!seq] | 匹配不在seq中的字符 |
[?]
匹配单一的问号字符
Comments NOTHING