快速上手
Rabbit Digger Pro 是一个命令行程序. 在不提供参数的情况下, 它会读取工作目录下的 config.yaml 作为配置文件, 然后开始运行. 如果需要指定配置文件为其他位置, 可以传入参数 -c.
./rabbit-digger-pro -c config.yaml
单 Shadowsocks 配置
这个配置文件会在本机监听 10800 端口, 并且将传入的代理请求通过 Shadowsocks 协议转发到代理服务器.
其中, example.com:1234 是远程服务器的地址. 成功运行后, 本机的 10800 端口可以接受 HTTP 协议和 SOCKS 5 协议的代理请求.
ss_net 和 mixed 可以替换成任意字符串, 它们分别代表这个代理和服务的名字.
如果你修改了 net 中的 ss_net, 别忘了同时修改 server / mixed / net 中的 ss_net.
config.yaml:
net:
ss_net:
type: shadowsocks
server: example.com:1234
cipher: aes-256-cfb
password: password
udp: true
server:
mixed:
type: http+socks5
bind: 127.0.0.1:10800
net: ss_net
Clash 订阅
Rabbit Digger Pro 支持部分 Clash 规则的导入.
在这个样例中, Rabbit Digger Pro 会从 url 中读取规则和代理, 并将其加入 net.
Clash 中的所有代理会以相同的名字导入这个配置文件中, 而规则会以 clash_rule 命名.
在配置文件的其他地方, 你可以使用由 import 导入的代理和规则. 例如在 server 中引用 clash_rule.
::: warning
请注意, import 阶段对 url 的请求并不会经过 Rabbit Digger Pro 中的任何代理. 如果有通过代理访问的需求, 需要设置环境变量 http_proxy, https_proxy.
:::
server:
mixed:
type: http+socks5
bind: 127.0.0.1:10800
net: clash_rule
import:
- type: clash
poll:
# Clash 配置地址
url: https://example.com/subscribe.yaml
# 每过 86400 秒, 也就是 1 天更新一次
interval: 86400
# 生成的规则名
rule_name: clash_rule
如果你的 Clash 文件是本地文件, 可以将 import 字段改为如下配置:
import:
- type: clash
path: /path/to/subscribe.yaml
rule_name: clash_rule
带规则的多出口代理
在这个样例中, 假设你有 us, jp 两个出口, us 是 trojan 协议, jp 是 shadowsocks 协议.
我们希望在连接发生时, 通过判断域名来走不同的出口:
- 当域名以
google.com结尾时, 通过jp连接. - 当域名中
包含twitter时, 通过us连接. - 其他情况, 通过
local连接.
::: tip
local 代表使用本机直接连接. 即使你没有在 net 中声明也默认存在. 然而你还是可以通过在 net 中声明 local 来覆盖这个默认行为.
:::
# yaml-language-server: $schema=https://rabbit-digger.github.io/schema/rabbit-digger-pro-schema.json
net:
us:
type: trojan
server: us.example.com:443
sni: us.example.com
password: "uspassword"
udp: true
jp:
type: shadowsocks
server: jp.example.com:1234
cipher: aes-256-cfb
password: "jppassword"
udp: true
my_rule:
type: rule
rule:
- type: domain
method: suffix
domain: google.com
target: jp
- type: domain
method: keyword
domain: twitter
target: us
- type: any
target: local
server:
mixed:
type: http+socks5
bind: 0.0.0.0:10800
net: my_rule