Xheldon
V2EX  ›  macOS

Mac 上是否有根据 WiFi 无感切换代理的工具?

  •  
  •   Xheldon · Sep 11, 2020 · 3291 views
    This topic created in 2130 days ago, the information mentioned may be changed or developed.

    场景一:在家路由器自动代理,因此不用打开任何软件,直接使用即可(直连)

    场景二:在外面需要 Mac 配置代理,因此需要手动打开代理软件

    痛点:在上述过程中需要手动打开 /关闭代理软件。

    目前调研结果:没用过 Surge,看起来符合需求?有这么用的吗 麻烦给个结论,可以的话我就买一个。

    现状:目前我代理软件用的 ClashX,看了文档 没有相关的功能。

    需求:就跟 iOS 上的 QuantumultX 的根据 ssid 自动选择是走代理还是走直连一样, 即:电脑无论什么情况会一直运行代理软件,然后它根据 WiFi 名字,选择走直连还是代理,而不是每次手动打开 /关闭软件。

    19 replies    2020-09-15 09:57:29 +08:00
    christin
        1
    christin  
       Sep 11, 2020 via iPhone
    有的 surge 可以 不过需要配置 qx 好像也可以 不过没用过
    https://github.com/Peng-YM/QuanX
    最下面有个 surge 运行模式
    missdeer
        2
    missdeer  
       Sep 11, 2020
    https://github.com/Hammerspoon/hammerspoon
    可能要自己写几行代码
    mooyo
        3
    mooyo  
       Sep 11, 2020
    可以整个软路由自动下发代理网关
    mooyo
        4
    mooyo  
       Sep 11, 2020
    如果有软路由的话 还能根据不同设备自动配置代理或者不代理 整个 100 块钱的 n1 盒子就够了
    likaci
        5
    likaci  
       Sep 11, 2020   ❤️ 1
    Surge 可以
    Clash 用 fallback 模式, 配置一个家里内网才能访问通的 url
    dangyuluo
        6
    dangyuluo  
       Sep 11, 2020
    单纯好奇,你是用的那种架构搭建的透明代理?
    honjow
        7
    honjow  
       Sep 11, 2020
    Surge 确实可以
    zh826256645
        8
    zh826256645  
       Sep 11, 2020
    用 2 楼老哥发的 🔨 工具

    1.mac 网络设置新增一个默认“家”的位置,再新增一个“外面”的位置,这个位置在高级设置中,配置好代理
    2.然后用 🔨 写个检测位置后自动切换网络位置的脚本,检测到家里的网络,就切换到"家"的网络位置,否者切换“外面”的网络位置。

    可以参考下: https://github.com/zh826256645/hammerspoon_config/blob/master/modules/wifi.lua
    1002xin
        9
    1002xin  
       Sep 11, 2020
    Surge 可以,基本操作
    Kobayashi
        10
    Kobayashi  
       Sep 11, 2020 via Android
    hammerspoon 切换 network location (其实和位置没有关系,就是切换网络配置 profile )。surge Mac 监听 WiFi 名切换也是一个思路。
    mooyo
        11
    mooyo  
       Sep 11, 2020 via iPhone
    抱歉看岔了 忽略楼上的的回答吧
    czwen1993
        12
    czwen1993  
       Sep 11, 2020
    我用 ControlPlane,设置定位在家范围内直接关闭代理软件,在家以外的地方打开代理软件。
    ooops
        13
    ooops  
       Sep 12, 2020
    之前正好有同样的需求,用 hammerspoon 搞了个。可以参考下 https://gist.github.com/ooopscc/39570b414bd492c86d2a2e72b5315ac9
    Xheldon
        14
    Xheldon  
    OP
       Sep 12, 2020
    @likaci 这个我试试,本来想弄个仅内网可访问的 url-test 健康检查设置,家里健康检查发现 fail 不会连接代理,外面健康测试可以连接就走代理,但是不清楚这个健康检查的机制:是直接访问 url 还是跟普通的 url 一样,走代理访问...我没试过。
    不过你这个方案似乎更可行,感谢!
    Xheldon
        15
    Xheldon  
    OP
       Sep 12, 2020
    @dangyuluo iOS 上用的 quantumultX,可以这样用,该软件一直运行,可以配置策略如 ssid 名称来决定请求是往哪个地方发送。你问的什么架构没明白什么意思。就是 `设备 <---> 代理软件 <---> 代理服务器` 这种正向代理模式...?

    家里用的梅林,装的 SS
    Xheldon
        16
    Xheldon  
    OP
       Sep 12, 2020
    @christin 好的,我先试试简单的解决方案,毕竟 surge 不便宜... 感谢
    Xheldon
        17
    Xheldon  
    OP
       Sep 12, 2020
    @zh826256645 好的,我试下。

    这个方案似乎跟 clashX 脚本类似。clashX 也支持 Python 脚本,但是该软件的作者说似乎 syscall 无法获取到系统的 ssid (可能是权限问题),所以该软件不支持。

    感谢!
    Xheldon
        18
    Xheldon  
    OP
       Sep 12, 2020
    @czwen1993 又需要一个新的软件来控制...想尽量避免这种情况😂 anyway, 感谢思路!
    chztv
        19
    chztv  
       Sep 15, 2020
    还是入手 Surge 吧,最近越来越强大,楼主说的这种问题我记得 Surge 在 N 年前就解决了。
    最近在 Surge 下还解决了需要用原生 VPN 连接阿里内网才可登录服务器的奇怕需求,再也不需要开开关关 Surge 了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3809 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 142ms · UTC 04:29 · PVG 12:29 · LAX 21:29 · JFK 00:29
    ♥ Do have faith in what you're doing.