Lainbo

Lainbo's Blog

If you’re nothing without the suit, then you shouldn't have it.
github
email
follow

Clash Vergeシリーズのベストプラクティス

一部のクライアント作成者が更新を停止したことについて#

これらのクライアントが更新を停止した場合、私たちの使用に影響はあるのでしょうか?この問題の答えを知りたい場合、まず私たちは一つの概念を理解する必要があります。Clash Verge(オープンソース)、Clash for Windows、Clash X Pro のようなグラフィカルなソフトウェアは、すべて一つのシェルであり、コア機能と接続するためのものです。更新を停止したのはこのシェルだけです。

一般的なコアには Clash Premium、Clash Meta(オープンソース)があります。

Clash Verge とその切り替え可能なコア Clash Meta はどちらもオープンソースであるため、私たちはこの組み合わせを優先的に選ぶべきです。以下の文でもこの組み合わせを使用します。

では、私たちは彼らを引き続き使用できるのでしょうか?

もちろん可能です、以下に説明します。

  1. あなたがラジオ *(Clash Verge)を使用しているとき、ラジオの製造業者(作者)が倒産した(更新を停止した)* からといって、すぐにラジオを捨てることはありません。
  2. ラジオのすべての部品の設計図は公開 *(オープンソース)* されているため、悪意のあるバックグラウンドプログラムが埋め込まれているかもしれないことを心配する必要はありません。
  3. ラジオのシェルボタン *(Clash Verge)は、ラジオ内部のマザーボードコンポーネント(Clash Meta コア)をより簡単に制御してタスクを実行させるためのものです。このシェルボタン(Clash Verge)がラジオのマザーボード(Clash Meta コア)* を制御する方法に大きな問題がなければ、私たちは使用できます。
  4. シェルが更新を停止することは、ラジオのシェルに新しいボタンが追加されないことを意味します。
  5. コアが更新を停止することは、ラジオのマザーボードが機能を更新しないことを意味します、それだけです。
  6. ラジオが音を再生できる *(魔法を開く)のは、あなたが正しい FM 周波数(購読リンク)を入力したからです。ラジオ局(空港)がまだ放送(サービス)している限り、シェルとコアがまだ存在する限り、音を再生すること(魔法を開く)* に影響はありません。

最後に、私たちは一つの点を明確にする必要があります。以下に述べるプライバシー保護の操作は絶対的な安全ではありません。家で何をしているかを知りたい場合、下のゴミ箱をひっくり返して捨てたゴミから推測することができますし、望遠鏡で監視することもできますし、家の天井を爆破したり、大砲で強引に突入して見ることもできます。ネットワーク監視も同様で、あなたのネット上の行動を見て、どれだけの高級手段を使う価値があるかを判断されます。掘削機が一発で防盗ドアを壊せるからといって、防盗ドアを設置しないわけにはいきません。

現在利用可能なオープンソース Clash Verge クライアント#

現在、Clash Verge を基にして開発・保守されているクライアントがいくつかあります。特にお勧めなのは Clash Verge Rev です。後の文章ではこのクライアントを基にデモを行います。

後述の設定は Clash Verge Rev ≥ v1.7 に適合しており、かなりの期間自分で使用してきたので安心してご利用いただけます。

なぜこのソフトウェアなのか?

マルチプラットフォームの互換性が優れている ——Clash Verge Rev は Windows、macOS、Linux をサポートしています。以下のチュートリアルに従って操作すれば、最終的に新しい購読リンクが得られます。iOS では、この新しい購読リンクを QR コードに生成し、小火箭を使って「+」アイコンをクリックし、下の「QR コードをスキャン」を見つければ、iOS デバイスにインポートして使用できます。Stash では生成されたリンクを直接入力するだけで使用でき、以下のベストプラクティス操作は一度実行すれば、多くのデバイスでクロスプラットフォームで適用できます。

長すぎるので要点をまとめる#

  1. 購読変換 **(すべての端末で必須)**
  2. TUN モードを開き、プロキシをオフにする(オプション)
  3. ブラウザの安全 DNS アドレスをオフにし、DNS アドレスを設定する(すべての PC でオプション、2 を操作した場合は必須)
  4. システム DNS 設定を自動にする(オプション)
  5. ブラウザの QUIC をオフにする **(すべての PC で必須)**
  6. ローカル中国 IP データベースを設定する(オプション)

購読分流ルールの問題を解決する#

購読リンクを取得したら、最初に行うべきことは購読変換です。彼の分流ルールを整備することです(購読を提供するサービスプロバイダーが持っている分流ルールは、往々にして数百条で非常に不完全で、多くの人が Clash を開いているのに New Bing が使えないのはその良い例です)。

オンライン購読変換は単にShadowsocks、V2ray、Trojan の購読リンクを Clash、Stash、V2ray、Quantumult X、Surge などのソフトウェアで使用する購読形式に変換するだけでなく、非常に多くの高度な操作もサポートしていますが、この記事では使えることを目標としており、これを楽しむことを目的としていません。

オンライン購読変換サイトは便利ですが、一定のプライバシーリスクもあるため注意が必要です。技術に詳しい友人には、自分でオンライン購読変換プラットフォームを構築することをお勧めします。

購読変換サイト#

私が構築した購読変換サイトを、以下の文では例として使用します。

アクセス: https://sub.lainbo.com/

操作手順#

image

一般的に、これでかなり完璧に使用でき、私が書いたリモート設定ファイルのいくつかの追加機能を持っています。

ルールファイルが成功裏に適用されたかどうかを判断する#

購読を引き出した後、ノードの中に「🌿自動選択」、「🇭🇰香港自動」、「🇨🇳台湾自動」、「🇸🇬狮城自動」、「🇺🇸アメリカ自動」、「🇯🇵日本自動」という自動ノードが表示されるはずです。これらの自動ノードが見える場合、あなたは自分の購読に私のルールを成功裏に適用したことになります。

特別な要求がない場合は、これらの自動ノードを選択することをお勧めします。自動ノードは、対応する国 / 地域のノードの中で、遅延が最も低いノードを使用するのを助けてくれます。

リモート設定について#

このリモート設定とは何か、あなたの購読にどのような機能を与えるのか、「リモート設定」原文のリンクを開くと、上部に注釈があります。

DNS 漏洩問題を解決する#

DNS 漏洩とは、VPN やその他のプライバシーサービスを使用している場合に、ユーザーの実際の IP アドレスが DNS リクエストを通じて ISP(例えば、聯通、移動)の DNS サーバーに送信されることを指します。VPN 設定の安全で匿名の DNS サーバーを通じてではなく。もしDNS Leak Testipleakのようなサイトのリストに中国の国旗が見えたら、おそらくDNS 漏洩が発生していることを認識する必要があります。

もし本当に漏洩した場合、何が問題になるのでしょうか?私もわかりませんが、以下のようなメッセージを受け取る可能性があります。
image
image
私はできるだけ彼らにこのことを知られたくありません。具体的な探知メカニズムは誰も知らないが、ネットワークレベルで取得されている可能性が高いです。一般的な家庭のネットワークトポロジーでは、wiresharkで見える内容は、運営者が見える内容でもあります。したがって、あなたが 114.114.114.114、223.5.5.5 のような DNS 解決を使用してどのサイトにアクセスしたかは非常に明確です。

ここから最初の使用テクニックが派生します ——Clash を TUN モードで開き、システムプロキシをオフにして使用すること

通常のシステムプロキシモードとの違いは、TUN モードでは Clash が仮想ネットワークカードを作成し、ネットワークレベルで全てのネットワークトラフィックを引き継ぎます。

通常のシステムプロキシモードは、ソフトウェアの権限として他のソフトウェアのネットワークを引き継ぐもので、引き継げないアプリケーション(例えば、ゲームやコマンドラインなど)が常に存在します。したがって、私たちは TUN モードを開き、システムプロキシをオフにして、ネットワークカードにこの作業をさせるべきです。

操作 1(TUN モードを開く)#

  1. まず、Clash Verge のコアを切り替え、オープンソースの Clash Meta コアを選択し、Clash Verge 全体を再起動して効果を確実にします(Clash Verge Rev の新しいバージョンはデフォルトで Meta になっているはずです)。

    (Clash Meta は後期に異なるクライアント名で異なる場合があります。もしコア名がMihomoであれば、それも Meta です)

    image

  2. サービスをインストールし、Tun モードを開き、厳格なルーティングを開き、下の図の数字の順番でクリックします。

    image

    サービスモードがインストールできない場合

    • Win では、システムコマンドライン(PowerShell)でsc delete clash_verge_serviceを実行して以前の Clash Verge サービスを削除してみてください。これは以前に Clash Verge をインストールしたが、アンインストール時にこのサービスモードに書き込まなかったため、新しいインストールができない可能性があります。
    • Mac/Linux では、設定のClashコアで歯車アイコン⚙️をクリックし、「認可」を選択してください。
    • その他のトラブルシューティングはhttps://github.com/clash-verge-rev/clash-verge-rev/issues/125 を参照してください。
  3. この時、Clash ソフトウェアを再起動し、TUN モードの隣の歯車アイコン⚙️をクリックして、Tun のスタックモードを Mixed に設定します。これが公式に推奨されるオプションで、「厳格なルーティング」を開きます。

    image

操作 2(グループポリシーを調整 Mac はスキップ)#

この問題を解決するのは非常に簡単です。問題が発生する原因は、Windows システムがデフォルトでマルチホスト DNS 解決を使用し、すべてのネットワークカードを使用してリクエストを発起するためです。私たちはグループポリシー(Windows 家庭版にはこの機能がありません)でこの機能をオフにするだけで済みます(Win+R を押してgpedit.mscと入力し、OK をクリック)。

image

これで、Clash が Windows で発生する可能性のある DNS 漏洩問題を解決しました。

しかし、ipleak が検出できないことを保証するものではありません。私は ipleak をルールに追加することができますが、そうすることは耳を塞ぐことになります。特定のブラックリストサイトが漏れないことを確認できれば、上記のようなメッセージを受け取ることはないと思います。

操作 3(安定した DNS を使用する)#

この部分では、誰かが ISP の DNS を使用することを教えるかもしれませんが、ISP の DNS は初心者ユーザーに適しているだけで、彼らは詐欺防止すら知らない可能性があるため、国内の大手企業の DNS を使用することをお勧めします。

  1. ブラウザの QUIC をオフにします。中国本土の ISP は UDP の速度制限を行っているため、QUIC という優れたプロトコルが中国本土のネットワークでは逆効果になります。

    about://flags/#enable-quicDisabledに設定します(下に表示される再起動をクリックして有効にします)。

  2. ブラウザの「安全 DNS」をオフにします。

    • Chrome: chrome://settings/security

      【安全 DNS を使用】*(新しい Chrome では【訪問したウェブサイトの名前を暗号化する】と呼ばれています)* をオフにします。

    • Edge: edge://settings/privacy

      【安全性】 -【安全な DNS を使用してウェブサイトのネットワークアドレスを検索する方法を指定】をオフにします。

  • もしあなたの Clash Verge Rev のバージョンが < 1.7 の場合

    1. Clash Verge の【設定】で、右上の新規作成をクリックし、以下の操作を行います。

    image

    1. 新しく作成したカードを右クリックし、「ファイルを編集」を選択し、以下の内容を入力して保存し、カードを右クリックして有効にします。

      image

      function main(content) {
        const isObject = (value) => {
          return value !== null && typeof value === 'object'
        }
      
        const mergeConfig = (existingConfig, newConfig) => {
          if (!isObject(existingConfig)) {
            existingConfig = {}
          }
          if (!isObject(newConfig)) {
            return existingConfig
          }
          return { ...existingConfig, ...newConfig }
        }
      
        const cnDnsList = [
          'https://1.12.12.12/dns-query',
          'https://223.5.5.5/dns-query',
        ]
        
        // 大部分のネットワークリクエストはここを通過します。ここでは現在、Tencent、Alibaba、そしてノードを照会する1.0.0.1のDNSを使用しています。
        const trustDnsList = [
          'https://doh.pub/dns-query', // Tencent
          'https://dns.alidns.com/dns-query', // Alibaba(ここではh3と通常の並列照会がトリガーされます)
          '180.184.1.1', // Byte - Volcano EngineのDNS
        ]
        const notionDns = 'tls://dns.jerryw.cn' // notion加速dns
        const notionUrls = [
          'http-inputs-notion.splunkcloud.com',
          '+.notion-static.com',
          '+.notion.com',
          '+.notion.new',
          '+.notion.site',
          '+.notion.so',
        ]
        const combinedUrls = notionUrls.join(',');
        const dnsOptions = {
          'enable': true,
          'prefer-h3': true, // DNSサーバーがDoH3をサポートしている場合はh3を優先的に使用します(この例ではAlibaba DNSのみがサポートしています)。
          'default-nameserver': cnDnsList, // 他のDNSサーバーやノードのドメインを解決するために使用されます。IPでなければならず、暗号化DNSも可能です。この設定はノードと他のDNSを解決するためだけに使用され、他のネットワークリクエストには関与しません。
          'nameserver': trustDnsList, // 他のネットワークリクエストはすべてここを通過します。
          
          // これは上記のnameserverを上書きするために使用されます。
          'nameserver-policy': {
            [combinedUrls]: notionDns,
            'geosite:geolocation-!cn': trustDnsList,
            // 内部ネットワークで使用するDNSがある場合は、ここに定義する必要があります。複数のドメインはカンマで区切ります。
            // '+.会社ドメイン.com, www.4399.com, +.baidu.com': '10.0.0.1'
          },
        }
      
        // GitHub加速前缀
        const githubPrefix = 'https://fastgh.lainbo.com/'
      
        // GEOデータGitHubリソースの原始ダウンロードアドレス
        const rawGeoxURLs = {
          geoip: 'https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.dat',
          geosite: 'https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat',
          mmdb: 'https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country-lite.mmdb',
        }
      
        // 加速前缀を持つGEOデータリソースオブジェクトを生成します。
        const accelURLs = Object.fromEntries(
          Object.entries(rawGeoxURLs).map(([key, githubUrl]) => [key, `${githubPrefix}${githubUrl}`]),
        )
      
        const otherOptions = {
          'unified-delay': true,
          'tcp-concurrent': true,
          'profile': {
            'store-selected': true,
            'store-fake-ip': true,
          },
          'sniffer': {
            enable: true,
            sniff: {
              TLS: {
                ports: [443, 8443],
              },
              HTTP: {
                'ports': [80, '8080-8880'],
                'override-destination': true,
              },
            },
          },
          'geodata-mode': true,
          'geo-auto-update': true,
          'geo-update-interval': 24,
          'geodata-loader': 'standard',
          'geox-url': accelURLs,
          'find-process-mode': 'strict',
        }
        content.dns = mergeConfig(content.dns, dnsOptions)
        return { ...content, ...otherOptions }
      }
      

      画像はインターフェースの参考として提供されており、実際の内容は上記のコードブロックに基づいています。

      image

    2. 有効にした後、再度ボタンをクリックして、設定が正しく適用されたことを確認します(ここでのコードの変更は、必ずこのボタンをクリックして手動で実行時の設定を更新する必要があります)。

      image

  • もしあなたの Clash Verge Rev のバージョンが≥1.7 の場合

    1. 右クリックして「全体拡張設定」を選択し、「ファイルを編集」をクリックします。

      image

    2. 以下のコードを貼り付けて、保存をクリックします。

      dns:
        prefer-h3: true
        default-nameserver:
          - 180.184.1.1
          - https://1.12.12.12/dns-query
          - https://119.29.29.29/dns-query
        nameserver-policy:
          "http-inputs-notion.splunkcloud.com,+.notion-static.com,+.notion.com,+.notion.new,+.notion.site,+.notion.so": tls://dns.jerryw.cn
          geosite:geolocation-!cn:
            - https://doh.pub/dns-query
            - https://dns.alidns.com/dns-query
            - 180.184.1.1
          nameserver:
            - https://doh.pub/dns-query
            - https://dns.alidns.com/dns-query
            - 180.184.1.1
      unified-delay: true
      tcp-concurrent: true
      profile:
        store-selected: true
        store-fake-ip: true
      sniffer:
        enable: true
        sniff:
          HTTP:
            ports:
              - 80
              - 8080-8880
            override-destination: true
          TLS:
            ports:
              - 443
              - 8443
          QUIC:
            ports:
              - 443
              - 8443
      geodata-mode: true
      geo-auto-update: true
      geo-update-interval: 24
      geodata-loader: standard
      geox-url:
        geoip: https://fastgh.lainbo.com/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip-lite.dat
        geosite: https://fastgh.lainbo.com/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat
        mmdb: https://fastgh.lainbo.com/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country-lite.mmdb
      
      

このコードの役割は

  • 阿里と DNSPod(Tencent の DNS)のDoTを使用してノード、DNS サーバーを解決することです。
  • 阿里、Tencent、火山の DNS サーバーを使用して他のウェブサイトを解決します(DNS 漏洩は通常 ISP からの漏洩であり、大手企業からの漏洩は聞いたことがありません)。
  • 非営利団体の DoT を使用して Notion ウェブサイトを解決します。
  • tun モードスタックを自適応モードで使用します。
  • 遅延計算方法を変更し、ハンドシェイクなどの追加遅延を除去します。
  • TCP 並列サポートを開きます。
  • ドメインスニファリングを開き、ドメインを正確に復元し、ドメイン分流を行います。
  • geodata のダウンロードソースを国内加速ダウンロードソースに設定します。

ここで誰かが言うかもしれませんが、阿里や Tencent の DNS 解決サイトを使用しても漏洩するのではないか!私が言いたいのは、私たちが解決したい問題は、運営者(電信、聯通、移動)のデータ漏洩であり、DNS クエリを痕跡なく行うことではありません。もしあなたの DNS クエリ行動を痕跡なくしたいのであれば、自分で DNS を構築してください。

GEOIP、CN 問題を解決する#

現在、市場に出回っているほとんどのプロキシツールは、GeoIP2 データベースに依存して、アドレスの所属地を判断しています。これらのプロキシツールのルールの最後の部分には、一般的にGEOIP, CNのようなルールがあり、目的の IP アドレスが中国本土に属するかどうかを照会し、直接接続するかどうかを判断します。

これらのプロキシツールが通常使用する GeoIP2 データベースは、MaxMind のGeoLite2の無料データベースから来ています。このデータベースには現在、以下のいくつかの問題があります。

  • 取得が不便:2019 年 12 月 30 日以降、登録後でないとダウンロードできません。
  • データ量が大きい:データベースは巨大で、世界中の IP アドレス範囲を含み、約 10MB です。
  • 精度が低い:中国本土の IP アドレスの判定が不正確で、例えば香港の阿里クラウドの IP がシンガポールや中国本土と判定されることがあります。

膨大なデータ量は、ほとんどの中国本土のユーザーにとって意味がなく、単に IP の地理的位置が中国本土に属するかどうかを判断するだけで、他の国の IP はすべてプロキシ / 直接接続します。過剰なデータ量は読み込み時間を増加させ、照会効率を低下させます。

私たちは以前に作成したスクリプトに、中国本土に適した IP データベースのリンクをダウンロードするコードを含めています。今は手動でダウンロードして置き換えるだけで済みます。

  1. Clash Verge Rev の設定メニューをクリックし、「GeoData を更新」を見つけてクリックすれば更新できます。
  2. ダウンロードが完了したら、トレイの Clash Verge アイコンを右クリックし、「その他」-「アプリを再起動」を選択して、データベースが正しく適用されることを確認します。

xxx.com をプロキシを通さないようにしたい、どうすればいいですか?#

  • もしあなたの Clash Verge Rev のバージョンが < 1.7 の場合
    1. 左側の「購読」メニューをクリックし、右上の「新規作成」ボタンをクリックします。

    2. タイプを「Merge」に選択し、名前を自分で付けて保存します。

    3. 新しく作成した Merge を右クリックし、「ファイルを編集」をクリックし、prepend-rules:の後に追加します(Clash のルールは上から下に読み取られ、読み取ったらそれ以上は探さないため、prepend を使用して前にルールを挿入します)。

    4. フォーマットは以下のように、自分で柔軟に組み合わせて追加したいルールを記入します。記入時には yaml ファイルのインデントに注意してください。

      (以下のルールをそのままコピーしないでください。これは書き方のデモであり、示されている内容は非常に不合理な戦略です!)

      prepend-rules:
      # ↓は`*.baidu.com`が`🔗 無需代理`という戦略グループを通ることを示し、この戦略グループのデフォルトの動作は直接接続であり、ノードを通らないことを示します。
      - DOMAIN-SUFFIX,baidu.com,🔗 無需代理
      
      # ↓は`abc.baidu.com`が`DIRECT`という組み込み戦略を通ることを示します。
      # DIRECTも直接接続ですが、このルールは`🔗 無需代理`戦略グループの制御を受けません。
      # 🔗 無需代理戦略グループは名前が「无需代理」と呼ばれていますが、手動でその戦略を調整できますが、DIRECTは調整できません。
      - DOMAIN,abc.baidu.com,DIRECT
      
      # ↓は`Weiyun.exe`というソースプロセス名が`🛡️ 广告拦截`を通ることを示し、この戦略グループのデフォルトの動作はリジェクトリクエストです。
      - PROCESS-NAME,Weiyun.exe,🛡️ 广告拦截
      
      # ↓はリクエストURLに`aria2`というキーワードが含まれている限り、`REJECT`という組み込み戦略を通ることを示します。
      # REJECTもリクエストを破棄しますが、このルールは`🛡️ 广告拦截`戦略グループの制御を受けません。
      # 説明は不要です。上記の无需代理と同じロジックです。
      - DOMAIN-KEYWORD,aria2,REJECT
      
      # ↓はすべての22ポートが`✈️ 节点选择`という戦略グループを通ることを示し、選択したノードのトラフィックを通ることを示します。
      - DST-PORT,22,✈️ 节点选择
      
      # ↓は指定されたIP範囲がプロキシを必要としないことを示し、最後に`,no-resolve`を追加することを忘れないでください。
      # no-resolveはClashにこのルールにマッチするために解決を試みないように指示し、「直接IPアクセス」のリクエストのみを処理します。
      - IP-CIDR,203.205.254.0/23,🔗 无需代理,no-resolve
      - IP-CIDR6,2a0b:b580::/48,🔗 无需代理,no-resolve
      

      上記は一般的なものだけを書いており、他にも多くのルールタイプがClash 文書の対応セクション虚空终端 Docsを参照してください。

    5. 書き終えたら、新しく作成した Merge を右クリックし、「有効にする」をクリックし、右上の「購読を再アクティブ化」ボタンをクリックして設定を更新します。

      image

  • もしあなたの Clash Verge Rev のバージョンが≥1.7 の場合
    1. 右クリックして「全体拡張スクリプト」を選択し、「ファイルを編集」をクリックします。

      image

    2. フォーマットは以下のように、自分で柔軟に組み合わせて追加したいルールを記入します。組み合わせ方は上記のバージョン < 1.7 と同じで、参照できますが、フォーマットは JavaScript コードで記述する必要があります。追加のルールが必要な場合は、コード内のprependRulesを拡張してください。

      function main(content) {
        const prependRules = [
          'IP-ASN,132203,🔗 无需代理,no-resolve',
          'DOMAIN-SUFFIX,baidu.com,🔗 无需代理', // 表示`*.baidu.com`が`🔗 无需代理`という戦略グループを通ることを示し、この戦略グループのデフォルトの動作は直接接続であり、ノードを通らないことを示します。
          'PROCESS-NAME,Weiyun.exe,🛡️ 广告拦截', // 表示`Weiyun.exe`というソースプロセス名が`🛡️ 广告拦截`を通ることを示し、この戦略グループのデフォルトの動作はリジェクトリクエストです。
          'DST-PORT,22,✈️ 节点选择', // 表示すべての22ポートが`✈️ 节点选择`という戦略グループを通ることを示し、選択したノードのトラフィックを通ることを示します。
        ]
        if (content.rules?.length) {
          content.rules = prependRules.concat(content.rules) 
        }
      
        return content
      }
      
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。