1
Fish1024 2023-10-17 17:24:09 +08:00
1. 刷个 openwrt
2. 添加订阅 3. 主路由下发 openwrt 的 ip 作为网关和 dns 比这个大鹅简单吧? |
2
SkywalkerJi 2023-10-17 17:29:46 +08:00 via Android
和 openwrt 比有什么优势?
|
3
yyysuo OP @SkywalkerJi ebpf ,据说对国内的速度影响最小,约等于直连,应该跟 openwrt 比,这是旁路,原来的主路由可以不动,把主路由上的科学关了就好。
|
4
yyysuo OP 不应该跟 openwrt 比。
|
5
sarices 2023-10-17 17:32:13 +08:00
如何使用现有 clash 分流规则?
|
6
yyysuo OP @sarices 默认 geosite 分流吧,可以自己写分流规则,也可以再装一个 debian ,裸跑 clash ,clash 开个 ss 服务端,供大鹅使用,套娃。
https://github.com/daeuniverse/dae/discussions/81 |
7
icetea12138 2023-10-17 17:36:18 +08:00
这种方案客户端还是要手动改网关才行吧?
|
8
yyysuo OP @icetea12138 openwrt 可以直接下发大鹅机的 ip 为网关和 dns 。
设置 DHCP 的附加选项,例如设定 "6,192.168.2.1,192.168.2.2" 表示通告不同的 DNS 服务器给客户端。 |
9
tty228 2023-10-17 17:46:54 +08:00
OpenWrt 也可以装 dae 啊
|
10
Archeb 2023-10-17 18:34:58 +08:00
确实是一个很先进的解决方案。
但它主要解决的是性能问题,而这一点在其主要受众的网络环境中不明显或者有更多更简单的 workaround 。对已经有现存方案的环境来说,去改用 dae 的动力不大;但如果是新部署的环境的话,我会愿意试用一下它。 |
11
OLOrz 2023-10-17 18:52:09 +08:00
还是感觉走 bgp 或者 ospf 按路由分流比较好
|
12
expy 2023-10-17 19:04:04 +08:00
|
13
a90405 2023-10-17 20:44:17 +08:00
看了下性能测试,直连的 IP 压根就不应该进代理程序,用 nftables 直接绕过。
|
15
a90405 2023-10-17 20:49:48 +08:00
旁路还有一个很大的死穴,就是 ipv6 的网关问题很麻烦。
|
16
Donahue 2023-10-17 20:58:48 +08:00
只有直连状态下性能有很大提升,proxy 模式提升很小,还是 openwrt+openclash 省事
|
17
jsq2627 2023-10-17 21:07:35 +08:00 via iPhone
感觉侵入性有点大
像 openclash 等本身也支持用 nftable 直接把大陆 ip 绕过,直连流量一样不经过代理程序。 |
18
mohumohu 2023-10-18 00:19:49 +08:00
静态路由+FAKEIP ,国内直连根本就不经过旁路。https://github.com/kkkgo/PaoPaoGateWay
|
19
ShuWei 2023-10-18 08:06:37 +08:00
eBPF 确实有其优势,避免了部分不必要的流量复制成本,但如果不是大流量场景,节约的那点性能其实没多少意义,侵入系统更底层,很担心作者的代码水平啊,clash Premium core 其实也增加了对 eBPF 的支持
|
21
SenLief 2023-10-18 09:51:17 +08:00 via iPhone
你们的主路由能下发旁路由的 ip 和网关吗?我的 tp 不行,开 dhcp 就抢了。
|
22
SenLief 2023-10-18 09:52:14 +08:00 via iPhone
@mohumohu 你这个其实没什么区别的,旁路由主要是主设备可以是任意的设备,你这个只不过是把功能拆开了。
|
24
jdjingdian 2023-10-18 09:56:16 +08:00
我也在做 eBPF 相关的东西,这个玩意感觉研究的人确实少。
dae 用 eBPF 一个很重要的点应该还是性能上的提升吧(针对直连的性能),非直连的,他的实现方案是通过 xdp 再把数据扔回来,再从用户态走代理出去。 目前在 Ubuntu 和 OpenWrt-23.05 ( MT7981 )上部署成功,但是 OpenWrt 启动加载 eBPF 到内核的速度比较慢 |
25
yyysuo OP @SenLief #21 被谁抢了?我的 xdr 5480 ,在 dhcp 中可以直接写网关和 dns 啊,你局域网里面还有其它设备启用了 dhcp ?
|
27
yyysuo OP @jdjingdian 我主路由 op ,搞一个大鹅 vm ,搞了一个 clash vm ,都是 debian ,clash 开不加密的 ss 的服务端给大鹅 vm 使用。主路由下发大鹅 ip 为网关。在 op 上开 mosdns ,mosdns 国内直接丢给 223.5.5.5 ,国外扔给 clash 的 7874 解析,返回 fakeip ,然后大鹅网关根据 fakeip 来分流,fakeip 丢给 clash ,其它直连。
|
29
jdjingdian 2023-10-18 10:10:54 +08:00
@yyysuo 你的操作太复杂了(我小白 哈哈哈
之前也想研究 mosdns ,但感觉头大 我目前是这样设计的 主路由:RouterOS 旁路由:OpenWrt + dae openwrt 通过 ospf 把非中国的路由表同步到 routerOS ,非中国路由表走 openWrt ,中国路由表直接出去 RouterOS 和 OpenWrt 通过 VRRP 共享一个 ip ,openwrt 为主,DNS 指向这个共享 IP 不过这样弄 DNS 肯定不是很干净就是了,以后慢慢研究改进 |
30
yyysuo OP @jdjingdian #29 你这才是大佬好吧,你搞的这一套,哪一个我都玩不转。
|
32
mohumohu 2023-10-18 12:14:41 +08:00
@yyysuo 不需要改主路由网关,真正国内直连啊,你既然在意直连性能为啥不直接直连呢,节点挂了甚至旁路由电源拔了都不会影响正常上网。
|
34
dude4 2023-10-18 12:16:03 +08:00
在用 openclash+fake ip 旁路由,跑在树莓派上,开了 IPV6 ,目前已解决的问题:
1.IPV6 DNS ,需要在主路由(也是 openwrt )关掉 V6 DNS 通告,这样只通告 V4 DNS ,可以解决部分网站 V6 优先的问题,譬如 engadget ,这样做是因为目前好像 openwrt 用的 ODHCPD 无法单独设置 V6 DNS ,或者没找到好方法 2. 主路由用 dhcp opition+mac 方式给需要的设备通告网关和 V4 DNS ,客户端设备上设置使用设备 mac 码就可以固定分配局域网 IP 和网关,不需要梯子的设备就直连,这样就各取所需了。主路由梯子还是不适合复杂使用的情况,当然我不玩游戏,可能需求不同。 感觉和这个实现的差不多,这个是又另外造了个轮子? |
35
dude4 2023-10-18 12:29:50 +08:00
看了一下介绍,貌似这个轮子还是和 openclash 实现的不一样,是内核级别的,等子弹再飞一会儿, 如果好用可以试试。
|
36
JensenQian 2023-10-18 12:33:40 +08:00 via Android
有点牛,不过旁路由好麻烦
|
37
mohumohu 2023-10-18 13:11:01 +08:00
@dude4 我看了下文档描述是这样的:
``` 域名通过劫持 DNS 请求,将 DNS 请求的域名与所查 IP 进行关联来得到。尽管这种方式有一些问题: 可能会出现误判。例如需要分流到国内和国外的两个网站拥有同一个 IP ,且在短时间内同时被访问,或浏览器有 DNS 缓存。 用户的 DNS 请求必须通过 dae 。例如将 dae 设为 DNS ,或在 dae 作为网关的情况下使用公共 DNS 。 但相比其他方案,这种方案已经是较优解了。例如 Fake IP 方案存在无法通过 IP 分流且存在严重的缓存污染问题,而域名嗅探方案存在只能嗅探 TLS/HTTP 等流量的问题。实际上,通过 SNI 嗅探来进行分流确实是更优选择,但由于 eBPF 对程序复杂度的限制,以及对循环的支持不友好,我们无法在内核空间实现域名嗅探。 ``` 我觉得这个文档说的不完全对,FAKEIP 方案就能域名和 IP 唯一对应没有误判,通过指定静态路由也是可以进行 IP 分流的,缓存污染问题也可以通过添加嗅探解决。 |
42
mohumohu 2023-10-18 14:53:24 +08:00
不过好在新出的 tp 能刷机,特别是联发科的
|
43
n18255447846 2023-10-18 15:23:54 +08:00
核心技术点是 eBPF 吗,有无佬哥说说。。
旁路由就 dhcp 下发网关,不过还要配 iptables 转发流量到代理程序还是有点复杂的 |
45
liulongquan 2023-10-18 16:15:45 +08:00
IPV6 能解决吗
一般旁路由 IPV6 是死穴但是 IPV6 又是刚需的 |
46
a90405 2023-10-18 16:55:41 +08:00
@n18255447846 这玩意运行在 netfilter 之前,用不到 iptables nftables
|
48
bao3 2023-10-18 17:30:20 +08:00
“dhcp 下发网关” “ 设备指定网关” ,这已经不能算是透明网关了,这算是半透明网关了。
简单来说,能在网关上搞的东西,就别用旁路由,不止是上面说的 ipv6 的问题,还有可能旁路由引起梯子瞬断。 |
50
mohumohu 2023-10-18 18:07:04 +08:00
@SenLief 路由器不会连 DNS 都不能自定义吧
https://zhuanlan.zhihu.com/p/474982943 不行还可以用光猫拨号,或者关闭主路由的 DHCP ,用自己的 DHCP 。 |
51
SenLief 2023-10-18 18:09:37 +08:00
@mohumohu 这个好像没什么意义吧,他还是要全部过旁路由的。比较理想的还是主路由 dns 分流,直连直接出,代理走旁路由。
|
52
mohumohu 2023-10-18 19:39:11 +08:00
@SenLief 效果就是你说的比较理想的这样的,主路由设置指定 DNS 和静态路由,DNS 只有需要分流的域名才解析为 FAKEIP ,FAKEIP 静态路由到旁路由,实际国内流量不需要经过旁路由。
|
53
GeekGao 2023-10-18 20:14:49 +08:00
感觉对于“旁路科学”没啥意义,kernel 转发那点延迟和吞吐 在中国电信的 QoS 策略下显得苍白。
|
55
mohumohu 2023-10-18 21:58:04 +08:00
|
56
yyysuo OP @dude4 #34 op 如何关闭 v6 的 dns 通告?我目前填的是 br-lan 的 fe80 ,如果一个都不填,默认下发的 dns 好像是 br-lan 的公网 ipv6 地址。
|
57
ambition117 2023-10-19 02:18:26 +08:00
真的要性能的话,搞个支持 ospf 的三层交换机,线速转发国内、国外的流量到不同网关...
|
58
dude4 2023-10-19 12:13:09 +08:00
@yyysuo 网络-接口-你的 lan 接口-编辑-DHCP 服务器-IPV6 设置
取消“本地 IPV6 DNS 服务器”的钩,然后这个选项上面的“通告 IPV6 DNS 服务器”留空,重启 odhcpd 和 dnsmasq 即可。 这样 windows 和安卓试了只显示 V4 DNS ,V6 DNS 是空白,但不影响 AAAA 解析 |
59
yyysuo OP @dude4 #58 能把/etc/config/dhcp 的 config dhcp 'lan'部分粘一下吗,我的 openwrt 版本没有本地 IPV6 DNS 服务器这个勾,我知道有些版本是有的。
|
60
qwvy2g 2023-10-19 19:01:26 +08:00
有没有一种不需要修改内网网关的透明网关?有的说法是透明网桥。已经测试过在同一个网段内用 iptables 命令劫持是无效的,仔细分析后发现这些设备直接是二层的。openwrt 上的 oc 上倒是很容易能实现,可是想在 openwrt 上的其他软件上也实现类似功能。
|
61
dude4 2023-10-19 22:33:36 +08:00
@yyysuo
` config dhcp 'lan' option interface 'lan' option leasetime '24h' option dhcpv4 'server' option dhcpv6 'server' option ra 'server' list ra_flags 'managed-config' option start '100' option limit '150' option dns_service '0' ` |
62
yyysuo OP @dude4 #61 感谢,我是有状态+无状态,没有取消按钮,不知道怎么改配置文件才能不下发 ipv6 的 dns
config dhcp 'lan' option interface 'lan' option start '100' option limit '150' option leasetime '12h' option dhcpv4 'server' option dhcpv6 'server' option ra 'server' option ra_slaac '1' list ra_flags 'managed-config' list ra_flags 'other-config' option force '1' option ra_management '1' option ra_default '1' list dns 'fe80::20c:29ff:fe8b:e868' list dhcp_option '6,10.10.10.1' list dhcp_option '3,10.10.10.2' |
63
yyysuo OP @mohumohu #55 大佬,我自己主路由 op ,旁路装了个 debian 跑 clash ,主路由上用 mosdns 分流了 dns ,国内直接走公网了,国外部分扔给 clash 的 dns ,返回 fakeip ,然后主路由添加路由表让 fakeip 走 clash vm 。现在遇到 2 个问题,一个是 netflix 提示代理了,我怀疑是 ipv6 或者 netflix 有直连的 ip 的问题,看了一下 netflix 的 ip 段,好多,静态路由加得太多了;另外一个是 udpxy 或者 msd_lite 竟然换台卡顿了,是跃点的原因吗?
|
64
mohumohu 2023-10-20 18:50:43 +08:00
@yyysuo 你 mosdns 可以让他 netflix 的域名不返回 IPv6 结果吧,我觉得可能是 IPv6 的问题。也可能是没有分流到对应域名,你可以开个全局抓一下域名。udpxy 或者 msd_lite 我感觉应该没什么关系,可能是你主路由负载比较高。
|
65
dude4 2023-10-22 09:50:13 +08:00
@yyysuo 你的源码是什么?官方还是 lean 的? lean 的源码基于 openwrt lede ,和官方有些不一样,界面也自己魔改了很多。
|
66
yyysuo OP @dude4 lean 的源码,用 fe80 也不是不能用,并且我发现如果 ipv6 的 dns 没有的话,ipv6 的测试就过不了 。 看了各位大佬的回复,也试了一下 fakeip 网关,体验也不错,实现了真正的透明网关 。
步骤也非常简单,就是装个 debian+clash fakeip ,主路由上装 mosdns ,国内直连 国外丢给 clash dns 解析成 fakeip ,主路由上做静态路由,fakeip 丢给 debian 的 clash 处理即可,需要特殊处理的是电报和奈飞,把他们的 ip 段也添加到静态路由丢给 clash 处理 |
67
willwon1 2023-10-25 11:11:13 +08:00
家里放个手机 手机上开个小火箭 我觉得做旁路由也没啥问题 还稳定
|
69
teadi 245 天前
有个问题,我原本是 copilot 》 openclash 》 us 。
现在装了大鹅是 copilot 》大鹅》就直连了。 所以是需要在大鹅里写一遍 copilot 走代理? |