https://github.com/wuhx/shadowriver
一年前写的东西,因为解决不了性能问题,丢着一直没管。 抽空特地整理了一下,也算是做个总结。
需求是在 App 内能看到或修改其他 App 的网络数据包。
主要的想法是在 JVM 内实现了一个简单 TCP/IP 协议栈,直接把从 VPN 接口收到的数据包解开,检查 payload 并通过 tunnel 发送出去。而不是象 SS 那样通过第三方的 ss-tunnel,tun2socks 等 C 程序做。
![]() | 1 hemoely 2017-05-10 16:24:29 +08:00 顶楼主精神 |
![]() | 2 ayanamist 2017-05-10 16:25:47 +08:00 via Android 有一个叫 Packet Capture 的 app |
3 liangzhitao 2017-05-10 16:39:40 +08:00 楼主用 scala 写 Android 是用的什么 IDE ? |
![]() | 4 xy19009188 2017-05-10 16:48:01 +08:00 via Android 能给个 release 么 |
![]() | 5 wuhx OP |
![]() | 6 gamexg 2017-05-10 17:33:11 +08:00 牛人, 曾经想写个 vp n转s s 的程序,写了一部分就没能坚持下去。 |
7 futurexu 2017-05-10 17:51:45 +08:00 66666 |
![]() | 8 wuhx OP ![]() @ayanamist 特地安装试用了一下,很接近我想做的东西了,再加几个功能就完美了: 1. 兼容 ShadowSocks,可以当 VPN 用。 2. 支持解码插件,用户可以自己写解码插件,Packet Capture 只支持解码 HTTP 协议,并且 gzip 都不能解码。 3. 支持按 App 设置规则,可以当防火墙用。 |
![]() | 10 taowen 2017-05-11 09:46:43 +08:00 精神可歌可泣。居然手撸 TCP/IP 状态机。 |