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

[求助] macOS Sequoia 15.2 系统代理问题,部分应用无法走系统代理

  •  
  •   Sh4wnny · 2025 年 5 月 9 日 · 2605 次点击
    这是一个创建于 249 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题描述

    我目前遇到了一个关于 macOS 系统代理的问题,具体情况如下:

    系统环境:macOS Sequoia 15.2
    网络连接:有线连接公司内网,使用静态 IP
    代理设置:在系统偏好设置中配置了 system proxy 才能访问外网

    具体问题

    正常工作的应用:Edge 浏览器等应用可以正常访问外网

    不能正常工作的应用

    • Safari 浏览器无法浏览外网(访问内网正常)
    • Firefox 浏览器无法浏览外网(访问内网正常)
    • App Store 无法连接
    • Terminal 中的 Homebrew 无法正常使用

    尝试和发现

    我怀疑是 system proxy 并没有代理到全部的网络流量,于是尝试使用了 Proxifier 进行全局代理(而不是使用 system proxy )。结果发现:

    • 使用 Proxifier 后,Safari 和 Terminal 均可以正常访问网络
    • 但 Proxifier 只有 30 天免费试用期

    我的疑问

    1. 这是否为 macOS system proxy 的系统 bug ?
    2. 为什么有些应用可以正常使用系统代理,而另一些则不行?
    3. 有没有其他解决方案可以不依赖 Proxifier 但让所有应用都能走代理?

    感谢各位 V 友的帮助!

    17 条回复    2025-05-10 16:33:47 +08:00
    EchoWhale
        1
    EchoWhale  
       2025 年 5 月 9 日 via iPhone
    走不走系统代理由应用程序决定。
    有的走系统代理,有的需要单独设置,有的完全不走代理。

    这就是为什么需要“透明代理”,它作为网关代理经过的所有流量。

    不想付费 proxifier ,你试试 clash/shadowrocket 之类软件的增强模式/VPN 模式
    najunuoyan
        2
    najunuoyan  
       2025 年 5 月 9 日
    @EchoWhale 1 楼正解
    EVJohn
        3
    EVJohn  
       2025 年 5 月 9 日
    你试试 surge 的虚拟 tun
    1002xin
        4
    1002xin  
       2025 年 5 月 9 日
    如一楼所说,Surge 、Clash 增强模式可解
    Sh4wnny
        5
    Sh4wnny  
    OP
       2025 年 5 月 9 日
    @EchoWhale
    @EVJohn
    @1002xin
    感谢回复!

    我在设置 proxifier 的时候,需要勾选“Use target hostname in proxy request if available” 才可以访问外网,但是在使用 Surge 和其他网络代理工具的时候似乎没有看到类似的选项,猜测代理服务器是否可能通过本地的 mac 地址或者 ip 来判断是否代理? Surge 或者 Clash 的增强模式,虚拟网卡是否会改变本地的某种特征让代理服务器无法识别呢?使用 Surge 的时候显示代理服务器超时
    (如果有常识性错误请多包涵)
    KingZZZZ
        6
    KingZZZZ  
       2025 年 5 月 9 日
    proxifier 有免费激活码
    MacsedProtoss
        7
    MacsedProtoss  
       2025 年 5 月 9 日 via iPhone
    @Sh4wnny 你这种情况需要 surge 中加一个节点 这个节点是那个 http proxy 然后用增强模式接管所有流量都走那个 proxy
    你们公司的网络方案还是太原始了…怎么还用手动配代理的形式啊
    MacsedProtoss
        8
    MacsedProtoss  
       2025 年 5 月 9 日 via iPhone
    @Sh4wnny use target hostname 意思应该是 dns 解析也走 proxy 吧 而不是先解析完再去 proxy 那边用 IP 来访问
    surge 之类的软件默认就是命中了代理规则的都是走代理的 dns 的应该是没啥问题
    另外你也应该学一下基础的计算机网络,这里的网络应该是 router - Mac en0 - Mac surge tun - Mac app 不会影响到 router - Mac en0 这块的 也没有你提出的啥代理服务器无法识别的问题
    263
        9
    263  
       2025 年 5 月 9 日
    因为 Terminal 是绕过 macOS 的网络框架的,直接发起网络请求,所以不会走系统代理,需要单独配置,或则在局域网搭建透明代理。

    本地配置 ~/.zshrc 内加入,自动获取 en0 网卡 ip (可根据自身网卡更改)配置代理,proxy_port 替换为自己实际的,no_proxy 添加自己绕过需代理的,配置好以后重启 Terminal ,Terminial 输入 Proxy on 开启代理,Proxy off 关闭代理:
    function proxy() {
    local ip=$(ipconfig getifaddr en0)
    export all_proxy="socks5://$ip:proxy_port"
    export http_proxy="http://$ip: proxy_port"
    export https_proxy="http://$ip: proxy_port"
    export no_proxy="npmjs.org"
    echo "Proxy on"
    }

    function uproxy() {
    unset all_proxy http_proxy https_proxy no_proxy
    echo "Proxy off"
    }

    或者直接配置,ip 和端口写死,重启 terminal 直接生效
    export all_proxy="socks5://$ip:proxy_port"
    export http_proxy="http://$ip: proxy_port"
    export https_proxy="http://$ip: proxy_port"
    export no_proxy="npmjs.org"
    263
        10
    263  
       2025 年 5 月 9 日
    @263 笔误,是输入 proxy 开启,uproxy 关闭
    Sh4wnny
        11
    Sh4wnny  
    OP
       2025 年 5 月 9 日
    @MacsedProtoss 日本 IT 极其落后... 只要东西能用就绝不改

    我尝试了添加这个 https proxy 到代理,但是访问一直 fail ,不知道是不是在代理服务器的那里的认证有什么问题
    Sh4wnny
        12
    Sh4wnny  
    OP
       2025 年 5 月 9 日
    @263 感谢回复

    因为是用的笔记本有时候会带回家,每次使用 terminal 的时候使用 export https_proxy 确实可以让 terminal 走代理,担心如果直接加入本地配置后使用其他网络会有问题,现在暂时还是每次打开 terminal 时单独设置一遍
    263
        13
    263  
       2025 年 5 月 9 日
    所以你可以加两个函数,执行 proxy 开启,uproxy 关闭,灵活一些
    Sh4wnny
        14
    Sh4wnny  
    OP
       2025 年 5 月 9 日
    @MacsedProtoss 感谢!刚刚去查看了 Surge 关于 DNS 的描述:“By default, the DNS resolve always happens on the remote proxy server since Surge always sends proxy requests with domains.” 应该就和您之前说的一样不需要特意更改。
    因为在传统工科行业网络相关的问题基本很难接触,计算机相关知识也是碰上了问题才去学习,感谢解答
    rebounce
        15
    rebounce  
       2025 年 5 月 9 日
    不要升级,用 Monterey 这种 LTS 版本。
    cohen121
        16
    cohen121  
       2025 年 5 月 9 日
    这里的系统代理可以简单理解为就是一个配置项,程序可以选择读取这个配置+自己内部实现的代理协议走代理。 所以这个系统代理和 让系统流量都走代理是没有任何关系的。
    Volekingsg
        17
    Volekingsg  
       2025 年 5 月 10 日
    Safari 应该是会遵循系统配置的 System Proxy ,因此建议检查有限网络 DNS 是否设置?
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5429 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:32 · PVG 16:32 · LAX 00:32 · JFK 03:32
    ♥ Do have faith in what you're doing.