@soffchen 透明代理是一个很好的功能,但有很多问题不得不考虑
首先要实现让流量导向 clash,这里三端都不太相同: macOS 是用 pf,Linux 是 iptables,Windows 不是很清楚
但是 clash 的初衷是作为一个全平台代理,所以在考虑新功能时会考虑让三个平台都支持,比如控制 clash 最后选择的是 RESTful 而不是 Unix Socket
如果要实现的话需要为三个平台写兼容代码,但我更倾向于把它加到 GUI 要实现的部分,clash 作为一个纯粹的代理
关于这点我还需要想想
个人建议优先支持 linux only 就可以,本项目的定位可以偏向于 linux 翻墙网关用
至于带 gui 的 app,可以有 SpechtLite, Surge 等项目来完成 :)
当然,也可以由 redsocks, gost 等项目来实现透明代理功能。
@soffchen
这个项目开始做的意图就是替代我现在用的 Spechtlite,毕竟由于作者的意愿,不愿意再更新 ss 后续的算法(如 AEAD),至于后面还做不做 ssr 的适配,得看用的人多不多了,我的看法其实和 Spechtlite 和 Surge 作者的想法类似,不太喜欢 ssr。
至于 Surge,我真的不认为它值 50 刀,所以这个项目最初的目的是做一个 macOS 上我觉得最好用的代理。 因为是 Golang 的缘故,我把它做成全平台性质的项目。目前在尝试使用 Electron 做 GUI 部分,有点和 Golang 一样,可以直接跨平台,缺点是生成的编译结果太大了。
目前的规划是先把 RESTful Controller 补全,加上 UDP 支持,先完善后在考虑拓展功能的问题。
现在 dev 版本支持了 macOS 以及 Linux 的 IPv4 redir 代理,会在最近 release 一个版本。
请问这个feature目前进展如何?我看到配置文件里有redir port的选项,但是如何配合macOS的pf使用呢??
@tony1016 现在的话可以参考 https://docs.mitmproxy.org/stable/howto-transparent/ ,之后的话应该是应用于类似 surge 的增强模式。
我几天前照着 mitmproxy 的文档配置了一下,mitmproxy 可以工作,但是 clash 不能,@Dreamacro 确认可以工作吗?
目测虽然支持 redir,但是 redirector 过来的只有 ip 信息,可能不能处理域名规则?
@soffchen 好像不行,后续应该会通过 Custom DNS Server 处理这个问题
@soffchen 好像不行,后续应该会通过 Custom DNS Server 处理这个问题
glider 的做法是内建 dns,客户端 dns 解析触发建立 domain-> ip 的映射,然后对这些解析出来的 ip 使用对应的 domain 规则。
还有一种做法就是 fake dns 了
目前在本地开 (output链) 会比较困难区分出来自 clash 的流量和应用的流量,导致包被循环转发。
类似 ss redir 这种因为规则是在 iptables 配置的,可以保证 redirect 进去的包全都走代理,根据目标 ip 区分出来。
请问下这种情况下有什么好的方法区分吗,谢谢
update:看起来网上比较推荐的方案是把应用启动在另一个 uid,再根据 iptables 的 uid 功能区分
个人认为如果将来能适配ssr,将会彻底取代除手机平台上的绝大多数客户端,终将一统江湖…毕竟ssr用户数量可能非常庞大,因单端口多用户等特性被大量机场采用。还望作者能考虑以后能加入,虽然个人也不太喜欢ssr…但群众基础也会带动其它方面发展,比如gui
@yulewang ssr 是不可能的,个人原因不会支持,不会合相关 PR
请问ssr有什么不好的地方么?会让你们不喜欢。我纯粹小白,求指点和学习
请问ssr有什么不好的地方么?会让你们不喜欢。我纯粹小白,求指点和学习
有人喜欢 vi,有人喜欢 emacs,没有为什么,哈
我查到了哈,我大概知道事情的原委了。互联网真的到处有痕迹。其实本来挺诧异为什么就兼容ssr的。现在明白啦~谢谢哦
目前可以用redsocks将UDP流量打向Clash的Socks5端口,实现UDP的透明代理吗?求指教 @soffchen
Most helpful comment
@soffchen
这个项目开始做的意图就是替代我现在用的 Spechtlite,毕竟由于作者的意愿,不愿意再更新 ss 后续的算法(如 AEAD),至于后面还做不做 ssr 的适配,得看用的人多不多了,我的看法其实和 Spechtlite 和 Surge 作者的想法类似,不太喜欢 ssr。
至于 Surge,我真的不认为它值 50 刀,所以这个项目最初的目的是做一个 macOS 上
我觉得最好用的代理。 因为是 Golang 的缘故,我把它做成全平台性质的项目。目前在尝试使用 Electron 做 GUI 部分,有点和 Golang 一样,可以直接跨平台,缺点是生成的编译结果太大了。目前的规划是先把 RESTful Controller 补全,加上 UDP 支持,先完善后在考虑拓展功能的问题。