muink / luci-app-homeproxy

A homeproxy fork with clash api, selector/urltest node, subscribes grouping & ruleset support (stable version) (updates stopped indefinitely)
https://github.com/muink/homeproxy
GNU General Public License v2.0
51 stars 11 forks source link

大佬是否可以把这个功能加进去呀?针对配置规则的功能? #6

Closed onlyfirer closed 3 months ago

onlyfirer commented 5 months ago

config homeproxy 'infra' option __warning 'DO NOT EDIT THIS SECTION, OR YOU ARE ON YOUR OWN!' option common_port '22,53,80,143,443,465,853,873,993,995,8080,8443,9418' option mixed_port '5330' option redirect_port '5331' option tproxy_port '5332' option dns_port '5333' option china_dns_port '5334' option tun_name 'singtun0' option tun_addr4 '172.19.0.1/30' option tun_addr6 'fdfe:dcba:9876::1/126' option tun_mtu '9000' option table_mark '100' option self_mark '100' option tproxy_mark '101' option tun_mark '102'

config homeproxy 'config' option routing_mode 'custom' option routing_port 'common' option proxy_mode 'redirect_tproxy' option ipv6_support '1'

config homeproxy 'experimental' option clash_api_port '9090' option clash_api_log_level 'warn' option clash_api_enabled '1' option dashboard_repo 'metacubex/yacd-meta' option clash_api_secret '123456'

config homeproxy 'control' option lan_proxy_mode 'disabled' list wan_proxy_ipv4_ips '91.108.4.0/22' list wan_proxy_ipv4_ips '91.108.8.0/22' list wan_proxy_ipv4_ips '91.108.12.0/22' list wan_proxy_ipv4_ips '91.108.56.0/22' list wan_proxy_ipv4_ips '95.161.64.0/20' list wan_proxy_ipv4_ips '149.154.160.0/22' list wan_proxy_ipv4_ips '149.154.164.0/22' list wan_proxy_ipv4_ips '149.154.172.0/22'

config homeproxy 'routing' option sniff_override '1' option default_outbound 'youtube' option bypass_cn_traffic '0'

config homeproxy 'dns' option dns_strategy 'prefer_ipv4' option default_server 'dns_google' option default_strategy 'prefer_ipv4' option disable_cache '1'

config homeproxy 'subscription' option auto_update '0' option allow_insecure '0' option packet_encoding 'xudp' option update_via_proxy '0' option filter_nodes 'disabled'

config homeproxy 'server' option enabled '0' option auto_firewall '0'

config node 'node_ads' option label 'node_ads' option type 'selector' list order 'direct-out' list order 'block-out'

config ruleset 'rule_ads' option label 'rule_ads' option enabled '1' option type 'remote' option format 'binary' option url 'https://raw.githubusercontent.com/DustinWin/ruleset_geodata/sing-box-ruleset/ads.srs' option outbound 'direct-out'

config routing_rule 'ads_host' option label 'ads_host' option enabled '1' option mode 'default' option source_ip_is_private '0' option ip_is_private '0' list rule_set 'rule_ads' option rule_set_ipcidr_match_source '0' option outbound 'ads'

config routing_node 'ads' option label 'ads' option enabled '1' option node 'node_ads'

config node 'node_netflix' option label 'node_netflix' option type 'urltest' option test_url 'http://cp.cloudflare.com/' option interval '10m' option idle_timeout '30m'

config node 'node_youtube' option label 'node_youtube' option type 'selector'

config ruleset 'rule_youtube' option label 'rule_youtube' option enabled '1' option type 'remote' option format 'binary' option url 'https://raw.githubusercontent.com/DustinWin/ruleset_geodata/sing-box-ruleset/youtube.srs' option outbound 'direct-out'

config routing_rule 'youtube_host' option label 'youtube_host' option enabled '1' option mode 'default' option source_ip_is_private '0' option ip_is_private '0' list rule_set 'rule_youtube' option rule_set_ipcidr_match_source '0' option outbound 'youtube'

config routing_rule 'netfli_host_host' option label 'netfli_host' option enabled '1' option mode 'default' option source_ip_is_private '0' option ip_is_private '0' list rule_set 'rule_netflix' option rule_set_ipcidr_match_source '0' option outbound 'netflix'

config routing_node 'youtube' option label 'youtube' option enabled '1' option node 'node_youtube'

config node 'node_proxy' option label 'node_proxy' option type 'urltest' option test_url 'http://cp.cloudflare.com/' option interval '10m' option idle_timeout '30m'

config ruleset 'rule_proxy' option label 'rule_proxy' option enabled '1' option type 'remote' option format 'binary' option url 'https://raw.githubusercontent.com/DustinWin/ruleset_geodata/sing-box-ruleset/proxy.srs' option outbound 'direct-out'

config ruleset 'rule_cn' option label 'rule_cn' option enabled '1' option type 'remote' option format 'binary' option url 'https://raw.githubusercontent.com/DustinWin/ruleset_geodata/sing-box-ruleset/cn.srs' option outbound 'direct-out'

config node 'node_cn' option label 'node_cn' option type 'urltest' list order 'direct-out' option test_url 'http://cp.cloudflare.com/' option interval '10m' option idle_timeout '30m'

config routing_rule 'proxy_host' option label 'proxy_host' option enabled '1' option mode 'default' option source_ip_is_private '0' option ip_is_private '0' list rule_set 'rule_proxy' option rule_set_ipcidr_match_source '0' option outbound 'proxy'

config routing_rule 'cn_host' option label 'cn_host' option enabled '1' option mode 'default' option source_ip_is_private '0' option ip_is_private '0' list rule_set 'rule_cn' option rule_set_ipcidr_match_source '0' option outbound 'cn'

config routing_node 'proxy' option label 'proxy' option enabled '1' option node 'node_proxy'

config routing_node 'cn' option label 'cn' option enabled '1' option node 'node_cn'

config dns_server 'dns_china' option label 'dns_china' option enabled '1' option address 'https://1.12.12.12/dns-query' option address_resolver 'default-dns' option outbound 'cn'

config dns_server 'dns_google' option label 'dns_google' option enabled '1' option address 'https://8.8.8.8/dns-query' option address_resolver 'default-dns' option outbound 'youtube'

config dns_server 'dns_out' option label 'dns_out' option enabled '1' option address 'tls://1.1.1.1' option outbound 'youtube'

config dns_rule 'adsblock_domain' option label 'adsblock_domain' option enabled '1' option mode 'default' option source_ip_is_private '0' list rule_set 'rule_ads' option server 'block-dns'

config dns_rule 'any_domain' option label 'any_domain' option enabled '1' option mode 'default' option source_ip_is_private '0' list outbound 'any-out' option server 'dns_china'

config dns_rule 'clash_zl_domain' option label 'clash_zl_domain' option enabled '1' option mode 'default' option source_ip_is_private '0' option clash_mode 'Direct' option server 'dns_china'

config dns_rule 'clash_gl_domain' option label 'clash_gl_domain' option enabled '1' option mode 'default' option source_ip_is_private '0' option clash_mode 'Global' option server 'dns_google'

config dns_rule 'china_domain' option label 'china_domain' option enabled '1' option mode 'default' option source_ip_is_private '0' list outbound 'cn' option server 'dns_china'

config ruleset 'rule_netflix' option label 'rule_netflix' option enabled '1' option type 'remote' option format 'binary' option url 'https://raw.githubusercontent.com/DustinWin/ruleset_geodata/sing-box-ruleset/netflix.srs' option outbound 'direct-out'

config routing_node 'netflix' option label 'netflix' option enabled '1' option node 'node_netflix'

onlyfirer commented 4 months ago

大佬这个可以加到 luci-apa里去吗? https://www.youtube.com/watch?v=7i662ztLyGI&feature=youtu.be 看下就是这个,但这个shell还是有一点点不足,有些地方还要手动添加,如节点组和国外的规则部分要手动处理。

muink commented 4 months ago

我的看法和主线一致, 不希望加入过度的功能导致程序臃肿并降低可维护性. (比如openclash) 目前程序的功能已经完整, 任何读懂 sing-box 的文档的人都能自行配置 并且由于配置均储存在 /etc/config/homeproxy 中, 这些需求完全可以直接在文件中 ctal+c/ctal+v 或使用外部脚本来解决 如果您有兴趣可以自行维护一个脚本项目

onlyfirer commented 4 months ago

如果能看得懂sing-box配置文件的人,一般就不会用这插件了,而是直接用核心在跑。 大佬的app主打一个自定义,然而更多人就是因为不会配置望而却步,假如增加一个子项,用于添加地址池的(一个是国内的地址池,一个是国外地址池),根据地址池点的设置,点击更新执行shell而自动添加分流、dns等规则。 按理应该不会臃肿啥的吧,就多一个模块菜单,让更多的人使用您这个app。

tsynexus commented 4 months ago

Sing-box配置文件各项很容易看。而homeproxy功能块看了我大半个月晕头转向。今天终于知道,“路由节点”即“ outbounds的组”。就不能改好名吗?“节点”跟“路由节点”都同属“ outbounds”,非要分成上下两个功能块。 另,说千道万。能简单点,把sing-box配置转换成homeproxy配置吗?就不用手动折腾那么多了。

onlyfirer commented 4 months ago

@tsynexus 哈哈,我是对着sing-box配置改才搞懂个大概,搞了个shell 。

muink commented 4 months ago

@tsynexus 路由节点 这个确实是把 outbounds 拆成了两个部分, 但是为了保持与上游最大的兼容性就这么遗传下来了也没有去修改它. 它主要是为了操作节点的 Dial Fields, 并且确认是否将选择的节点添加到生成的 json 配置里

tsynexus commented 4 months ago

luci-app-homeproxy_git-24.125.37645-34ab824_all.ipk Node Settings没有可添加selector及urltest列表出现,之前有个版本可以,现在该ipk没了

另fakeip如何添加?/etc/config/homeproxy文件的fakeip功能格式应该如何设置?

muink commented 4 months ago

@youfun 说明手动修改的内容有误格式错误 请重新检查下