V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wuhx
V2EX  ›  程序员

再造轮子: shadowriver 一个纯 JVM/Scala 实现的 Android VPN 应用程序

  •  
  •   wuhx · 2017-05-10 16:14:58 +08:00 · 4333 次点击
    这是一个创建于 2783 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/wuhx/shadowriver

    一年前写的东西,因为解决不了性能问题,丢着一直没管。 抽空特地整理了一下,也算是做个总结。

    需求是在 App 内能看到或修改其他 App 的网络数据包。

    主要的想法是在 JVM 内实现了一个简单 TCP/IP 协议栈,直接把从 VPN 接口收到的数据包解开,检查 payload 并通过 tunnel 发送出去。而不是象 SS 那样通过第三方的 ss-tunnel,tun2socks 等 C 程序做。

    11 条回复    2017-05-11 10:03:00 +08:00
    hemoely
        1
    hemoely  
       2017-05-10 16:24:29 +08:00
    顶楼主精神
    ayanamist
        2
    ayanamist  
       2017-05-10 16:25:47 +08:00 via Android
    有一个叫 Packet Capture 的 app
    liangzhitao
        3
    liangzhitao  
       2017-05-10 16:39:40 +08:00
    楼主用 scala 写 Android 是用的什么 IDE ?
    xy19009188
        4
    xy19009188  
       2017-05-10 16:48:01 +08:00 via Android
    能给个 release 么
    wuhx
        5
    wuhx  
    OP
       2017-05-10 17:08:40 +08:00
    @xy19009188
    sbt run
    会下载所有依赖,包括 Android Sdk

    @liangzhitao
    IntelliJ
    gamexg
        6
    gamexg  
       2017-05-10 17:33:11 +08:00
    牛人,
    曾经想写个 vp n转s s 的程序,写了一部分就没能坚持下去。
    futurexu
        7
    futurexu  
       2017-05-10 17:51:45 +08:00
    66666
    wuhx
        8
    wuhx  
    OP
       2017-05-10 18:02:00 +08:00   ❤️ 1
    @ayanamist
    特地安装试用了一下,很接近我想做的东西了,再加几个功能就完美了:
    1. 兼容 ShadowSocks,可以当 VPN 用。
    2. 支持解码插件,用户可以自己写解码插件,Packet Capture 只支持解码 HTTP 协议,并且 gzip 都不能解码。
    3. 支持按 App 设置规则,可以当防火墙用。
    AsisA
        9
    AsisA  
       2017-05-10 18:44:40 +08:00 via Android
    @wuhx Packet Capture 支持 https,安装它的证书即可
    taowen
        10
    taowen  
       2017-05-11 09:46:43 +08:00
    精神可歌可泣。居然手撸 TCP/IP 状态机。
    wuhx
        11
    wuhx  
    OP
       2017-05-11 10:03:00 +08:00
    @taowen 是的,借机重新翻了一遍《 TCP/IP 详解》,也算很有收获
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   882 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:59 · PVG 05:59 · LAX 13:59 · JFK 16:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.