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 等编辑器更改配置内容。

  1. 点击仓库右侧绿色 <> Code 按钮并下载zip包到你的设备上并自定义 rules_*.sh 文件中的配置(下方提供详细说明);
    1. 已提供3种不同的示例配置,可酌情参考并使用
    2. rules_*.sh 文件需要被重命名为 rules.sh 后再执行
  2. 把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
  1. 浏览器刷新 homeproxy 界面;

    1. 自行添加你的机场节点或代理服务器;
    2. 自行修改各个规则的出站节点、出站DNS服务器;
    3. 自行修改默认出站;
    4. 其余配置请按照自己的需求酌情修改
  2. 保存并应用

    1. 需要注意在 服务状态 功能中检查 Clash dashboard version 是否已更新


参数说明

注意:除经过特殊说明的情况外,以下3个列表的内部 标签名 --> 不可重复,仅支持英文大小写、下划线_、数字。
每个自定义节点已帮你选中 Interrupt existing connections


UNIFIED_OUTBOUND_NODES

统一出站节点列表(可选)

  • 如果你有多个机场、多个节点,并且希望同时给这些机场下相同地区或国家配置统一出站(Node Settings),则可通过此数组来定义
  • 脚本会自动为你定义的 所有标签名 生成类型为 selector 的自定义节点至 节点设置(Node Settings) 功能中,且它们的优先级高于 RULESET_URLS 中的所有标签
  • 如果不想使用此功能,可直接删除整个 UNIFIED_OUTBOUND_NODES(xxx) 定义
UNIFIED_OUTBOUND_NODES=(

  "SG"
  "US_01"
  "US_02"
  "JP_01"
  "CA"

)


RULESET_URLS

规则集列表。
命名规则为:"标签名|URL(s)"

  • direct_out(直连)reject_out(广告&隐私) 为保留标签名称不可更改,但如果不想使用它们,可直接删除 direct_outreject_out 行所有内容;
  • rules_based_on_nodes.sh 脚本中包含更详细的解释内容
  • 希望在 Dashboard 展示更详细的规则命中
    • 参考 rules_based_on_rulesets.sh 文件,此时可配合 UNIFIED_OUTBOUND_NODES 参数整合出站节点以减少勾选多个节点的重复工作量
  • 希望更少地修改 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_SERVERS

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"
)


⚠️ **GitHub.com Fallback** ⚠️