Steve

Steve

twitter_id
github
telegram

自建Clash訂閱轉換 - Subconverter+Subweb+MyUrls搭建教程 (Docker版本)

Clash 訂閱轉換#

image

如上圖可以看到這是一個 Sub-Web 的網頁端。可以把你的機場訂閱或者 Vmess/ss 等放入這裡面,之後可以生成帶有分流規則的 Clash 連接,一鍵導入的 Clash。

部署整體邏輯#

  • 後端:Subconverter 負責渲染分流規則
  • 前端:Sub-web 負責處理頁面
  • 短連結:原始連接非常長,需要通過短連結的形式方便使用

搭建後端 Subconverter#

  1. docker 部署

項目地址:https://github.com/tindy2013/subconverter

Docker 官方指引:https://github.com/tindy2013/subconverter/blob/master/README-docker.md

#docker部署
docker run -d --name subcon --restart=always -p 25500:25500 tindy2013/subconverter:latest
  1. 反代服務

一般大家用的寶塔或者 NMP 按照正常處理反代即可。如果是用 Ningx Manager Proxy 添加好域名suc.surgee.me
image

注意:docker 的 ip 處理

這裡有一個需要注意的地方,如果不做處理,反代指向地址不能用 127.0.0.1 (並非指向宿主機),用 docker 的 ip 地址也不行,如果偷懶可以指向伺服器真實 ip。如果要指向容器的 ip,那麼需要單獨處理,因為 nginx manager proxy 是自定義的網路(雖然也是 bridge),但畢竟不在一個網段下。解決也很簡單,就是把NPM加入到bridge網路中

#把NMP加入到bridge網路中 
docker network connect bridge nginx-proxy-app-1

image

之後用docker inspect subcon查看容器的 ip 是172.17.0.5.

image

之後直接訪問顯示 File not found. 就是 ok 了

搭建前端 Subweb#

項目地址:https://github.com/CareyWang/sub-web

  1. 配置前端

如果用 docker 搭建,需要配置前端之後,重新 build 鏡像。

# Clone項目到本地 
git clone https://github.com/CareyWang/sub-web.git
cd sub-web 
# 編輯.env配置文件
vi .env 
# 修改後端地址、短連結地址 
# API 後端 
VUE_APP_SUBCONVERTER_DEFAULT_BACKEND = "https://suc.surgee.me" 
# 短連結後端 
VUE_APP_MYURLS_DEFAULT_BACKEND = "https://i.surgee.me" 
# 文本托管後端 VUE_APP_CONFIG_UPLOAD_BACKEND = "https://suc.surgee.me" 
# 編輯. 
cd src/views vi Subconverter.vue  
#39行
placeholder="https://suc.surgee.me/sub?" 
#300行 
backendOptions: [{ value: "https://suc.surgee.me/sub?" }],
  1. 增加遠端服務配置
{

label: "Steve",

options: [

{

label: "StevePro",

value:

"https://raw.githubusercontent.com/zxfccmm4/Surge/main/Clash/rules.ini"

},

{

label: "SteveProMax",

value:

"https://raw.githubusercontent.com/zxfccmm4/Surge/main/Clash/rules1.ini"

}

]

},

{

label: "ACL4SSR",

options: [

{

label: "ACL4SSR_Online 默認版 分組比較全 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini"

},

{

label: "ACL4SSR_Online_AdblockPlus 更多去廣告 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_AdblockPlus.ini"

},

{

label: "ACL4SSR_Online_NoAuto 無自動測速 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoAuto.ini"

},

{

label: "ACL4SSR_Online_NoReject 無廣告攔截規則 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoReject.ini"

},

{

label: "ACL4SSR_Online_Mini 精簡版 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini.ini"

},

{

label: "ACL4SSR_Online_Mini_AdblockPlus.ini 精簡版 更多去廣告 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_AdblockPlus.ini"

},

{

label: "ACL4SSR_Online_Mini_NoAuto.ini 精簡版 不帶自動測速 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_NoAuto.ini"

},

{

label: "ACL4SSR_Online_Mini_Fallback.ini 精簡版 帶故障轉移 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_Fallback.ini"

},

{

label: "ACL4SSR_Online_Mini_MultiMode.ini 精簡版 自動測速、故障轉移、負載均衡 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_MultiMode.ini"

},

{

label: "ACL4SSR_Online_Full 全分組 重度用戶使用 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full.ini"

},

{

label: "ACL4SSR_Online_Full_NoAuto.ini 全分組 無自動測速 重度用戶使用 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_NoAuto.ini"

},

{

label: "ACL4SSR_Online_Full_AdblockPlus 全分組 重度用戶使用 更多去廣告 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_AdblockPlus.ini"

},

{

label: "ACL4SSR_Online_Full_Netflix 全分組 重度用戶使用 奈飛全量 (與Github同步)",

value:

"https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_Netflix.ini"

},

{

label: "ACL4SSR 本地 默認版 分組比較全",

value: "config/ACL4SSR.ini"

},

{

label: "ACL4SSR_Mini 本地 精簡版",

value: "config/ACL4SSR_Mini.ini"

},

{

label: "ACL4SSR_Mini_NoAuto.ini 本地 精簡版+無自動測速",

value: "config/ACL4SSR_Mini_NoAuto.ini"

},

{

label: "ACL4SSR_Mini_Fallback.ini 本地 精簡版+fallback",

value: "config/ACL4SSR_Mini_Fallback.ini"

},

{

label: "ACL4SSR_BackCN 本地 回國",

value: "config/ACL4SSR_BackCN.ini"

},

{

label: "ACL4SSR_NoApple 本地 無蘋果分流",

value: "config/ACL4SSR_NoApple.ini"

},

{

label: "ACL4SSR_NoAuto 本地 無自動測速 ",

value: "config/ACL4SSR_NoAuto.ini"

},

{

label: "ACL4SSR_NoAuto_NoApple 本地 無自動測速&無蘋果分流",

value: "config/ACL4SSR_NoAuto_NoApple.ini"

},

{

label: "ACL4SSR_NoMicrosoft 本地 無微軟分流",

value: "config/ACL4SSR_NoMicrosoft.ini"

},

{

label: "ACL4SSR_WithGFW 本地 GFW列表",

value: "config/ACL4SSR_WithGFW.ini"

}

]

},

{

label: "Tutu的規則",

options: [

{

label: "全分組版本",

value:

"https://raw.githubusercontent.com/bunizao/TutuBetterRules/tutu/Clash/rules.ini"

},

{

label: "去掉Apple策略組(删減了一些關於蘋果的規則,適合windows以及android用戶)",

value:

"https://raw.githubusercontent.com/bunizao/TutuBetterRules/tutu/Clash/rules2.ini"

}

]

},

當然,還有其他大佬的分流規則庫。

ACL4SSR 的庫 :https://github.com/ACL4SSR/ACL4SSR/tree/master/Clash

blackmatrix7 的庫 :https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash

神機規則庫 :https://github.com/DivineEngine/Profiles/tree/master/Clash/RuleSet

  1. 構建鏡像 & 部署服
#構建鏡像 
docker build -t subweb-local:latest .  
#部署服務 
docker run -d -p 58080:80 --restart always --name subweb subweb-local:latest

搭建短域名 Myurls#

項目地址:https://github.com/CareyWang/MyUrls

  1. 部署服務
#部署Redis,因為需要redis。如果是docker-compose會自己部署redis,我是直接apt update安裝了。 
apt update 
apt install redis-server -y  
之後redis-cli測試一下  
#clone項目到本地 
git clone https://github.com/CareyWang/MyUrls.git MyUrls 
cd MyUrls 
vi public/index.html 
#修改短連結域名 
const backend = 'https://i.surgee.me' 
#部署服務 
docker run -d --restart always --net=host --name myurls  -v /root/MyUrls/public:/app/public careywong/myurls:latest -domain i.surgee.me -port 8002 -conn 127.0.0.1:6379  -ttl 180  
其中域名、端口按照實際修改,--net=host是為了連接宿主機redis 最關鍵的-v /root/MyUrls/public:/app/public把修改了index.html的目錄映射到容器

結尾#

最終我成功搭建了Clash 訂閱轉換

https://sub.surgee.me

image

感謝以下大佬的教程受益良多。
https://github.com/stilleshan/dockerfiles/tree/main/sub
https://imgki.com/archives/718.html?replyTo=443
https://github.com/tindy2013/subconverter
https://github.com/CareyWang/sub-web
https://github.com/bunizao/TutuBetterRules
https://github.com/ACL4SSR/ACL4SSR/tree/master/Clash
https://github.com/blackmatrix7/ios_rule_script/tree/master/rule/Clash
https://github.com/DivineEngine/Profiles/tree/master/Clash/RuleSet

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。