软路由更新日志

最近发现clash(mihomo)核心的内存使用率有明显问题,用几天这玩意就能吃200M以上的内存了,再后面就不得不重启。 并且这个核心的DNS性能也存在部分问题,我不得不使用chinadns-ng来代替clash内部的dns. ...

2025年06月21日 · 4 分钟 · 1798 字 · sdttttt

在Linux上数据包的路由行为

好长时间没写blog了,这段时间暂时没有写代码,一直在倒腾软路由的事情。 不过多亏了软路由,我对网络知识的储备又增加了一些。 这篇文章是想好好讲一下关于Linux上的网络数据包的路由处理. 据我现在所了解到的知识,Linux上决定数据包路由流向的关键模块有两个, 第一个是RPDB(Routing Policy DataBase 路由策略数据库),第二个是netfilter/iptables,很多人会把netfilter/iptables直接称之为iptables,也没有问题,但是严格上来说还是分开为好,netfilter是内核中的一部分,提供了一组数据包的hook. iptables则是实现了这些hook,并且提供了在用户空间操作这些hook的办法. ...

2024年06月12日 · 4 分钟 · 1569 字 · sdttttt

关于代理软件的分流

分流其实我一直有在调整, 从最开始使用ssr默认的PAC规则,到后来使用的clash更加强大的规则集, 最后是现在使用的dae的规则. 我一直使用的是白名单模式的分流, 也就是命中的规则会走直连, 未命中的会走代理. 白名单又有一些问题, 确确实实的折磨到了我. ...

2023年12月06日 · 1 分钟 · 424 字 · sdttttt

openclash 转发改为TProxy

最近不想用Tun了,但是OpenClash的转发也不是全走的TProxy,TCP走Redirect,UDP走TProxy 这次修改一下防火墙来达到两个协议都用TProxy 1 2iptables -t mangle -N clash_tproxy 3 4iptables -t mangle -A clash_tproxy -p udp -m udp --sport 500 -j RETURN 5iptables -t mangle -A clash_tproxy -i lo -j RETURN 6iptables -t mangle -A clash_tproxy -m set --match-set localnetwork dst -j RETURN 7 8iptables -t mangle -A clash_tproxy -p udp -m udp --dport 53 -j RETURN 9 10iptables -t mangle -A clash_tproxy -d 198.18.0.0/16 -p udp -j TPROXY --on-port 7895 --on-ip 0.0.0.0 --tproxy-mark 0x162 11iptables -t mangle -A clash_tproxy -d 198.18.0.0/16 -p tcp -j TPROXY --on-port 7895 --on-ip 0.0.0.0 --tproxy-mark 0x162 12 13iptables -t mangle -A clash_tproxy -p udp -j TPROXY --on-port 7895 --on-ip 0.0.0.0 --tproxy-mark 0x162 14iptables -t mangle -A clash_tproxy -p tcp -j TPROXY --on-port 7895 --on-ip 0.0.0.0 --tproxy-mark 0x162 15 16iptables -t mangle -N clash_tproxy_output 17 18iptables -t mangle -A clash_tproxy_output -p udp -m udp --sport 500 -j RETURN 19iptables -t mangle -A clash_tproxy_output -d 198.18.0.0/16 -p udp -m owner ! --uid-owner 65534 -j MARK --set-xmark 0x162 20iptables -t mangle -A clash_tproxy_output -d 198.18.0.0/16 -p tcp -m owner ! --uid-owner 65534 -j MARK --set-xmark 0x162 21 22iptables -t mangle -A PREROUTING -j clash_tproxy 23iptables -t mangle -A OUTPUT -j clash_tproxy_output 然后修改OpenClash的系统脚本 ...

2023年11月22日 · 1 分钟 · 417 字 · sdttttt

更加高性能的代理程序

在OpenWrt社区逛的时候又发现了一些宝贝。 https://github.com/daeuniverse/dae DAE(鹅)又是一个代理程序,不过它是透明代理,可以理解成全局代理,所有流量都会经过该软件。 DAE的特色是使用上了eBPF技术。 eBPF 是 extended Berkeley Packet Filter 的缩写,它是一种内核技术,允许开发人员在不修改内核代码的情况下运行特定的功能。eBPF 的概念源自于 Berkeley Packet Filter(BPF),后者是由贝尔实验室开发的一种网络过滤器,可以捕获和过滤网络数据包。 其实用最简单的话来说就是内核插件技术。 ...

2023年11月22日 · 2 分钟 · 951 字 · sdttttt

关于OpenClash的流量处理

这几天闲来无事, 学习了一些关于iptables的知识, 同时也了解了一下OpenClash在OpenWRT上是怎么对经过网关的流量做透明代理的. 首先是Filter规则, filter是一个专门的流量过滤器, 它是不做任何流量处理的, 只负责拦截. ...

2023年10月04日 · 4 分钟 · 1969 字 · sdttttt

关于MosDNS

其实在翻SmartDNS文档的时候找到了另一个DNS服务器, 那就是MosDNS. “一个 DNS 转发器” MosDNS官方是这么介绍这个DNS的, 但是实际上我更愿意称它是一个可编程的DNS服务器. MosDNS对比其他DNS服务器不同之处就是它的在请求的逻辑处理能力, 以及分流能力非常优秀. ...

2023年09月26日 · 1 分钟 · 359 字 · sdttttt

最近修改之后的DNS情况

最近发现我的Clash的经常会去重新解析DNS, 导致很多时候网站访问速度变慢. Clash的DNS缓存不是很值得信赖. 所以我又找了一个DNS服务器来做Clash的上游, 比较不错的就是SmartDNS, 具有测速和DNS分组的功能. 可以在不同端口上启动不同组别的DNS, 这个很符合clash的nameserver和fallback的机制. ...

2023年09月24日 · 1 分钟 · 298 字 · sdttttt

AdGuard Home DNS失效问题

我的软路由上一般只会开两个软件, 一个是Openclash, 还有一个是AdGuardHome. 一般会首先把ADH替换掉dnsmasq, 让DNS请求全部走到ADH这边, 我使用ADH的理由也比较简单, 就是做一个DNS日志, 然后ADH的上游设成Openclash的DNS, 我使用的clash模式是fake-ip 混合模式, UDP走TUN, TCP走直连. 一般就这么用着. fake-ip用了很长时间稳定性也不错, 基本不会遇到什么问题. ...

2023年09月08日 · 2 分钟 · 666 字 · sdttttt

软路由趋于稳定

软路由使用的固件基本已经定型了, 目前使用的Openwrt固件是18.06版本, 内核是5.4 https://github.com/SuLingGG/OpenWrt-Rpi 该项目只维护18.06-5.4k内核版本的OpenWrt, 不过18.06已经停止支持了. 原本18.06使用的内核版本是4.14, 这个固件是一个定制版, 使用的是5.4内核, 我也没有使用过4.14内核, 也不清楚和5.4对比到底如何, 在我目前使用情况来看, 5.4内核还是比较可靠, 目前也没有出现过非常明显的网络波动以及断线的情况. ...

2023年09月02日 · 1 分钟 · 240 字 · sdttttt