Compare commits

...

16 Commits

Author SHA1 Message Date
Stille f174f8a238 update v0.8.1 2023-10-12 10:52:14 +08:00
Stille 29a64f2aa0 fix bug 2022-07-20 10:58:05 +08:00
Stille 924217cd7a add sub 2022-07-16 15:58:47 +08:00
Stille 93c18c5eb2 update README.md 2022-07-04 10:56:24 +08:00
Stille 44e3e9d47e update v0.7.2 2022-04-03 14:10:44 +08:00
Stille 3bd160d44e update rulesets.txt 2022-01-09 22:34:21 +08:00
Stille e2dd6b1731 Update groups and rulesets 2021-12-20 18:18:05 +08:00
Stille f52c774930 Update Disney+ groups rulesets 2021-12-01 10:31:49 +08:00
Stille 5034c233f9 Update v0.7.1 2021-09-30 21:52:10 +08:00
Stille 2c11be59c5 Update v0.7.0 2021-09-21 19:52:57 +08:00
Stille b8f05b8c08 Update README.md 2021-07-15 17:16:39 +08:00
Stille bac6726ca6 Update docker support for ARM 2021-05-29 17:01:29 +08:00
Stille e7117d89bd Optimize groups.txt 2021-04-29 18:28:21 +08:00
Stille 12ade5201f Update v0.6.4 by latest source code 2021-03-22 14:57:21 +08:00
Stille 1fe4a88a14 Update v0.6.4 2020-10-17 14:22:18 +08:00
Stille fe1db5e6c9 Update v0.6.3 2020-08-17 11:12:01 +08:00
7 changed files with 244 additions and 82 deletions

View File

@ -1,19 +1,19 @@
FROM alpine:3.8
MAINTAINER Stille <stille@ioiox.com>
FROM tindy2013/subconverter
LABEL maintainer="Stille <stille@ioiox.com>"
ENV VERSION v0.6.2
ENV VERSION 0.8.1
WORKDIR /base
RUN apk add wget tzdata && \
RUN apk add tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
wget -P /base https://github.com/tindy2013/subconverter/releases/download/${VERSION}/subconverter_linux64.tar.gz && \
tar xzf subconverter_linux64.tar.gz && \
rm -rf subconverter_linux64.tar.gz && \
apk del wget tzdata
apk del tzdata
COPY groups.txt /base/subconverter/snippets
COPY groups.txt rulesets.txt /base/snippets/
COPY pref.yml /base
EXPOSE 25500
CMD ./subconverter/subconverter
WORKDIR /base
CMD subconverter

19
Dockerfile.OLD Normal file
View File

@ -0,0 +1,19 @@
FROM alpine:3.8
MAINTAINER Stille <stille@ioiox.com>
ENV VERSION v0.6.4
WORKDIR /base
RUN apk add wget tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
wget -P /base https://github.com/tindy2013/subconverter/releases/download/${VERSION}/subconverter_linux64.tar.gz && \
tar xzf subconverter_linux64.tar.gz && \
rm -rf subconverter_linux64.tar.gz && \
apk del wget tzdata
COPY groups.txt rulesets.txt /base/subconverter/snippets/
EXPOSE 25500
CMD ./subconverter/subconverter

View File

@ -1,73 +1,42 @@
# subconverter
## 简介
subconverter 是基于原版 [[tindy2013/subconverter]](https://github.com/tindy2013/subconverter) 项目的修改版本.仅修改 **分组配置文件** 以解决以下问题.相关使用方法请参考官方项目.
基于 [tindy2013/subconverter](https://github.com/tindy2013/subconverter) 项目的 docker 镜像.仅修改 **分组配置文件** 以解决以下问题.
- **增加**`NetflixDisneyPlus`等分组.
- **去除**`自动选择 url-test`以解决连接数爆涨问题.
- **全球拦截** 增加`节点选择`,以解决`Google Analytics`的访问需求.
- **修改时区** 镜像默认时区为 Asia/Shanghai
## 示例
[https://sub.ops.ci](https://sub.ops.ci)
*`前后端示例,可以直接使用.`*
## 更新
- **2022-07-16** 新增 [stilleshan/sub](https://github.com/stilleshan/dockerfiles/tree/main/sub) subweb + subconverter 合并进阶版.
- **2022-07-04** 新增 [stilleshan/subweb](https://github.com/stilleshan/subweb) 前端项目.
- **2022-04-03** 更新`v0.7.2`版 docker 镜像
- **2021-12-20** 更新优化规则和分组
- **2021-12-01** 添加`Disney+`规则分组
- **2021-09-30** 更新`v0.7.1`版 docker 镜像
- **2021-09-21** 更新`v0.7.0`版 docker 镜像
- **2021-06-09** 更新`v0.6.4`版 docker 镜像,新增同时支持 X86 和 ARM 架构.
## 部署
### docker 部署
### docker
```shell
docker run -d --name=subconverter --restart=always -p 25500:25500 stilleshan/subconverter
```
> 如需自定义分组配置,可挂载 **-v ~/groups.txt:/base/snippets/groups.txt** 参数.
### 免费提供订阅转换地址
具体使用教程请参考 [[tindy2013/subconverter]](https://github.com/tindy2013/subconverter) 官方项目,本免费托管服务版本可访问以下链接查看.
> 注意目前最新版 subconverter 已不再支持老版本 Clash
### docker compose
下载 [docker-compose.yml](https://raw.githubusercontent.com/stilleshan/dockerfiles/main/subconverter/docker-compose.yml) 执行以下命令启动:
```shell
https://subto.herokuapp.com/
docker-compose up -d
```
## Nginx反向代理
配置Nginx反向代理来为接口链接提供域名和HTTPS支持.配置参考如下,请自行替换`域名`和`证书`信息.
### subweb + subconverter 合并进阶版
详情查看 [stilleshan/sub](https://github.com/stilleshan/dockerfiles/tree/main/sub)
```nginx
upstream subconverter {
server 127.0.0.1:25500; # 端口改为docker容器提供的端口
}
server {
listen 80;
server_name www.yourdomain.com;
return 301 https://www.yourdomain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.yourdomain.com;
gzip on;
ssl_certificate /usr/local/nginx/conf/ssl/www.yourdomain.com.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/www.yourdomain.com.key;
location / {
proxy_redirect off;
proxy_pass http://subconverter;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
client_max_body_size 100m;
client_body_buffer_size 128k;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
```
## 相关链接
- GitHub [stilleshan/subconverter](https://github.com/stilleshan/subconverter)
- Docker [stilleshan/subconverter](https://hub.docker.com/r/stilleshan/subconverter)
- 原版项目Github [tindy2013/subconverter](https://github.com/tindy2013/subconverter)
- 原版项目docker [tindy2013/subconverter](https://hub.docker.com/r/tindy2013/subconverter)
## 链接
- [stilleshan/sub](https://github.com/stilleshan/dockerfiles/tree/main/sub)
- [stilleshan/subweb](https://github.com/stilleshan/subweb)
- [stilleshan/subconverter](https://github.com/stilleshan/subconverter)
- [tindy2013/subconverter](https://github.com/tindy2013/subconverter)

View File

@ -1,13 +1,12 @@
🔰 节点选择`select`[]🎯 全球直连`.*
;♻️ 自动选择`url-test`.*`http://www.gstatic.com/generate_204`300
;🎥 NETFLIX`select`[]🔰 节点选择`[]🎯 全球直连`.*
;⛔️ 广告拦截`select`[]🛑 全球拦截`[]🎯 全球直连`[]🔰 节点选择
;🚫 运营劫持`select`[]🛑 全球拦截`[]🎯 全球直连`[]🔰 节点选择
🌍 国外媒体`select`[]🔰 节点选择`[]🎯 全球直连`.*
🌏 国内媒体`select`[]🎯 全球直连`(HGC|HKBN|PCCW|HKT|深台|彰化|新北|台|hk|港|tw)`[]🔰 节点选择
Ⓜ️ 微软服务`select`[]🎯 全球直连`[]🔰 节点选择`.*
📲 电报信息`select`[]🔰 节点选择`[]🎯 全球直连`.*
🍎 苹果服务`select`[]🔰 节点选择`[]🎯 全球直连`.*
🎯 全球直连`select`[]DIRECT
🛑 全球拦截`select`[]REJECT`[]DIRECT`[]🔰 节点选择
🐟 漏网之鱼`select`[]🔰 节点选择`[]🎯 全球直连`.*
🔰 PROXY`select`[]🎯 DIRECT`.*
🎬 Media`select`(香港|HK|hk|🇭🇰|台湾|TW|tw|新加坡|SG|sg|🇸🇬)
▶️ YouTube`select`[]🔰 PROXY`[]🎬 Media`.*
🍿 Netflix`select`[]🔰 PROXY`[]🎬 Media`.*
🐰 DisneyPlus`select`[]🔰 PROXY`[]🎬 Media`.*
📺 AppleTV`select`[]🔰 PROXY`[]🎬 Media`.*
🍎 Apple`select`[]🎯 DIRECT`[]🔰 PROXY`.*
Ⓜ️ Microsoft`select`[]🎯 DIRECT`[]🔰 PROXY`.*
💰 PayPal`select`[]🎯 DIRECT`[]🔰 PROXY`.*
🚫 AdBlock`select`[]🎯 DIRECT`[]🔰 PROXY`[]REJECT`.*
🐟 Other`select`[]🎯 DIRECT`[]🔰 PROXY`.*
🎯 DIRECT`select`[]DIRECT

View File

@ -103,6 +103,14 @@ filter_deprecated_nodes=false
append_sub_userinfo=true
clash_use_new_field_name=true
;Generate style of the proxies section of Clash subscriptions.
;Supported styles: block, flow, compact
;Block: - name: name1 Flow: - {name: name1, key: value} Compact: [{name: name1, key: value},{name: name2, key: value}]
; key: value - {name: name2, key: value}
; - name: name2
; key: value
clash_proxies_style=flow
;Rename remarks with the following patterns. Supports regular expression.
;Format: Search_Pattern@Replace_Pattern
;rename_node=IPLC@专线
@ -250,7 +258,7 @@ max_pending_connections=10240
max_concurrent_threads=2
max_allowed_rulesets=0
max_allowed_rules=0
enable_base_gen=false
max_allowed_download_size=0
enable_cache=false
cache_subscription=60
cache_config=300

151
pref.yml Normal file
View File

@ -0,0 +1,151 @@
common:
api_mode: false
api_access_token: password
default_url: []
enable_insert: true
insert_url: []
prepend_insert_url: true
exclude_remarks: ["(到期|剩余流量|时间|官网|产品|平台)"]
include_remarks: []
enable_filter: false
filter_script: ""
default_external_config: "" # config/example_external_config.yml
base_path: base
clash_rule_base: base/all_base.tpl
surge_rule_base: base/all_base.tpl
surfboard_rule_base: base/all_base.tpl
mellow_rule_base: base/all_base.tpl
quan_rule_base: base/all_base.tpl
quanx_rule_base: base/all_base.tpl
loon_rule_base: base/all_base.tpl
sssub_rule_base: base/all_base.tpl
proxy_config: SYSTEM
proxy_ruleset: SYSTEM
proxy_subscription: NONE
append_proxy_type: false
userinfo:
stream_rule:
- {match: "^剩余流量:(.*?)\\|总流量:(.*)$", replace: "total=$2&left=$1"}
- {match: "^剩余流量:(.*?) (.*)$", replace: "total=$1&left=$2"}
- {match: "^Bandwidth: (.*?)/(.*)$", replace: "used=$1&total=$2"}
- {match: "^.*剩余(.*?)(?:\\s*?)@(?:.*)$", replace: "total=$1"}
- {match: "^.*?流量:(.*?) 剩:(?:.*)$", replace: "total=$1"}
time_rule:
- {match: "^过期时间:(\\d+)-(\\d+)-(\\d+) (\\d+):(\\d+):(\\d+)$", replace: "$1:$2:$3:$4:$5:$6"}
- {match: "^到期时间(:|)(\\d+)-(\\d+)-(\\d+)$", replace: "$1:$2:$3:0:0:0"}
- {match: "^Smart Access expire: (\\d+)/(\\d+)/(\\d+)$", replace: "$1:$2:$3:0:0:0"}
- {match: "^.*?流量:(?:.*?) 剩:(.*?)天$", replace: "left=$1d"}
node_pref:
# udp_flag: false
# tcp_fast_open_flag: false
# skip_cert_verify_flag: false
# tls13_flag: false
sort_flag: false
sort_script: ""
filter_deprecated_nodes: false
append_sub_userinfo: true
clash_use_new_field_name: true
clash_proxies_style: flow
rename_node:
# - {match: "\\(?((x|X)?(\\d+)(\\.?\\d+)?)((\\s?倍率?)|(x|X))\\)?", replace: "$1x"}
# - {script: "function rename(node){}"}
# - {script: "path:/path/to/script.js"}
- {import: snippets/rename_node.txt}
managed_config:
write_managed_config: true
managed_config_prefix: "http://127.0.0.1:25500"
config_update_interval: 86400
config_update_strict: false
quanx_device_id: ""
surge_external_proxy:
surge_ssr_path: "" # /usr/bin/ssr-local
resolve_hostname: true
emojis:
add_emoji: true
remove_old_emoji: true
rules:
# - {match: "(流量|时间|应急)", emoji: "🏳️‍🌈"}
# - {script: "function getEmoji(node){}"}
# - {script: "path:/path/to/script.js"}
- {import: snippets/emoji.txt}
rulesets:
enabled: true
overwrite_original_rules: false
update_ruleset_on_request: false
rulesets:
# - {rule: "GEOIP,CN", group: "DIRECT"}
# - {ruleset: "rules/LocalAreaNetwork.list", group: "DIRECT"}
# - {ruleset: "surge:rules/LocalAreaNetwork.list", group: "DIRECT"}
# - {ruleset: "quanx:https://raw.githubusercontent.com/ConnersHua/Profiles/master/Quantumult/X/Filter/Advertising.list", group: "Advertising", interval: 86400}
# - {ruleset: "clash-domain:https://ruleset.dev/clash_domestic_services_domains", group: "Domestic Services", interval: 86400}
# - {ruleset: "clash-ipcidr:https://ruleset.dev/clash_domestic_services_ips", group: "Domestic Services", interval: 86400}
# - {ruleset: "clash-classic:https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/China.yaml", group: "DIRECT", interval: 86400}
- {import: snippets/rulesets.txt}
proxy_groups:
custom_proxy_group:
# - {name: UrlTest, type: url-test, rule: [".*"], url: http://www.gstatic.com/generate_204, interval: 300, tolerance: 100, timeout: 5}
# - {name: Proxy, type: select, rule: [".*"]}
# - {name: group1, type: select, rule: ["!!GROUPID=0"]}
# - {name: v2ray, type: select, rule: ["!!GROUP=V2RayProvider"]}
# - {import: snippets/groups_forcerule.txt}
# - {name: ssid group, type: ssid, rule: ["default_group", "celluar=group0,ssid1=group1,ssid2=group2"]}
- {import: snippets/groups.txt}
template:
template_path: ""
globals:
- {key: clash.http_port, value: 7890}
- {key: clash.socks_port, value: 7891}
- {key: clash.allow_lan, value: true}
- {key: clash.log_level, value: info}
aliases:
- {uri: /v, target: /version}
- {uri: /clash, target: "/sub?target=clash"}
- {uri: /clashr, target: "/sub?target=clashr"}
- {uri: /surge, target: "/sub?target=surge"}
- {uri: /quan, target: "/sub?target=quan"}
- {uri: /quanx, target: "/sub?target=quanx"}
- {uri: /mellow, target: "/sub?target=mellow"}
- {uri: /surfboard, target: "/sub?target=surfboard"}
- {uri: /loon, target: "/sub?target=loon"}
- {uri: /ss, target: "/sub?target=ss"}
- {uri: /ssd, target: "/sub?target=ssd"}
- {uri: /sssub, target: "/sub?target=sssub"}
- {uri: /ssr, target: "/sub?target=ssr"}
- {uri: /v2ray, target: "/sub?target=v2ray"}
- {uri: /trojan, target: "/sub?target=trojan"}
tasks:
# - name: tick
# cronexp: "0/10 * * * * ?"
# path: tick.js
# timeout: 3
server:
listen: 0.0.0.0
port: 25500
serve_file_root: ""
advanced:
log_level: info
print_debug_info: false
max_pending_connections: 10240
max_concurrent_threads: 2
max_allowed_rulesets: 0
max_allowed_rules: 0
max_allowed_download_size: 0
enable_cache: false
cache_subscription: 60
cache_config: 300
cache_ruleset: 21600
script_clean_context: true
async_fetch_ruleset: false
skip_failed_links: false

16
rulesets.txt Normal file
View File

@ -0,0 +1,16 @@
🚫 AdBlock,https://raw.githubusercontent.com/NobyDa/Script/master/Surge/AdRule.list
🚫 AdBlock,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Hijacking/Hijacking.list
▶️ YouTube,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/YouTube/YouTube.list
🍿 Netflix,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Netflix/Netflix.list
🐰 DisneyPlus,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Disney/Disney.list
💰 PayPal,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/PayPal/PayPal.list
📺 AppleTV,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/AppleTV/AppleTV.list
🍎 Apple,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Apple/Apple.list
Ⓜ️ Microsoft,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Microsoft/Microsoft.list
🔰 PROXY,https://raw.githubusercontent.com/DivineEngine/Profiles/master/Surge/Ruleset/Global.list
🎯 DIRECT,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/Lan/Lan.list
🎯 DIRECT,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/China/China.list
🎯 DIRECT,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/ChinaIPs/ChinaIPs.list
🎯 DIRECT,https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/PrivateTracker/PrivateTracker.list
🎯 DIRECT,[]GEOIP,CN
🐟 Other,[]FINAL