好久没水文章了,在wjh师傅的催更下来写一篇。
前情提要
过去我曾写过一篇subconverter订阅转换及搭配 clash 使用教程
简要介绍了一下subconverter和clash的使用小技巧
本篇将要在原基础上更进一步,透过自定义的subconverter来获得更好的上网体验
本文所解决的问题
会想要做进一步的修改自然是因为实际使用遇到了一些问题:
- Clash存在DNS泄露
- 使用FakeIP后公司内网的DNS解析无法正常获取
- 国域网访问比蜗牛还慢
实际上,为了方便大家使用,已经创建了一个项目来存放相关配置以及创建容器镜像来(如果可以请给我的项目加星 orz )
实际解决思路
解决DNS泄露问题
首先就是修改外部配置文件了,在subconverter订阅转换及搭配 clash 使用教程所介绍的配置目前已不太适用,请参考下面的配置
添加redir-port配置
redir-port是Linux 系统中iptables 的一个模块,它可以将来自特定来源IP 地址和端口的网络流量重定向到另一个目标IP 地址和端口。 这是一种防火墙规则,通常用于将内部网络中的流量重定向到特定的服务器或服务上,或者将流量从一个端口重定向到另一个端口
具体请看 项目地址
为subconverter添加DNS部分的配置模板
由于subconverter默认转换时并不会附带DNS部分的配置,需要客户端进行添加,所以在这里我们直接通过修改subconverter的模板来实现向配置文件添加
具体请看 项目地址
fake-ip-filter
fake-ip-filter
部分所添加的为国域网的域名清单,这边默认给的不多,也就七万多条,其作用是当DNS查询匹配这些域名时,并不会使用FakeIP,而是返回正确的解析,一方面这能提高国域网的访问速度,另一方面,你也可以通过添加自定义的内容(例如公司内网的域名)来获取真实的地址,防止开启代理的同时无法正常访问内网网站
如果你有自己的订阅转换服务器可以参考下面的方法进行自定义:
首先运行一个容器
将容器内的all_base.tpl
拷贝至本地的项容器目文件夹中(下面操作均是在本地的项容器目文件夹中进行的)
将include文件夹拷贝出来
此处我们假设需要自定义的域名列表(格式参考include文件夹下已存在的文件)写在include/URL.txt
中
接着我们向的all_base.tpl
中的fake-ip-filter
部分写入引用这个文件
最后使用如下示例dockercompose文件启用正式的订阅转换服务器即可