关于节点的理解,可见官方文档节点部分
Loon添加节点的方式分为两种,分别是单个节点和订阅节点,单个节点是自己搭建的服务器,订阅节点则是多个节点的集合,我们一般从机场购买获得。
截止版本3.0.3,Loon支持以下协议:
SS,SSR,VMESS,VLESS,Trojan,HTTP, HTTPS
各个代理支持的混淆
- SS
- SS + SimpleObfs
- SSR
- VMESS
- VMESS + TLS
- VMESS + WebSocket
- VMESS + WebSocket + TLS
- VMESS + HTTP
- VMESS + HTTP + TLS
- VLESS
- VLESS + HTTP
- VLESS + WebSocket
- Trojan
- Trojan + HTTP
- Trojan + WebSocket
1.1 UI添加节点
- 首次导入节点,参照(快速上手)
- 有两个地方可以进入节点添加页面
- 仪表 → 所有节点
- 配置 → 所有节点
进入节点添加页面后可以根据需要选择本地节点还是订阅节点,订阅节点添加成功后会进入订阅节点的列表页面,页面展示的是该订阅所有的节点
- 订阅页面各选项详解
UDP:节点支持UDP数据的转发,目前Loon支持的UDP协议有SS,SSR,Trojan,如果节点支持,可以将其打开
Fast Open:全称TCP FastOpen,是一种为了提高TCP连接效率的方案,但是目前用的不是很多,暂时可以关闭
VMESS Aead:这个默认开启,因为目前从2022 年1 月1 日起VMESS强制客户端使用Aead算法,不使用的话会导致请求失败,V2ray v4.35.0之前的版本不会强制要求,⚠️⚠️⚠️所以如果你的订阅是VMESS节点,订阅后发现无法使用,请尝试关闭此选项
资源解析器:这边只有在配置文件中配置了资源解析器才会显示,具体可见 (1.4 资源解析器)
1.2 配置文件添加节点
配置文件中添加节点需要按照Loon规定的格式在特定的位置加入
- 加入单节点
在配置文件的
[Proxy]
模块下按照Loon的格式添加节点就行
Loon 节点格式
#ss # 节点名称 = 协议,服务器地址,端口,加密方式,密码,fast-open=是否开启fast open(需要节点支持),udp=是否在UDP中使用(需要节点支持) ss1 = Shadowsocks,example.com,443,aes-128-gcm,"password",fast-open=false,udp=true ss2 = Shadowsocks,example2.com,443,chacha20,"password",fast-open=true,udp=true #ss+simple obfs # 节点名称 = 协议,服务器地址,端口,加密方式,密码,混淆方式=http|tls,obfs-host=混淆host,obfs-uri=混淆路径,fast-open=是否开启fast open(需要节点支持),udp=是否在UDP中使用(需要节点支持) ssObfs1 = Shadowsocks,example.com,80,aes-128-gcm,"password",obfs-name=http,obfs-host=www.micsoft.com,obfs-uri=/,fast-open=true,udp=true ssObfs2 = Shadowsocks,example.com,443,aes-128-gcm,"password",obfs-name=tls,obfs-host=www.micsoft.com,obfs-uri=/,fast-open=true,udp=true #ssr # 节点名称 = 协议,服务器地址,端口,加密方式,密码,protocol = 协议,protocol-param = 协议参数,obfs=混淆,obfs-param=混淆参数,fast-open=是否开启fast open(需要节点支持),udp=是否在UDP中使用(需要节点支持) ssr1 = ShadowsocksR,example.com,443,aes-256-cfb,"password",protocol=origin,obfs=http_simple,obfs-param=download.windows.com,fast-open=false,udp=true ssr2 = ShadowsocksR,example.com,10076,aes-128-cfb,"password",protocol=auth_chain_a,protocol-param=9555:loon,obfs=http_post,obfs-param=download.windows.com,fast-open=false,udp=true ssr3 = ShadowsocksR,example.com,10076,chacha20,"password",protocol=auth_aes128_md5,protocol-param=9555:loon,obfs=tls1.2_ticket_auth,obfs-param=download.windows.com,fast-open=false,udp=true ssr4 = ShadowsocksR,example.com,10076,chacha20-ietf,"password",protocol=auth_aes128_sha1,protocol-param=9555:loon,obfs=plain,fast-open=false,udp=true #http # 节点名称 = 协议,服务器地址,端口,加密方式,密码 http1 = http,example.com,80 http2 = http,example.com,80,username,"password" #https # 节点名称 = 协议,服务器地址,端口,加密方式,密码,skip-cert-verify=是否跳过证书校验(默认否),tls-name=SNI https1 = https,example.com,443 https2 = https,example.com,443,username,"password" https3 = https,example.com,443,username,"password",skip-cert-verify=true,tls-name=example.com #vmess+tcp # 节点名称 = 协议,服务器地址,端口,加密方式,UUID,transport(传输方式)=tcp,alterId=alterId(默认0,表示开启aead) vmess1 = vmess,example.com,10086,aes-128-gcm,"52396e06-041a-4cc2-be5c-8525eb457809",transport=tcp,alterId=0,over-tls=false #vmess+tcp+tls # 节点名称 = 协议,服务器地址,端口,加密方式,UUID,transport(传输方式)=tcp,alterId=alterId(默认0,表示开启aead),over-tls=是否启用TLS,tls-name=SNI,skip-cert-verify=是否跳过证书校验(默认否) vmess2 = vmess,example.com,10086,aes-128-gcm,"52396e06-041a-4cc2-be5c-8525eb457809",transport=tcp,alterId=0,path=/,host=v3-dy-y.ixigua.com,over-tls=true,tls-name=example.com,skip-cert-verify=true #vmess+ws # 节点名称 = 协议,服务器地址,端口,加密方式,UUID,transport(传输方式)=ws,alterId=alterId(默认0,表示开启aead),path=websocket握手header中的path,host=websocket握手header中的host vmess3 = vmess,example.com,10086,aes-128-gcm,"52396e06-041a-4cc2-be5c-8525eb457809",transport=ws,alterId=0,path=/,host=v3-dy-y.ixigua.com,over-tls=false #vmess+wss # 节点名称 = 协议,服务器地址,端口,加密方式,UUID,transport(传输方式)=ws,alterId=alterId(默认0,表示开启aead),path=websocket握手header中的path,host=websocket握手header中的host,over-tls=是否启用TLS,tls-name=SNI,skip-cert-verify=是否跳过证书校验(默认否) vmess4 = vmess,example.com,10086,aes-128-gcm,"52396e06-041a-4cc2-be5c-8525eb457809",transport=ws,alterId=0,path=/,host=v3-dy-y.ixigua.com,over-tls=true,tls-name=example.com,skip-cert-verify=true #vmess+http # 节点名称 = 协议,服务器地址,端口,加密方式,UUID,transport(传输方式)=http,alterId=alterId(默认0,表示开启aead),path=httpheader中的path,host=httpheader的host vmess5 = vmess,example.com,10086,aes-128-gcm,"52396e06-041a-4cc2-be5c-8525eb457809",transport=http,alterId=0,path=/,host=v3-dy-y.ixigua.com,over-tls=false #vmess+http+tls # 节点名称 = 协议,服务器地址,端口,加密方式,UUID,transport(传输方式)=http,alterId=alterId(默认0,表示开启aead),path=httpheader中的path,host=httpheader的host,over-tls=是否启用TLS,tls-name=SNI,skip-cert-verify=是否跳过证书校验(默认否) vmess6 = vmess,example.com,10086,aes-128-gcm,"52396e06-041a-4cc2-be5c-8525eb457809",transport=http,alterId=0,path=/,host=v3-dy-y.ixigua.com,over-tls=true,tls-name=example.com,skip-cert-verify=true #VLESS+tcp # 节点名称 = 协议,服务器地址,端口,UUID,transport(传输方式)=tcp VLESS1 = VLESS,example.com,10086,"52396e06-041a-4cc2-be5c-8525eb457809",transport=tcp,over-tls=false #VLESS+tcp+tls # 节点名称 = 协议,服务器地址,端口,UUID,transport(传输方式)=tcp,over-tls=是否启用TLS,tls-name=SNI,skip-cert-verify=是否跳过证书校验(默认否) VLESS2 = VLESS,example.com,10086,"52396e06-041a-4cc2-be5c-8525eb457809",transport=tcp,path=/,host=v3-dy-y.ixigua.com,over-tls=true,tls-name=example.com,skip-cert-verify=true #VLESS+ws # 节点名称 = 协议,服务器地址,端口,UUID,transport(传输方式)=ws,path=websocket握手header中的path,host=websocket握手header中的host VLESS3 = VLESS,example.com,10086,"52396e06-041a-4cc2-be5c-8525eb457809",transport=ws,path=/,host=v3-dy-y.ixigua.com,over-tls=false #VLESS+wss # 节点名称 = 协议,服务器地址,端口,UUID,transport(传输方式)=ws,path=websocket握手header中的path,host=websocket握手header中的host,over-tls=是否启用TLS,tls-name=SNI,skip-cert-verify=是否跳过证书校验(默认否) VLESS4 = VLESS,example.com,10086,"52396e06-041a-4cc2-be5c-8525eb457809",transport=ws,path=/,host=v3-dy-y.ixigua.com,over-tls=true,tls-name=example.com,skip-cert-verify=true #VLESS+http # 节点名称 = 协议,服务器地址,端口,UUID,transport(传输方式)=http,path=httpheader中的path,host=httpheader的host VLESS5 = VLESS,example.com,10086,"52396e06-041a-4cc2-be5c-8525eb457809",transport=http,path=/,host=v3-dy-y.ixigua.com,over-tls=false #VLESS+http+tls # 节点名称 = 协议,服务器地址,端口,UUID,transport(传输方式)=http,path=httpheader中的path,host=httpheader的host,over-tls=是否启用TLS,tls-name=SNI,skip-cert-verify=是否跳过证书校验(默认否) VLESS6 = VLESS,example.com,10086,"52396e06-041a-4cc2-be5c-8525eb457809",transport=http,path=/,host=v3-dy-y.ixigua.com,over-tls=true,tls-name=example.com,skip-cert-verify=true #trojan # 节点名称 = 协议,服务器地址,端口,alpn=tls扩展,skip-cert-verify=是否跳过证书校验(默认否),tls-name=SNI,udp=是否在UDP中使用(需要节点支持) trojan1 = trojan,example.com,443,"password",alpn=http1.1,skip-cert-verify=false,tls-name=example.com,udp=true #trojan+ws # 节点名称 = 协议,服务器地址,端口,alpn=tls扩展,transport(传输方式)=ws,path=websocket握手header中的path,host=websocket握手header中的host,skip-cert-verify=是否跳过证书校验(默认否),tls-name=SNI,udp=是否在UDP中使用(需要节点支持) trojan2 = trojan,example.com,443,"password",transport=ws,path=/,host=micsoft.com,alpn=http1.1,skip-cert-verify=true,tls-name=example.com,udp=true #trojan+http # 节点名称 = 协议,服务器地址,端口,alpn=tls扩展,transport(传输方式)=http,path=httpheader中的path,host=httpheader的host,skip-cert-verify=是否跳过证书校验(默认否),tls-name=SNI,udp=是否在UDP中使用(需要节点支持) trojan2 = trojan,example.com,443,"password",transport=ws,path=/,host=micsoft.com,alpn=http1.1,skip-cert-verify=true,tls-name=example.com,udp=true #js custom # 节点名称 = 协议,服务器地址,端口,script-path=脚本路径(本地脚本直接为文件名,远端脚本为url) jsHTTP = custom,192.168.1.139,6152,script-path=http.js
- 加入订阅节点
在配置文件的 [Remote Proxy] 模块下按照Loon的格式添加订阅就行
Loon订阅节点格式
订阅名称 = 订阅链接,udp=fale/true,fast-open=false/true,vmess-aead=false/true,eanble=false/true,img-url="https://img"
后面跟随的参数基本和UI上的一致
1.3 筛选节点
筛选节点可以方便的将你配置中的所有节点按各种条件分出不同的节点组,配合策略组的使用将满足你各种需求
- 添加一个筛选节点
- UI添加:
配置 → 筛选节点 → 右上角’+’
即可进入添加筛选节点页面 - 配置文件添加,按照Loon的格式在
[Remote Filter]
模块下添加即可
Loon 筛选节点格式
# 筛选器名称 = 筛选方式("NodeSelect","NameKeyword","NameRegex"),包含的订阅,FilterKey = "keyword/regex"
- 筛选方式
包含的订阅:需要从哪些订阅节点或者本地节点中筛选出节点,默认不选即包含所有的节点。
筛选类型:筛选节点的方式,包含以下三种方式
- NodeSelect:手动选择需要加入这个组的节点
- NameKeyword:根据关键词筛选出需要的节点
- NameRegex:根据给出的正则表达式筛选出需要的节点
👍👍👍常用的筛选正则表达式格式👍👍👍:
^.*(A|B) = A或者B (A.*B|B.*A) = 有A有B ^(?!.A) = 不含A ^(?!.*?B).*A = 有A但不含B
- 使用场景
- 需要将某一地区的节点组成一组的,比如香港、新加坡等
- 需要将某一种类型的节点组成一组的,比如中转节点等
1.4 资源解析器
由于各个协议没有指定官方的标准订阅格式,导致市面上有各种各样的节点订阅格式,Loon内部虽然兼容了大部分常用的格式,但面对众多的机场还是有很多无法正确解析的,所以Loon开放了脚本解析器资源的API,有开发经验的可以参考官方文档和例子进行开发:(Loon资源解析器官方例子)
- 添加资源解析器
- 在 配置 → 高级配置 → 资源解析器 中添加解析器链接即可
- 在配置文件
[General]
模块添加 resource-parser 链接即可
resource-parser = https://raw.githubusercontent.com/Peng-YM/Sub-Store/master/backend/dist/sub-store-parser.loon.min.js
✋ 添加完资源解析器连接后,在添加订阅节点页面启动即可
- 👍👍👍这里推荐 Sub-Store 作者Peng大的资源解析器👍👍👍
https://raw.githubusercontent.com/Peng-YM/Sub-Store/master/backend/dist/sub-store-parser.loon.min.js
⚠️⚠️⚠️ 该解析器只能解析订阅节点,其他规则、脚本等无法解析