1. 起因
一般来讲,国内用户翻墙最简单最高效的方式,是使用“机场”提供的服务。按理说,你只要选择到一个优秀的“机场”服务商,就可以高枕无忧的享受高速跨境体验;或者对于价格敏感、使用频率不高的用户,选择一个性价比的“机场”,花小钱就把事办了也是一种方案。
既然如此,标题说的合并机场节点和自建节点,为什么要这样做呢?主要以下两个原因:
- 同时拥有顶级体验和超低价格
- 充分利用手中的 VPS 资源
好的“机场”服务商通过多入口的中转接入,然后再到各个地区的落地,线路上的优势相比自建节点是明显的且不会受到运营商和墙的干扰,但价格高昂;而自建节点通常选用的 VPS 价格便宜且流量较多,不愁“机场”流量耗尽的尴尬情况。所以我们选用顶级机场的入门套餐和自建节点相结合的方式,具体配置方法让我们继续看下去。
2. 机场的选择
机场的选择不会太多,筛选条件一个一个列出来:
- 开设时间保底 1 年,最佳 3 年的大机场,包含便宜的入门套餐。
- 香港节点普通延迟小于 50 毫秒,HTTPS 延迟小于 200 毫秒,且高峰期带宽足。
- 至少两个不同地区中转入口,确保服务稳定性。
- 优质的落地线路。
- AI 、流媒体全解锁。
综合以上,本人唯一推荐的机场就是 AmyTelecom,Anycast 接入+专线中转,套餐 Bronze:每月 50G 流量,273 元/年。官网:https://www.amytele.net/
其他可以看看 ImmTel,套餐 Basic (Personal):每月 25G 流量,208 元/年。官网:https://immtele.com/
PS:请上面两家机场的老板,把推荐费打到我的支付宝。😉
3. 构建配置文件
mixed-port: 7890
allow-lan: false
bind-address: "*"
find-process-mode: strict
mode: rule
log-level: info
ipv6: true
keep-alive-interval: 30
external-controller: 0.0.0.0:9090
secret: "BxVdLvyUpDGm1S6r"
profile:
store-selected: true
store-fake-ip: true
unified-delay: true
tcp-concurrent: true
global-client-fingerprint: chrome
geodata-mode: true
geodata-loader: standard
geo-auto-update: true
geo-update-interval: 168
geox-url:
geoip: "https://testingcf.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
geosite: "https://testingcf.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"
dns:
enable: true
prefer-h3: true
listen: 0.0.0.0:53
ipv6: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
use-hosts: true
fake-ip-filter:
- '*'
- '*.lan'
- '+.local'
- 'localhost.ptlogin2.qq.com'
- '+.srv.nintendo.net'
- '+.stun.playstation.net'
- 'xbox.*.microsoft.com'
- '+.xboxlive.com'
nameserver-policy:
'geosite:cn':
- https://223.5.5.5/dns-query#h3=true
- https://1.12.12.12/dns-query
nameserver:
- https://1.1.1.1/dns-query
- https://9.9.9.9/dns-query
proxy-server-nameserver:
- https://223.5.5.5/dns-query#h3=true
proxies:
- name: 🇺🇸 自建节点
type: vless
server: server
port: port
uuid: uuid
network: tcp
tls: true
udp: true
flow: xtls-rprx-vision
servername: example.com
reality-opts:
public-key: xxxx
short-id: xxxx
client-fingerprint: chrome
proxy-providers:
jichang:
type: http
url: https://example.com/sub?target=clash&emoji=true&udp=true&new_name=true&config=xxxx
path: ./jichang.yaml
interval: 3600
proxy: DIRECT
health-check:
enable: false
filter: "03|05"
exclude-filter: "美国"
proxy-groups:
- name: ⚡️ 自动选择
type: url-test
disable-udp: false
use:
- jichang
url: https://www.gstatic.com/generate_204
interval: 150
tolerance: 15
- name: 🌎 国外媒体
type: select
disable-udp: false
proxies:
- 🇺🇸 自建节点
rules:
- GEOSITE,private,DIRECT
- GEOSITE,category-games@cn,DIRECT
- GEOSITE,cn,DIRECT
- GEOSITE,category-ads-all,REJECT
- GEOSITE,category-games,⚡️ 自动选择
- GEOSITE,category-social-media-!cn,🌎 国外媒体
- GEOSITE,category-porn,🌎 国外媒体
- GEOSITE,category-entertainment,🌎 国外媒体
- GEOSITE,geolocation-!cn,⚡️ 自动选择
- GEOIP,private,DIRECT,no-resolve
- GEOIP,cn,DIRECT
- MATCH,⚡️ 自动选择
该配置文件使用了 mihomo (clash meta) 兼容的书写方式,而 mihomo 作为目前 clash 系持续维护的版本,其自身的诸多优势使其成为“机场”使用的不二选择。配置文件中的部分内容需要自定义,接下来我们一条一条详细解释。
3.1 geodata 部分的配置
geodata-mode: true
geodata-loader: standard
geo-auto-update: true
geo-update-interval: 168
geox-url:
geoip: "https://testingcf.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat"
geosite: "https://testingcf.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat"
geodata 的使用主要是为了实现高效的地理位置 based 流量分流,配置好后可舍弃 rule-providers 这种方式的规则引入:
geodata-mode
,geoip 数据模式使用 dat 还是 mmdb 格式。建议 true 使用 dat 格式。geodata-loader
,geo 文件加载模式。这里使用 standard;如果是路由器或者其他小内存设备,请使用 memconservative 。geo-auto-update
和geo-update-interval
,启用自动更新和设置更新间隔。单位为小时,一般来讲 geodata 文件的更新间隔设置在一周至一月之间即可。geox-url
,geo 文件的下载和更新地址,数据模式使用 dat 格式时只需配置geoip
和geosite
两行即可。*ray 系默认使用 v2fly 仓库中提供的版本, 而本配置使用的是 Loyalsoldier 的增强版本。
3.2 引入自建节点
mihomo 支持众多协议的代理节点配置,通过 proxies
字段引入,内容为数组。比方说你自建的节点使用 VLESS-Vision-REALITY,那么具体配置如下所示。其他协议的配置方式参考:虚空终端 Docs 。
proxies:
- name: 🇺🇸 自建节点 # 自建节点名称
type: vless
server: server
port: port
uuid: uuid
network: tcp
tls: true
udp: true
flow: xtls-rprx-vision
servername: example.com # 偷域名
reality-opts:
public-key: xxxx
short-id: xxxx
client-fingerprint: chrome
另外如果有多个自建节点要引入,可以在此一起配置,然后在步骤 3.4 中一起添加到自建节点组。
3.3 引入机场节点
上一步骤通过 proxies
引入自建节点后,接下来我们通过 proxy-providers
引入机场节点。
proxy-providers:
jichang:
type: http
url: https://example.com/sub?target=clash&emoji=true&udp=true&config=xxxx
path: ./jichang.yaml
interval: 3600
proxy: DIRECT
health-check:
enable: false
filter: "03|05"
exclude-filter: "美国"
type
, 订阅方式。因为是在线订阅所以选择 http 。url
,填写机场的订阅链接。一般机场都提供多种方式的订阅链接,这里只需要把 clash 的订阅链接复制粘贴到此处。interval
,订阅更新时间。proxy
,机场的订阅链接一般都使用未屏蔽的域名且少有变动,这里填 DIRECT 。health-check
,健康检查禁用。filter
,对机场的节点进行匹配筛选。机场的节点一般都包括多个地区且每个地区包含多个落地,比如香港 01,香港 02,香港 03……日本 01,日本 02,日本 03……新加坡 01,新加坡 02,新加坡 03……命名均遵循一定的规律。此处假设填写 03,就可以筛选出所有包含 03 的节点。建议每个地区筛选两个落地就好,效果可以看下图。exclude-filter
,对机场的节点进行排除。我的自建节点位于美国,所以就把机场的美国节点排除了,填写美国。仅留下速度较快的亚洲节点即可。
3.4 节点分组以及组内策略
机场节点和自建节点引入完成后,把它们分成两个组以方便配置路由规则。其中机场节点组为排在前面的默认组,组名称:⚡️ 自动选择,type
策略类型为 url-test(每 150 秒测试一次组内节点的延迟,自动选择延迟最低的节点)。自建节点组名称:🌎 国外媒体,type
策略类型为 select 。具体如下所示:
proxy-groups:
- name: ⚡️ 自动选择
type: url-test
disable-udp: false
use:
- jichang
url: https://www.gstatic.com/generate_204
interval: 150
tolerance: 15
- name: 🌎 国外媒体
type: select
disable-udp: false
proxies:
- 🇺🇸 自建节点
disable-udp
,禁用 udp 。use
,引入 proxy-providers 中的 jichang 订阅节点。proxies
,引入 proxies 中的自建节点。url
,健康检查测试地址。interval
,健康检查间隔,如不为 0 则启用定时测试,单位为秒。tolerance
,节点切换容差。如本次检查结果相比上一次,有节点的延迟更小,差距大于设定值则切换节点。
3.5 路由规则
总体思路是一般的需代理网站走默认策略组(机场节点),消耗流量多的需代理流媒体网站、成人网站走自建节点,以实现本文标题【合并机场节点和自建节点】的意义。
rules:
- GEOSITE,private,DIRECT
- GEOSITE,category-games@cn,DIRECT
- GEOSITE,cn,DIRECT
- GEOSITE,category-ads-all,REJECT
- GEOSITE,category-games,⚡️ 自动选择
- GEOSITE,category-social-media-!cn,🌎 国外媒体
- GEOSITE,category-porn,🌎 国外媒体
- GEOSITE,category-entertainment,🌎 国外媒体
- GEOSITE,geolocation-!cn,⚡️ 自动选择
- GEOIP,private,DIRECT,no-resolve
- GEOIP,cn,DIRECT
- MATCH,⚡️ 自动选择
11 行规则至少能适配 95% 的场景,不要再去用机场那种几百行、甚至上千行的规则了。如果有自定义的规则要添加,可以按从上到下、从小到大的顺序,插入到合适位置。比如:
- 一加海外社区走代理:
DOMAIN,community.oneplus.com,⚡️ 自动选择
- 微软 OneDrive 走直连:
GEOSITE,onedrive,DIRECT
- Netflix 等需要流媒体解锁的:
- 自建节点能直接解锁(配置 warp 解锁或者接入第三方解锁):
GEOSITE,netflix,🌎 国外媒体
直接走机场指定节点:GEOSITE,netflix,🇸🇬 新加坡 03
- 自建节点能直接解锁(配置 warp 解锁或者接入第三方解锁):
那么合在一起就是下面的效果:
rules:
- DOMAIN,community.oneplus.com,⚡️ 自动选择
- GEOSITE,private,DIRECT
- GEOSITE,category-games@cn,DIRECT
- GEOSITE,onedrive,DIRECT
- GEOSITE,cn,DIRECT
- GEOSITE,category-ads-all,REJECT
- GEOSITE,category-games,⚡️ 自动选择
- GEOSITE,category-social-media-!cn,🌎 国外媒体
- GEOSITE,category-porn,🌎 国外媒体
- GEOSITE,netflix,🌎 国外媒体
- GEOSITE,category-entertainment,🌎 国外媒体
- GEOSITE,geolocation-!cn,⚡️ 自动选择
- GEOIP,private,DIRECT,no-resolve
- GEOIP,cn,DIRECT
- MATCH,⚡️ 自动选择
4. 导入客户端
上面的步骤全部完成后,把配置保存成 yaml 结尾的文件,就可以准备导入到客户端了。下图以电脑客户端 Clash Verge Rev 为例,新建 Local 类型的配置开始导入。
接下来最后的步骤:设置中开启系统代理、开机启动和静默启动,打完收工。🎉💪🍻
5. 备注
- 本配置不包含
tun
字段,因本人不使用该模式。 - 本配置不包含
sniffer
字段,因本人不使用透明代理。