Compare commits
14 Commits
Author | SHA1 | Date |
---|---|---|
Stille | f174f8a238 | |
Stille | 29a64f2aa0 | |
Stille | 924217cd7a | |
Stille | 93c18c5eb2 | |
Stille | 44e3e9d47e | |
Stille | 3bd160d44e | |
Stille | e2dd6b1731 | |
Stille | f52c774930 | |
Stille | 5034c233f9 | |
Stille | 2c11be59c5 | |
Stille | b8f05b8c08 | |
Stille | bac6726ca6 | |
Stille | e7117d89bd | |
Stille | 12ade5201f |
20
Dockerfile
20
Dockerfile
|
@ -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.4
|
||||
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 rulesets.txt /base/subconverter/snippets/
|
||||
COPY groups.txt rulesets.txt /base/snippets/
|
||||
COPY pref.yml /base
|
||||
|
||||
EXPOSE 25500
|
||||
|
||||
CMD ./subconverter/subconverter
|
||||
WORKDIR /base
|
||||
|
||||
CMD subconverter
|
||||
|
|
|
@ -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
|
85
README.md
85
README.md
|
@ -1,73 +1,42 @@
|
|||
# subconverter
|
||||
## 简介
|
||||
subconverter 是基于原版 [[tindy2013/subconverter]](https://github.com/tindy2013/subconverter) 项目的修改版本.仅修改 **分组配置文件** 以解决以下问题.相关使用方法请参考官方项目.
|
||||
基于 [tindy2013/subconverter](https://github.com/tindy2013/subconverter) 项目的 docker 镜像.仅修改 **分组配置文件** 以解决以下问题.
|
||||
|
||||
- **增加**`Netflix,DisneyPlus`等分组.
|
||||
- **去除**`自动选择 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)
|
||||
|
|
25
groups.txt
25
groups.txt
|
@ -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
|
|
@ -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
|
36
rulesets.txt
36
rulesets.txt
|
@ -1,20 +1,16 @@
|
|||
🎯 全球直连,rules/LocalAreaNetwork.list
|
||||
Ⓜ️ 微软服务,rules/MSServices.list
|
||||
🎯 全球直连,rules/DivineEngine/Surge/Ruleset/Unbreak.list
|
||||
🛑 全球拦截,rules/NobyDa/Surge/AdRule.list
|
||||
🛑 全球拦截,rules/DivineEngine/Surge/Ruleset/Guard/Hijacking.list
|
||||
🎥 NETFLIX,rules/DivineEngine/Surge/Ruleset/StreamingMedia/Video/Netflix.list
|
||||
🌍 国外媒体,rules/DivineEngine/Surge/Ruleset/StreamingMedia/Streaming.list
|
||||
🌏 国内媒体,rules/lhie1/Surge/Surge 3/Provider/Media/Bilibili.list
|
||||
🌏 国内媒体,rules/lhie1/Surge/Surge 3/Provider/Media/iQiyi.list
|
||||
🌏 国内媒体,rules/lhie1/Surge/Surge 3/Provider/Media/Letv.list
|
||||
🌏 国内媒体,rules/lhie1/Surge/Surge 3/Provider/Media/MOO.list
|
||||
🌏 国内媒体,rules/lhie1/Surge/Surge 3/Provider/Media/Tencent Video.list
|
||||
🌏 国内媒体,rules/lhie1/Surge/Surge 3/Provider/Media/Youku.list
|
||||
📲 电报信息,rules/DivineEngine/Surge/Ruleset/Extra/Telegram/Telegram.list
|
||||
🔰 节点选择,rules/DivineEngine/Surge/Ruleset/Global.list
|
||||
🍎 苹果服务,rules/DivineEngine/Surge/Ruleset/Extra/Apple/Apple.list
|
||||
🎯 全球直连,rules/DivineEngine/Surge/Ruleset/China.list
|
||||
🎯 全球直连,rules/NobyDa/Surge/Download.list
|
||||
🎯 全球直连,[]GEOIP,CN
|
||||
🐟 漏网之鱼,[]FINAL
|
||||
🚫 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
|
Loading…
Reference in New Issue