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 はカスタムネットワーク(ブリッジでもありますが)であり、同じネットワークセグメントにはありません。解決策は簡単で、NPMをブリッジネットワークに追加することです。

#NMPをブリッジネットワークに追加
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 を使用して構築する場合、フロントエンドを設定した後、再度イメージをビルドする必要があります。

# プロジェクトをローカルにクローン
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 ローカル 簡易版+フォールバック",

value: "config/ACL4SSR_Mini_Fallback.ini"

},

{

label: "ACL4SSR_BackCN ローカル 帰国",

value: "config/ACL4SSR_BackCN.ini"

},

{

label: "ACL4SSR_NoApple ローカル Apple分流なし",

value: "config/ACL4SSR_NoApple.ini"

},

{

label: "ACL4SSR_NoAuto ローカル 自動測定なし ",

value: "config/ACL4SSR_NoAuto.ini"

},

{

label: "ACL4SSR_NoAuto_NoApple ローカル 自動測定なし&Apple分流なし",

value: "config/ACL4SSR_NoAuto_NoApple.ini"

},

{

label: "ACL4SSR_NoMicrosoft ローカル Microsoft分流なし",

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戦略グループを削除(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でテストします  
#プロジェクトをローカルにクローン 
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

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。