Quantumult X 是一个高性能的代理服务器工具,广泛应用于网络流量管理、负载均衡、访问控制等场景,通过配置文件(通常为 JSON 格式),用户可以详细地定义代理服务器的行为和规则,以下是 Quantumult X 配置文件的使用方法指南。
Quantumult X 的配置文件通常包含以下几个主要部分:
- listener(监听器)
- filter(过滤器)
- route(路由规则)
- etc(额外设置,包括 SSL、限流等)
以下是配置文件的示例模板:
{
"listener": {
"listen": "...:808",
"backlog": 1024,
"timeout": 120,
"queue": {
"max_idle": 10000,
"max_workers": 100
}
},
"filter": {
"chain": [
{
"name": "access",
"match": {
"source": ".../",
"method": ["GET", "POST"]
},
"action": "allow"
}
]
},
"route": {
"uri": "/api",
"dest": "http://backend.example.com:800",
"match": {
"method": ["GET"]
}
},
"etc": {
"max_connections": 100,
"keepalive": 100,
"ssl": {
"enabled": true,
"cert_file": "/etc/ssl/cert.pem",
"key_file": "/etc/ssl/private.key"
}
}
}
配置文件的使用方法
-
安装 Quantumult X:
- 根据 Quantumult X 的官方文档安装软件。
- 使用以下命令安装(假设你是在 Debian/Ubuntu 系统上):
sudo apt-get install quantumult-x
-
生成默认配置文件:
- Quantumult X 会生成一个默认的配置文件,通常位于
/etc/quantult-x/quantult.json。 - 你可以使用
quantult-x -t命令查看默认配置。
- Quantumult X 会生成一个默认的配置文件,通常位于
-
编辑配置文件:
- 打开配置文件进行编辑,使用文本编辑器(如
vim或nano)。 - 确保编辑器有足够的权限,
sudo nano /etc/quantult-x/quantult.json
- 打开配置文件进行编辑,使用文本编辑器(如
-
保存并应用配置:
- 修改完配置后,保存文件并重启 Quantumult X 服务:
sudo systemctl restart quantumult-x
- 修改完配置后,保存文件并重启 Quantumult X 服务:
配置文件的详细说明
listener 部分
listen:定义代理服务器监听的地址和端口。- 示例:
"...:808"(绑定所有 IP,端口 808)。 - 如果你希望监听指定 IP 和端口,可以写成:
"192.168.1.1:808"。
- 示例:
backlog:设置代理服务器的队列大小。- 示例:
"backlog": 1024。
- 示例:
timeout:设置代理服务器的请求超时时间,单位为秒。- 示例:
"timeout": 120。
- 示例:
queue:设置异步处理的队列配置。max_idle:队列中 idle 状态的最大时间(单位:毫秒)。- 示例:
"max_idle": 10000。
- 示例:
max_workers:设置异步处理的最大工作者数量。- 示例:
"max_workers": 100。
- 示例:
filter 部分
chain:定义过滤器链。- 每个过滤器是一个对象,包含
name(过滤器名称)、match(匹配规则)和action(操作)。
- 每个过滤器是一个对象,包含
match:定义匹配规则。- 支持 IP、域名、路径、方法 等。
- 示例:
"match": { "source": "192.168.1.1/24", "method": ["GET", "POST"] }
action:定义过滤动作。- 示例:
"action": "allow"(允许)、"action": "deny"(拒绝)。
- 示例:
route 部分
uri:定义路由规则的路径。- 示例:
"/api"。
- 示例:
dest:定义请求的最终目的地(可以是域名、IP 或 URL)。- 示例:
"http://backend.example.com:800"。
- 示例:
match:定义路由匹配规则。- 示例:
"match": { "method": ["GET"] }
- 示例:
action:定义路由动作。- 示例:
"action": "forward"(转发)。
- 示例:
etc 部分
max_connections:设置代理服务器的最大连接数。- 示例:
"max_connections": 100。
- 示例:
keepalive:设置代理服务器的 Keepalive 超时时间,单位为秒。- 示例:
"keepalive": 100。
- 示例:
ssl:定义 SSL 配置。enabled:是否启用 SSL(证书加密)。- 示例:
"enabled": true。
- 示例:
cert_file:SSL 证书文件路径。- 示例:
"cert_file": "/etc/ssl/cert.pem"。
- 示例:
key_file:SSL 秘密钥文件路径。- 示例:
"key_file": "/etc/ssl/private.key"。
- 示例:
常见配置示例
简单的反向代理配置
{
"listener": {
"listen": "...:808",
"backlog": 1024,
"timeout": 120
},
"filter": {
"chain": [
{
"name": "access",
"match": {
"source": ".../",
"method": ["GET", "POST"]
},
"action": "allow"
}
]
},
"route": {
"uri": "/api",
"dest": "http://backend.example.com:800",
"match": {
"method": ["GET"]
}
}
}
负载均衡配置
{
"listener": {
"listen": "...:80",
"backlog": 1024,
"timeout": 120
},
"route": {
"uri": "/",
"dest": "http://backend1.example.com:80,backend2.example.com:80,backend3.example.com:80",
"match": {
"method": ["GET"]
}
}
}
访问控制配置
{
"filter": {
"chain": [
{
"name": "geo",
"match": {
"source": "192.168.1./24"
},
"action": "allow"
},
{
"name": "deny_all",
"match": {
"source": ".../"
},
"action": "deny"
}
]
}
}
注意事项
-
配置文件语法:
- 确保配置文件的语法正确,避免 JSON 格式错误。
- 可以使用
quantult-x -t命令验证配置文件的语法。
-
权限问题:
- 代理服务器配置文件通常需要 root 权限。
- 确保编辑器有足够的权限修改配置文件。
-
高级配置:
如果需要更高级的功能(如限流、SSL、重写规则等),可以参考 Quantumult X 的官方文档。









