• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wuhx
V2EX  ›  程序员

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

  •  
  •   wuhx · May 10, 2017 · 5662 views
    This topic created in 3465 days ago, the information mentioned may be changed or developed.

    https://github.com/wuhx/shadowriver

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

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

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

    11 replies  •  2017-05-11 10:03:00 +08:00
    hemoely
    hemoely
    May 10, 2017
    1
    顶楼主精神
    ayanamist
    ayanamist
    May 10, 2017 via Android
    2
    有一个叫 Packet Capture 的 app
    liangzhitao
    liangzhitao
    May 10, 2017
    3
    楼主用 scala 写 Android 是用的什么 IDE ?
    xy19009188
    xy19009188
    May 10, 2017 via Android
    4
    能给个 release 么
    wuhx
    wuhx
    OP
    May 10, 2017
    5
    @xy19009188
    sbt run
    会下载所有依赖,包括 Android Sdk

    @liangzhitao
    IntelliJ
    gamexg
    gamexg
    May 10, 2017
    6
    牛人,
    曾经想写个 vp n转s s 的程序,写了一部分就没能坚持下去。
    futurexu
    futurexu
    May 10, 2017
    7
    66666
    wuhx
    wuhx
    OP
    May 10, 2017❤️1
    8
    @ayanamist
    特地安装试用了一下,很接近我想做的东西了,再加几个功能就完美了:
    1. 兼容 ShadowSocks,可以当 VPN 用。
    2. 支持解码插件,用户可以自己写解码插件,Packet Capture 只支持解码 HTTP 协议,并且 gzip 都不能解码。
    3. 支持按 App 设置规则,可以当防火墙用。
    AsisA
    AsisA
    May 10, 2017 via Android
    9
    @wuhx Packet Capture 支持 https,安装它的证书即可
    taowen
    taowen
    May 11, 2017
    10
    精神可歌可泣。居然手撸 TCP/IP 状态机。
    wuhx
    wuhx
    OP
    May 11, 2017
    11
    @taowen 是的,借机重新翻了一遍《 TCP/IP 详解》,也算很有收获
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2422 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 15:36 · PVG 23:36 · LAX 07:36 · JFK 10:36
    ♥ Do have faith in what you're doing.