我目前遇到了一个关于 macOS 系统代理的问题,具体情况如下:
系统环境:macOS Sequoia 15.2
网络连接:有线连接公司内网,使用静态 IP
代理设置:在系统偏好设置中配置了 system proxy 才能访问外网
正常工作的应用:Edge 浏览器等应用可以正常访问外网
不能正常工作的应用:
我怀疑是 system proxy 并没有代理到全部的网络流量,于是尝试使用了 Proxifier 进行全局代理(而不是使用 system proxy )。结果发现:
感谢各位 V 友的帮助!
![]() |
1
EchoWhale 43 天前 via iPhone
走不走系统代理由应用程序决定。
有的走系统代理,有的需要单独设置,有的完全不走代理。 这就是为什么需要“透明代理”,它作为网关代理经过的所有流量。 不想付费 proxifier ,你试试 clash/shadowrocket 之类软件的增强模式/VPN 模式 |
2
najunuoyan 43 天前
@EchoWhale 1 楼正解
|
3
EVJohn 43 天前
你试试 surge 的虚拟 tun
|
![]() |
4
1002xin 43 天前
如一楼所说,Surge 、Clash 增强模式可解
|
5
Sh4wnny OP |
![]() |
6
KingZZZZ 43 天前
proxifier 有免费激活码
|
7
MacsedProtoss 43 天前 via iPhone
@Sh4wnny 你这种情况需要 surge 中加一个节点 这个节点是那个 http proxy 然后用增强模式接管所有流量都走那个 proxy
你们公司的网络方案还是太原始了…怎么还用手动配代理的形式啊 |
8
MacsedProtoss 43 天前 via iPhone
@Sh4wnny use target hostname 意思应该是 dns 解析也走 proxy 吧 而不是先解析完再去 proxy 那边用 IP 来访问
surge 之类的软件默认就是命中了代理规则的都是走代理的 dns 的应该是没啥问题 另外你也应该学一下基础的计算机网络,这里的网络应该是 router - Mac en0 - Mac surge tun - Mac app 不会影响到 router - Mac en0 这块的 也没有你提出的啥代理服务器无法识别的问题 |
9
263 43 天前
因为 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" |
11
Sh4wnny OP @MacsedProtoss 日本 IT 极其落后... 只要东西能用就绝不改
我尝试了添加这个 https proxy 到代理,但是访问一直 fail ,不知道是不是在代理服务器的那里的认证有什么问题 |
12
Sh4wnny OP @263 感谢回复
因为是用的笔记本有时候会带回家,每次使用 terminal 的时候使用 export https_proxy 确实可以让 terminal 走代理,担心如果直接加入本地配置后使用其他网络会有问题,现在暂时还是每次打开 terminal 时单独设置一遍 |
13
263 43 天前
所以你可以加两个函数,执行 proxy 开启,uproxy 关闭,灵活一些
|
14
Sh4wnny OP @MacsedProtoss 感谢!刚刚去查看了 Surge 关于 DNS 的描述:“By default, the DNS resolve always happens on the remote proxy server since Surge always sends proxy requests with domains.” 应该就和您之前说的一样不需要特意更改。
因为在传统工科行业网络相关的问题基本很难接触,计算机相关知识也是碰上了问题才去学习,感谢解答 |
15
rebounce 43 天前
不要升级,用 Monterey 这种 LTS 版本。
|
16
cohen121 43 天前
这里的系统代理可以简单理解为就是一个配置项,程序可以选择读取这个配置+自己内部实现的代理协议走代理。 所以这个系统代理和 让系统流量都走代理是没有任何关系的。
|
17
Volekingsg 42 天前
Safari 应该是会遵循系统配置的 System Proxy ,因此建议检查有限网络 DNS 是否设置?
|