当时假期看到bypass-GFW-SNI这个项目就想着自己也写一个学习一下,所以就有了这个项目
YASRP - https://github.com/Illusion2-1/YASRP
| 组件 | 技术 | 关键决策依据 |
|---|---|---|
| 传输协议栈 | .NET Core 8 | 1. 原生HTTP/2与TLS 1.3无缝衔接能力 2. SocketsHttpHandler提供底层TCP连接精准控制 3. 跨平台兼容性满足实验规模化部署需求 |
| 请求代理引擎 | Kestrel Middleware | 1. 并发能力 2. 基于流水线架构动态注入ConnectCallback |
| DNS设施 | DoH Local LRU Cache | 1. 规避基于UDP的传统DNS劫持问题 2. 利用公共DoH服务实现解析结果校验 3. 缓存预加载机制降低首次查询延迟 |
| TLS策略 | SNI重写 证书卸载 | 1. 在握手阶段动态注入TargetHost的伪装逻辑 2. 允许绕过中间设备SNI过滤规则 |
找补
因为已经有很多成熟的像steamcommunity302或者watt toolkit这样的工具了,所以写这个项目主要还是学习为主,写出了个控制台小工具,不期待能用在生产环境上;
编写的过程中也确实学到了很多,也能有幸向Steamcommunity302的作者Dogfight360请教技术。
目前支持Linux,Windows还未测试过,workflow也没有提供Windows的可执行程序。
但是最后因为一开始就是抱着学习技术的心态去写的,也不知道要写什么了,希望能得到大伙都宝贵意见~
场景
主要是用在大陆鸡上的,对我自己而言经常要拉一些hf和github的资源,直接拉肯定是拉不下来的,我又懒得总是去找镜像;有这个工具就可以直接访问了
使用示例
从Workflow下载最新的可执行文件,赋予执行权限并运行
sudo apt-get install -y aspnetcore-runtime-8.0 #安装.net runtime
chmod x YASRP
sudo ./YASRP
#绑定443端口普遍需要root,如果不想使用root,可以用sudo setcap cap_net_bind_service= ep YASRP
接着用curl或wget,例如下载hf的模型:
curl --resolve huggingface.co:443:127.0.0.1 -L -k https://huggingface.co/BlinkDL/rwkv-5-music/resolve/main/RWKV-5-MIDI-560M-v1-20230902-ctx4096.pth --output RWKV-5-MIDI-560M-v1-20230902-ctx4096.pth
原本打算还做写hosts解析和安装证书的功能,但是既然已经放完假了,就还没写

我来试试
@tansel #1 也欢迎给咱提issue~
@Illusion2-1 #2 比如我要在国内服务器下这个应该怎么写