想问一下 clash 如何用策略路由做粗暴的指定 ip 的透明代理?

2023-03-18 21:20:26 +08:00
 kophuai
现在是用 opnsense 加了一条规则, 把!china_ip 给转到了 op 里的 ssr
pc -> opnsene if(!china_ip) -> op ssr -> proxy
目前的 dns 用的还是阿里腾讯的。 (不考虑 dns 污染)

想把 ssr 换掉,换成 clash 。 发现一个问题。 不把 dns 切到 clash 的 dns 的话, 就无法访问。 如果把 dns 切到 clash 上就会有问题。 如果要折腾 clash 那个机器的话马上就会导致任何网站都没法解析了。 所以想保留现有结构。
有什么可行方案吗? 或者说如何把部分 dns 也给转发过去,但是异常了马上可以中断的规则
( 有大佬展开讲讲,为什么 clash 必须要设置 dns 过去?
1584 次点击
所在节点    宽带症候群
8 条回复
starryloki
2023-03-19 14:15:41 +08:00
clash 要获取你的 dns 请求再判断域名是否需要代理,再根据 dns 解析结果重定向这个地址到隧道,你的问题前面用 chinadns-ng 分流 dns 就可以了
kophuai
2023-03-19 15:36:16 +08:00
@starryloki 感谢
chinadns-ng 的用处其实和直接用 clash 的 dns 没区别了。要独立机器去跑这玩意。脱离主路由的机器了。难免自己折腾导致 dns 全停一会
clash 这块主要是不理解为什么一定需要他来做解析域名 我如果把 dns 解好了 直接给现成的包让他走隧道转发再还回来不行吗?
starryloki
2023-03-19 16:14:24 +08:00
@kophuai clash 的代理是直接在路由表将要代理的地址重定向到隧道,只有把 dns 指向 clash 才能让后者知道这个 IP 的域名是否需要代理(在 gfwlist 或其他规则内),反过来如果直接把现成的包发过去,在防火墙和 clash 的角度来看包里只有目的 IP ,就无法应用域名规则。当然如果规范的协议可以解析 L7 的协议,但是直接从 dns 入手性能一定更好
kophuai
2023-03-19 16:29:00 +08:00
@starryloki 直接用 ip 规则 (规则全删只留了 match ) 也不顶用。 更迷惑了。
neroxps
2023-03-19 19:09:33 +08:00
我的做法是在主路由跑脚本,每 15 秒检查一次,如果 dns 解析失败直接切换到运营商的 dns
kophuai
2023-03-19 19:18:26 +08:00
@neroxps 感谢 之前搜到了你的方案 确实是个不错的办法
anonex
2023-04-03 10:42:36 +08:00
experimental:
sniff-tls-sni: true
kophuai
2023-04-03 18:32:31 +08:00
@anonex 感谢, 这个方案完美符合需求. 搜索的时候也顺便看了下 meta 的文档. 发现 meta 也不错. 在考虑要不干脆切到 meta 去. 毕竟不强制 fake ip 了. 就是不知道会不会有什么坑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/925164

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX