SUDOKU是一个基于4×4数独设题解题的流量混淆协议。它通过将任意数据流(数据字节最多有256种可能,4×4数独的非同构体有288种)映射为以4个Clue为题目的唯一可解数独谜题,每种Puzzle有不少于一种的设题方案,随机选择的过程使得同一数据编码后有多种组合,产生了混淆性。
以上内容摘自官方项目文档,更多内容见:https://github.com/SUDOKU-ASCII/sudoku/blob/main/README.zh_CN.md
服务器端一键部署脚本:
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/SUDOKU-ASCII/easy-install/main/install.sh)"
您也可以按照下面的步骤手动部署服务端,提供更灵活的配置。下载最新版本:
wget https://github.com/SUDOKU-ASCII/sudoku/releases/download/v0.0.9/sudoku-linux-amd64.tar.gz tar -xzvf sudoku-linux-amd64.tar.gz chmod +x sudoku mv sudoku /usr/local/bin
生成key:
sudoku -keygen
回显的内容类似:
Available Private Key: 98af9788db059d4df7a46c8631d203dec6899cb4c366a16a9b23572d14a18605c62961391abed62575271eb2d23cd3273ca39e2c295e8fce6ab3c7f774bf6706 Master Private Key: 5ed9f8c1f5c373736ccc8a38040fd705032d3be1ecc4303906d71e258960ee0b Master Public Key: c4c7019df5de89638e467f4cb624086ea6ab79eb48259592fe48012bbe309034
其中Master Public Key是服务端key,Available Private Key是客户端key。
创建配置文件:
mkdir /etc/sudoku && nano /etc/sudoku/config.json
示例配置:
{
"mode": "server",
"local_port": 60888,
"fallback_address": "127.0.0.1:80",
"key": "c4c7019df5de89638e467f4cb624086ea6ab79eb48259592fe48012bbe309034",
"aead": "chacha20-poly1305",
"suspicious_action": "fallback",
"padding_min": 2,
"padding_max": 7,
"ascii": "prefer_entropy",
"custom_table": "vxvpxvvp",
"enable_pure_downlink": false,
"disable_http_mask": true
}
如需自定义字节特征,可修改custom_table,必须满足条件:两个x、两个p、四个v。
防御性回落 (Fallback)默认回落到本机NGINX的80端口,若机器内没有NGINX可以安装一下:
apt install nginx
创建systemd配置文件:
nano /etc/systemd/system/sudoku.service
写入如下内容:
[Unit] Description=Sudoku Proxy Server After=network.target [Service] Type=simple ExecStart=/usr/local/bin/sudoku -c /etc/sudoku/config.json Restart=on-failure RestartSec=5 LimitNOFILE=1048576 [Install] WantedBy=multi-user.target
启动并设置开机自启:
systemctl enable --now sudoku.service
客户端可以使用mihomo(Alpha),注意是Alpha版本。虽然mihomo在v1.19.17已经支持sudoku协议了,但由于协议作者又更新了一些内容,现已不再支持新的sudoku协议。
mihomo配置:
- name: sudoku type: sudoku server: 89.64.19.37 port: 60888 key: "98af9788db059d4df7a46c8631d203dec6899cb4c366a16a9b23572d14a18605c62961391abed62575271eb2d23cd3273ca39e2c295e8fce6ab3c7f774bf6706" aead-method: chacha20-poly1305 padding-min: 2 padding-max: 7 table-type: prefer_entropy custom-table: vxvpxvvp enable-pure-downlink: false http-mask: false
荒岛















博主你好,你写的文章非常好,一直是参照着你的方法来搭建。最近AdGuard 新出了TrustTunnel 代理协议,能否麻烦你写一篇在Debian系统下的搭建教程,让我们这些小白也能跟着学会,感谢你啦。项目地址:https://github.com/TrustTunnel/TrustTunnel
OK,已经安排上了,非常感谢你推荐这么好的开源项目!
博主你好,我按照你的教程一步步搭建sodoku协议,但却卡在了Windows系统上使用mihomo(Alpha)客户端这一步骤。能否麻烦你出一个教程,教我们如何在Windows 平台上配置使用mihomo(Alpha)客户端,谢谢您。
你好,Windows上有非常多的mihomo客户端(gui),我不知道你目前在用哪一个(或者你想用哪一个),所以这不太好写教程,因为每个客户端的配置都不太一样。。。
如果你想直接在Windows上运行mihomo(裸核)的话,可以参考一下这篇文章:https://lala.im/9853.html,虽然这篇文章是针对Linux的,但思路是差不多的,无非就是把下载的二进制文件换成Windows的,然后在配置文件内加入sudoku的节点信息就可以了。
博主,我的想法就是在Windows系统上运行mihomo(裸核),可对于小白用户来说,直接手搓配置文件确实很难。能否在这篇教程里,增加在Windows系统下,如何通过mihomo(裸核)二进制文件,手搓配置文件并运行sudoku协议,最好启用Tun模式,谢谢。
OK,安排上了,其实很简单的= =