Homeproxy 一键配置脚本 Wiki(已过时 Deprecated) - thisIsIan-W/homeproxy-autogen-configuration GitHub Wiki
一种更简单的生成 ImmortalWRT(OpenWRT) Homeproxy 配置的方法(aka 懒人脚本)。
本脚本仅适配了 下载链接 下 luci-app-homeproxy.ipk 安装包!
请在安装前先彻底卸载本地插件, 然后到上述链接中重新下载最新的安装包重新安装(推荐使用浏览器无痕标签)!
- 本脚本由于上游插件停止更新而不再更新,建议参照 main 分支使用说明及脚本定制你的配置!
- 安装或更新 HP 后,请手动清除浏览器缓存,或使用新的无痕标签页重新打开 HP 界面
- 一键生成 出站规则、出站规则列表、DNS服务器、DNS规则列表、默认出站配置、自定义节点、克拉斯 API配置 以及 规则详情 等,最大程度解放双手;
- 支持
3种
方式定制配置
推荐使用 VSCode 等编辑器更改配置内容。
- 点击仓库右侧绿色
<> Code
按钮并下载zip包到你的设备上并自定义rules_*.sh
文件中的配置(下方提供详细说明);- 已提供3种不同的示例配置,可酌情参考并使用
-
rules_*.sh
文件需要被重命名为rules.sh
后再执行
- 把2个脚本上传到安装了 luci-app-homeproxy 的设备上,目录随意,并赋予其执行权限,最后执行指定脚本;
# 首先需要确保当前账户为 root,类似于:(请自行搜索解决)
root@ImmortalWrt:~#
# 安装 bash(已安装则跳过此步)
opkg update
opkg install bash
# 需要确保2个脚本在一个目录下
# 举例,将2个脚本上传至 ImmortalWRT 或 OpenWRT 系统的 /tmp 目录下之后(可使用XShell/MobaXterm/PuTTY等客户端上传):
cd /tmp
# 修改2个脚本的权限
chmod +x generate_homeproxy_rules.sh
chmod +x rules.sh
#
#
# 执行脚本一键生成配置
#
# 如果你选择生成 'Auto_Select' 节点:
# 脚本会在 'Node Settings' 功能中为你置顶生成一条 '节点类型' 为 'URLTest'、名称为 'Auto_Select' 的节点
#
bash generate_homeproxy_rules.sh
-
浏览器刷新 homeproxy 界面;
- 自行添加你的机场节点或代理服务器;
- 自行修改各个规则的出站节点、出站DNS服务器;
- 自行修改默认出站;
- 其余配置请按照自己的需求酌情修改
-
保存并应用
- 需要注意在
服务状态
功能中检查 Clash dashboard version 是否已更新
- 需要注意在
注意:除经过特殊说明的情况外,以下3个列表的内部 标签名 --> 不可重复,仅支持英文大小写、下划线_、数字。
每个自定义节点已帮你选中 Interrupt existing connections
统一出站节点列表(可选)
- 如果你有多个机场、多个节点,并且希望同时给这些机场下相同地区或国家配置统一出站(Node Settings),则可通过此数组来定义
- 脚本会自动为你定义的
所有标签名
生成类型为selector
的自定义节点至节点设置(Node Settings)
功能中,且它们的优先级高于RULESET_URLS
中的所有标签 - 如果不想使用此功能,可直接删除整个
UNIFIED_OUTBOUND_NODES(xxx)
定义
UNIFIED_OUTBOUND_NODES=(
"SG"
"US_01"
"US_02"
"JP_01"
"CA"
)
规则集列表。
命名规则为:"标签名|URL(s)"
-
direct_out(直连)
和reject_out(广告&隐私)
为保留标签名称不可更改,但如果不想使用它们,可直接删除direct_out
或reject_out
行所有内容; - rules_based_on_nodes.sh 脚本中包含更详细的解释内容
- 希望在 Dashboard 展示更详细的
规则命中
:- 参考 rules_based_on_rulesets.sh 文件,此时可配合
UNIFIED_OUTBOUND_NODES
参数整合出站节点以减少勾选多个节点的重复工作量
- 参考 rules_based_on_rulesets.sh 文件,此时可配合
- 希望更少地修改
Homeproxy 界面配置项
: - 本规则集列表的顺序可以随意调整,可以随意添加、修改其内容,
但同一条规则集url只允许出现一次
! - 脚本会自动根据你提供的 url 是否包含
geosite
/geoip
/ip
字符来判断它们是域名规则还是IP规则 - 支持远程URL & 本地绝对路径、
.srs
和.json
类型文件
以下三种写法任选其一即可。
参考 rules_based_on_nodes.sh 文件。
参考 rules_based_on_rulesets.sh 文件。
参考 rules_based_on_proxy_servers.sh 文件。
# 单行写法示例,可以在 | 符号后直接回车换行
# DNS_SERVERS 写法同理
RULESET_URLS=(
"google|https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo/geosite/google-cn.srs"
# 如果使用本地规则集文件,需要确保该路径下存在该规则集文件
"telegram|
/etc/homeproxy/ruleset/telegram.json"
)
# 多行写法示例,可以在 | 符号后直接回车换行
# DNS_SERVERS 写法同理
RULESET_URLS=(
"google|https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo/geosite/google-cn.json
/etc/homeproxy/ruleset/googlefcm.srs
/etc/homeproxy/ruleset/google.json"
# 或
"google|
https://github.com/MetaCubeX/meta-rules-dat/raw/sing/geo/geosite/google-cn.json
/etc/homeproxy/ruleset/googlefcm.srs
/etc/homeproxy/ruleset/google.json"
)
错误写法示例
- DNS_SERVERS 错误写法同理
# 错误写法一(双引号不允许另起一行书写):
RULESET_URLS=(
"google|url
"
)
# 错误写法二(不允许在url列表中使用注释符号 --> #):
RULESET_URLS=(
"google|url1
#url2
url3"
)
# 错误写法三(不允许在url列表中出现多余换行):
RULESET_URLS=(
"google|url1
url2"
)
DNS服务器列表,在这里配置你想要使用的 DNS服务商。
- 命名规则为:"标签名|URL(s)"
- DNS 服务器可随意增删修改、调整顺序
- 同一条 URL 可以在同一个标签内 或 多个标签内多次出现
- URL(s) 支持: UDP, TCP, DoT, DoH, and RCode.
# 可以在下方添加更多
DNS_SERVERS=(
# 会生成一条名称为 dns_server_google 的 DNS服务商
"google|url"
# 会生成3条名称分别为 dns_server_cloudflare_1、dns_server_cloudflare_2、dns_server_cloudflare_3 的 DNS服务商
# 且 url 会按照顺序分配给上述3个服务商
"cloudflare|
url
url2
url3"
"tencent|url1
url2"
"opendns|url"
)