subconverter进阶使用教学
好久没水文章了,在wjh师傅的催更下来写一篇。
前情提要
过去我曾写过一篇subconverter订阅转换及搭配 clash 使用教程
简要介绍了一下subconverter和clash的使用小技巧
本篇将要在原基础上更进一步,透过自定义的subconverter来获得更好的上网体验
本文所解决的问题
会想要做进一步的修改自然是因为实际使用遇到了一些问题:
- Clash存在DNS泄露
- 使用FakeIP后公司内网的DNS解析无法正常获取
- 国域网访问比蜗牛还慢
实际上,为了方便大家使用,已经创建了一个项目来存放相关配置以及创建容器镜像来(如果可以请给我的项目加星 orz )
实际解决思路
解决DNS泄露问题
首先就是修改外部配置文件了,在subconverter订阅转换及搭配 clash 使用教程所介绍的配置目前已不太适用,请参考下面的配置
[custom]
;不要随意改变关键字,否则会导致出错
;设置规则标志位
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/UnBan.list
ruleset=🛑 全球拦截,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanAD.list
ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Google.list
ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/GoogleFCM.list
ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/GoogleCN.list
ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/GoogleCNProxyIP.list
ruleset=📺 巴哈姆特,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Bahamut.list
ruleset=📺 Youtube,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/YouTubeMusic.list
ruleset=📺 Youtube,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/YouTube.list
ruleset=🔰 节点选择,rules/ConnersHua/Surge/Ruleset/Global.list
ruleset=🍎 苹果服务,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Apple.list
ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Developer.list
ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Github.list
ruleset=Netflix,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Netflix.list
ruleset=Netflix,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/NetflixIP.list
ruleset=🔞 R18,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Porn.list
ruleset=🖼️ Pixiv,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Pixiv.list
ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Developer.list
ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Github.list
ruleset=Disney+,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/DisneyPlus.list
ruleset=✈️ Telegram,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Telegram.list
ruleset=🪟 巨硬服务,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Microsoft.list
ruleset=🪟 巨硬服务,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/OneDrive.list
ruleset=🎮 Xbox,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Xbox.list
ruleset=🕹︎ Nintendo,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Nintendo.list
ruleset=🖥️ PC游戏平台,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Epic.list
ruleset=🖥️ PC游戏平台,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Steam.list
ruleset=🖥️ PC游戏平台,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Blizzard.list
ruleset=🤖 AI相关,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/OpenAi.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaIpV6.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Download.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/UnBan.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaDomain.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaMedia.list
ruleset=REJECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanAD.list
ruleset=REJECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanProgramAD.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaCompanyIp.list
ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaIp.list
ruleset=DIRECT,[]GEOIP,CN,no-resolve
ruleset=🐟 漏网之鱼,[]FINAL
;设置规则标志位
;设置分组标志位
custom_proxy_group=🔰 节点选择`select`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]流媒体`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=✈ 手动选择`select`.*
custom_proxy_group=Disney+`select`[]🔰 节点选择`[]🇹🇼 台湾地区`[]🇸🇬 新加坡`[]🇹🇼🇸🇬 中文地区`[]流媒体`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=Google`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=📺 Youtube`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=⚙️ 开发者`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🕹︎ Nintendo`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🖥️ PC游戏平台`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🎮 Xbox`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🤖 AI相关`select`[]🔰 节点选择`[]🇹🇼 台湾地区`[]🇸🇬 新加坡`[]🇹🇼🇸🇬 中文地区`[]流媒体`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🖼️ Pixiv`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=✈️ Telegram`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=📺 巴哈姆特`select`[]🇹🇼 台湾地区`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`(台)
custom_proxy_group=🍎 苹果服务`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🪟 巨硬服务`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🔞 R18`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=Netflix`select`[]🔰 节点选择`[]🇹🇼🇸🇬 中文地区`[]流媒体`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼 台湾地区`[]🇸🇬 新加坡`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT
custom_proxy_group=🌏 全球直连`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换
custom_proxy_group=🛑 全球拦截`select`[]REJECT`[]DIRECT
custom_proxy_group=🐟 漏网之鱼`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT
custom_proxy_group=✈ 延迟最低`url-test`.*`http://www.gstatic.com/generate_204`500
custom_proxy_group=✈ 故障切换`fallback`.*`http://www.gstatic.com/generate_204`500
custom_proxy_group=🌏 亚洲及大洋洲`url-test`(台|新|日|韩|马来|印度|澳大利亚|新西兰)`http://www.gstatic.com/generate_204`500
custom_proxy_group=🌍 欧洲及中东地区`url-test`(英|法|德|阿姆斯特丹|荷兰|土耳其|比利时|瑞士)`http://www.gstatic.com/generate_204`500
custom_proxy_group=🇺🇸🇨🇦 北美通用`url-test`(美|加拿)`http://www.gstatic.com/generate_204`500
custom_proxy_group=🇹🇼🇸🇬 中文地区`url-test`(台|新)`http://www.gstatic.com/generate_204`500
custom_proxy_group=🇹🇼 台湾地区`url-test`(台)`http://www.gstatic.com/generate_204`500
custom_proxy_group=🇯🇵 日本国`url-test`(日)`http://www.gstatic.com/generate_204`500
custom_proxy_group=🇸🇬 新加坡`url-test`(新加坡|R新|s新)`http://www.gstatic.com/generate_204`500
custom_proxy_group=流媒体`url-test`(R台|s台|R新|s新|流|流媒体)`http://www.gstatic.com/generate_204`500
custom_proxy_group=🪙超低倍率0.2`url-test`(0.2)`http://www.gstatic.com/generate_204`500
;设置分组标志位
enable_rule_generator=true
overwrite_original_rules=true
exclude_remarks=(到期|官方|Traffic|Expire|剩余|时间|官网|产品|香港|俄罗斯)
enable_rule_generator=true
overwrite_original_rules=true
添加redir-port配置
redir-port是Linux 系统中iptables 的一个模块,它可以将来自特定来源IP 地址和端口的网络流量重定向到另一个目标IP 地址和端口。 这是一种防火墙规则,通常用于将内部网络中的流量重定向到特定的服务器或服务上,或者将流量从一个端口重定向到另一个端口
具体请看 项目地址
为subconverter添加DNS部分的配置模板
由于subconverter默认转换时并不会附带DNS部分的配置,需要客户端进行添加,所以在这里我们直接通过修改subconverter的模板来实现向配置文件添加
dns:
enable: true
listen: 127.0.0.1:8853
default-nameserver:
- 223.5.5.5
- 8.8.4.4
ipv6: false
enhanced-mode: fake-ip
nameserver:
- 119.29.29.29
- 223.5.5.5
- tls://223.5.5.5:853
- tls://223.6.6.6:853
- tls://120.53.53.53
- tls://1.12.12.12
fallback:
- https://1.0.0.1/dns-query
- https://public.dns.iij.jp/dns-query
- tls://8.8.4.4:853
fallback-filter:
geoip: false
ipcidr:
- 240.0.0.0/4
- 0.0.0.0/32
- 127.0.0.1/32
domain:
- +.facebook.com
- +.twitter.com
- +.google.com
- +.googleapis.com
- +.google.cn
- +.googleapis.cn
- +.xn--ngstr-lra8j.com
- +.googlevideo.com
- +.gvt1.com
- +.gmail.com
- +.youtube.com
- +.youtu.be
- +.gvt0.com
- +.gvt2.com
- +.gvt3.com
- +.gstatic.com
- +.265.com
- +.2mdn.net
- +.app-measurement.com
- +.c.admob.com
- +.clickserve.dartsearch.net
- +.crl.pki.goog
- +.doubleclick.net
- +.firebase-settings.crashlytics.com
- +.google-analytics.com
- +.googleadservices.com
- +.googleanalytics.com
- +.googleoptimize.com
- +.googlesyndication.com
- +.googletagmanager.com
- +.googletagservices.com
fake-ip-filter:
{% include "include/cn-list.txt" %}
{% include "include/a-list.txt" %}
具体请看 项目地址
fake-ip-filter
fake-ip-filter
部分所添加的为国域网的域名清单,这边默认给的不多,也就七万多条,其作用是当DNS查询匹配这些域名时,并不会使用FakeIP,而是返回正确的解析,一方面这能提高国域网的访问速度,另一方面,你也可以通过添加自定义的内容(例如公司内网的域名)来获取真实的地址,防止开启代理的同时无法正常访问内网网站
如果你有自己的订阅转换服务器可以参考下面的方法进行自定义:
首先运行一个容器
docker run --name tester mrxianyu/subconverter:latest
将容器内的all_base.tpl
拷贝至本地的项容器目文件夹中(下面操作均是在本地的项容器目文件夹中进行的)
docker cp tester:/base/base/all_base.tpl ./
将include文件夹拷贝出来
docker cp tester:/base/include ./
此处我们假设需要自定义的域名列表(格式参考include文件夹下已存在的文件)写在include/URL.txt
中
接着我们向的all_base.tpl
中的fake-ip-filter
部分写入引用这个文件
..............
- +.firebase-settings.crashlytics.com
- +.google-analytics.com
- +.googleadservices.com
- +.googleanalytics.com
- +.googleoptimize.com
- +.googlesyndication.com
- +.googletagmanager.com
- +.googletagservices.com
fake-ip-filter:
{% include "include/cn-list.txt" %}
{% include "include/a-list.txt" %}
{% include "include/URL.txt" %}
.............
最后使用如下示例dockercompose文件启用正式的订阅转换服务器即可
version: '3'
services:
app:
image: mrxianyu/subconverter
container_name: subconverter
restart: unless-stopped
volumes:
- ./pref.toml:/base/pref.toml:ro
- ./include:/base/include:ro
ports:
- '25500:25500'