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

Network Extension 太贵,一怒之下写了个基于 DNS 的透明打洞工具

  •  1
     
  •   wweir · 39 天前 · 3937 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。
    透明打洞的好处就不多说了,然而 macOS 上想实现透明打洞却不是一件简单的事,特别是对我们这种有正版洁癖的人而言。
    想用上 Network Extension 这个官方的解决方案,要交那么多苹果税,心里实在憋屈。

    所以自己写了个基于 DNS 的打洞工具,最近较为稳定了,分享一下: https://github.com/wweir/sower

    整体功能比酸酸(乳)强多了,相当于 v2ray 的子集。

    为啥不直接用 v2ray 呢?
    一是 v2ray 的 dns 这一块没怎么发力,
    二是 v2ray 的配置实在是有点复杂,
    三是自己想写点网络程序练练手。

    希望工具能保持小众,所以本文和 readme 写得比较隐晦,想玩的可以自己尝试。
    第 1 条附言  ·  34 天前

    插眼福利 周末完善了 CI/CD, 写了个自动部署脚本,现在安装不用自己配置开发环境了。

    安装方式 下载地址

    同时,写了篇技术博客,分析了一下 sower 中用到的技术点。

    透明代理 Sower 技术剖析

    第 2 条附言  ·  33 天前

    实践分享,成功实现全局透明代理。只要连上 WI-FI,不用任何配置,就可以自由翱翔:

    1. 在自己的 VPS 起一个 sower server 端
    2. 在内网 192.168.1.3 的机器上安装了 sower client 端,其中配置项 client_ip 改为 192.168.1.3
    3. 修改路由器中主 DNS 为 192.168.1.3,副 DNS 为 223.5.5.5
    第 3 条附言  ·  31 天前
    做了个小升级,可以自动学习访问的被屏蔽的网站,也就是说,再也不用去管有哪些网站被屏蔽。

    具体表现与屏蔽方式有关,一般表现为:
    第一次访问被屏蔽的网站较慢,需要多等几秒。
    如果不行,等两秒,重启一下浏览器就好了。
    第 4 条附言  ·  30 天前

    秀一波啥叫智能透明代理,默认规则用了半天之后自动激活了 loopup 的一堆功能

    透明代理

    36 回复  |  直到 2019-02-09 03:37:27 +08:00
        1
    hanbing135   39 天前 via Android
    支持一下
        2
    OctopusGO   39 天前 via Android
    支持一下
        3
    Chingim   39 天前 via Android
    膜拜大佬
        4
    Chingim   39 天前 via Android
    所以内部实现了 ss/kcp 协议吗
        5
    msn1983aa   39 天前
    这一怒效果还不错
        6
    wweir   39 天前
    @Chingim ss 实现了,kcp 直接调库
        7
    seven2bit   39 天前
    这个厉害了~~~
        8
    arthasgxy   39 天前
    大兄弟,,讲真的不是我说。。
    2K 刀是个关键。
    你可以服务质量差点,但这个价格,谁能买啊?

    我给你讲,我之前在家小公司,稍微大一点的时候,老板就想自己写个统计系统。。。。不想用友盟了。。
    为毛啊?都是互联网的公司啊,简单的统计又不是做不到,还能不被别人拿走数据。

    so,太小的公司 2000RMB 都未必付得起;稍微大点的公司,连友盟都不信…… 为何相信你?
        9
    arthasgxy   39 天前
    啊,,,不好意思发错地方了。。。crtl+tab 发歪了,,实在抱歉。。原本想回复这里的,https://www.v2ex.com/t/527278#reply72
        10
    CallMeReznov   39 天前
    @arthasgxy #8 兄弟你说个什么东西
        11
    arthasgxy   38 天前
    @CallMeReznov 已经说了发错了…… 逛 v2 习惯同时点开多个主题,犯困回错了
        12
    arthasgxy   38 天前   ♥ 1
    首先感谢一下楼主,第一次接触打洞技术,感觉新世界的大门。
    其次求教一下,我找了一圈没找到透明打洞这个概念,,,这个透明是个什么意思?求解惑
        13
    2333zzz   38 天前 via iPhone
    @arthasgxy 透明代理
        14
    leafleave   38 天前 via iPhone
    我设想过一个只要更改客户机的 DNS 就能实现透明 XX 的工具,不知道楼主这个是不是跟我想的一样
        15
    ptyfork   38 天前
    已 star, 一直在用 v2,po 主提到不用的两个理由确实也是我遇到的痛点。
        16
    bao3   38 天前 via iPhone
    v2ray 确实复杂,虽然熟了后会好很多。dns 挺弱
        17
    wweir   38 天前 via Android
    @leafleave 有点小区别,除了要修改 DNS 还要安装一个客户端。
    如果把客户端装在别的机器上(如:路由器),就和你描述的一模一样了。
        18
    iamadiggo   38 天前 via iPhone
    如果 client 有 ssl pinning 是不是就不行了?
        19
    wweir   38 天前 via Android
    @iamadiggo 支持。只需要能够解析 sni,获取目标服务器地址就可以
        20
    coolmenu   38 天前 via Android
    支持一下!
        21
    0312birdzhang   38 天前
    战略性马克
        22
    ruanmeibi   38 天前 via iPhone
    不明觉厉
        23
    canglaoshi   38 天前
    kungfu-pro 了解一下
        24
    leafleave   38 天前 via iPhone
    @wweir 那还要客户端干啥😂😂,直接在服务端增加一个 dns 服务不就行了
        25
    leafleave   38 天前 via iPhone
    @wweir 主要是 xbox 不能配置代理,只能修改 dns,我才想起这个
        26
    leafleave   38 天前 via iPhone
    另外你这个是只能用于 80 443 端口,还是全端口 XX ?
        27
    wweir   38 天前
    @leafleave 直接修改 dns,依然要在公网上走明文流量,依然要被屏蔽。
    xbox 如果不方便手动安装程序,可以把 dns 指向家里的其它机器,在其他机器上起客户端
        28
    wweir   38 天前
    @leafleave 80 443。每支持一个端口,都要分析端口对应的协议,工作量较大,如果需要支持其它协议,提 pr 就好。套话叫:社区支持
        29
    leafleave   38 天前 via iPhone
    @wweir 哦,还要分析协议啊,我以为可以直接原封不动转发
        30
    wweir   38 天前
    @leafleave 是原封不动转发,但要从流量中提取目标服务器的地址
        31
    szdosar   38 天前 via iPhone
    @0312birdzhang 同战略
        32
    MrUser   37 天前 via iPhone
    @szdosar 战略+1
        33
    wweir   31 天前
    日常使用到的功能点完备,UP 一下
        34
    wednesdayco   31 天前
    留名 UP
        35
    regent   15 天前
    阅读之后向楼主请教一下:方案基于 dns 做解决方案,分服务端和客户端,局域网有一台设备作为客户端即可,其余设备将 dns 指向安装好客户端的设备即可实现打洞,这个理解正确否?
        36
    wweir   14 天前 via Android
    @regent 是的,是这么回事。甚至可以在路由器上设置 DNS,实现完整的全局透明代理
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1691 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 16:32 · PVG 00:32 · LAX 08:32 · JFK 11:32
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1