V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wangbin11
V2EX  ›  Android

寻找 raw socket 方面的移动端开发者

  •  
  •   wangbin11 · 24 天前 · 1593 次点击

    众所周知我是做异地组网的,最近在写安卓客户端,之前的方案是搞 tun ,但是多方查证发现没有直接用跑 tun 有几点原因

    1.tun 需要 root 权限 2.我这里没有 ketlin 或者 flutter 开发者来做界面调用 go 写的。so 文件

    经过这些原因干脆直接我把打洞模块封装一下,搞成 so 文件,通过 raw socket 绑定,直接使用官方的 api 类似这种: https://api.flutter.dev/flutter/dart-io/RawSocket-class.html

    想找一个感兴趣的开发者,一起加入我们做异地组网

    11 条回复    2024-08-27 21:55:26 +08:00
    wangbin11
        1
    wangbin11  
    OP
       24 天前
    有意向的可以直接发送联系方式到邮箱 [email protected]
    或者+v wang0123qwe
    pagxir
        2
    pagxir  
       24 天前 via Android
    不用试,没有 root 的 Android 不具有 raw socket 权限
    pagxir
        3
    pagxir  
       24 天前 via Android
    其次,tun 接口在 vpnservices 里有提供,你需要的是集成类似 tun2sock 之类的 tcp/ip 协议栈
    GeekGao
        4
    GeekGao  
       24 天前
    3 楼正解,tun2sock 动态链接库拿来就可以用的
    wangbin11
        5
    wangbin11  
    OP
       24 天前
    @GeekGao
    @pagxir 我查阅的资料是 tun 需要 root ,rawsocket 可以放到用户空间执行
    https://www.yisu.com/jc/110003.html
    wangbin11
        6
    wangbin11  
    OP
       24 天前
    @pagxir 我是这样设想的,我打洞那里是 go 写的 ndk 封装成 so 文件,通过 rawsocket 绑定把数据给到安卓,如果用 tunsock 我这里没有熟悉的,不知道回复的大佬接不接私活,可以加下
    GeekGao
        7
    GeekGao  
       23 天前
    @wangbin11 你查阅的资料不适用于所有安卓系统的非 root 版本。
    gam2046
        8
    gam2046  
       23 天前
    raw socket 不支持非 root 权限下使用,无论是 Java 还是 NDK

    非 root 环境下需要使用,仅能通过 VpnService ,系统实现依旧是通过 tun
    wangbin11
        9
    wangbin11  
    OP
       23 天前
    @gam2046
    @GeekGao
    我是这样理解的 vpnservice 申请 fd 文件符,然后把文件符传递给 so 文件( go 封装的),其他的打洞之后的操作由 so 来完成。不知道理解的对不对,目前还在找相关的开发人员,
    gam2046
        10
    gam2046  
       23 天前
    @wangbin11 #9 可以,但是不一定能实现你的原始需求,当然也不知道你是要做什么。毕竟你也没说。(只是打洞,和 raw socket 并没有什么因果关系)

    如果你想要主动发起 raw socket 是依旧不行的,只是作为 VpnService 可以获取到其他应用的网络数据,其会被包装成三层协议,被转到 VpnService ,并由其决定后续处理方式。
    wangbin11
        11
    wangbin11  
    OP
       23 天前
    @gam2046 大佬辛苦您加我一下,我发了联系方式 1 楼。我现在想改用 vpnservice 需要一个专家
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1001 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:25 · PVG 06:25 · LAX 15:25 · JFK 18:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.