ガイド

アプリと Clash 系クライアントを接続する

ローカル SOCKS5 で既存のアプリやルールベースのクライアントを接続し、TCP と UDP のトランスポートを個別に選びます。

対象バージョン 1.0.0-alpha翻訳済み

概要

Umbra クライアントはローカルに SOCKS5 入口を提供します。アプリや既存のプロキシクライアントが要求を渡すと、Umbra がリモートの Umbra サーバーへ接続します。ルールによる振り分け、画面操作、システムプロキシは、引き続き使い慣れたクライアントに任せられます。Umbra 自体は TUN インターフェイスではなく、バイナリをインストールしても他のアプリが自動的にプロキシを使うわけではありません。

1. Umbra を設定して起動する

まずサーバーガイドに従ってサーバーを準備します。対応する認証情報を client.toml に設定してください。以下のプレースホルダーは実際の認証情報ではないため、必ず置き換えます。

server = "198.51.100.10:443"
transport = "tcp"
public_key = "<X25519_PUBLIC_BASE64>"
short_id = "<SHORT_ID_HEX>"
server_name = "cover.example"
fingerprint = "chrome-latest"
mldsa_verify = "<MLDSA_VERIFY_BASE64>"
socks_listen = "127.0.0.1:1080"

server は自分の Umbra サーバーのアドレスです。server_name はサーバー側と一致する実在サイトの SNI であり、任意に入力する偽装用ドメインではありません。確認したら実行します。

umbra client -c client.toml

ループバックへのバインドを維持してください。ローカル SOCKS5 にはパスワード認証がないため、インターネットや信頼できない LAN に直接公開してはいけません。

2. SOCKS5 対応アプリを直接接続する

アプリのプロキシ設定で SOCKS5 を選び、アドレスを 127.0.0.1、ポートを 1080 にします。ユーザー名とパスワードは入力しません。アプリは Umbra と同じデバイス、またはそのループバック入口にアクセスできる同じネットワーク名前空間で動作する必要があります。

HTTPS 要求を確認するには、以下のアドレスをテストしたいサイトに置き換えて実行できます。

curl --proxy socks5h://127.0.0.1:1080 https://example.com/

socks5h を使うと、curl は宛先ドメインをローカルで先に名前解決せず、プロキシに渡します。他のアプリの DNS 動作は、それぞれの設定によります。SOCKS5 を設定しただけで、デバイス上のすべての DNS クエリがプロキシを通るわけではありません。

3. Clash 系クライアントで既存のルールを使う

以下のノードを既存クライアント設定の proxies リストに追加し、使用するプロキシグループで選択します。設定全体をそのまま上書きしないでください。

proxies:
  - name: Umbra Local
    type: socks5
    server: 127.0.0.1
    port: 1080
    udp: true

ルールは引き続き既存クライアントが適用し、リモートへの接続はローカルの Umbra が行います。リモートの Umbra サーバーのアドレスがルールによって再び Umbra Local に送られないようにしてください。プロキシのループが発生するおそれがあります。具体的なルール、DNS、TUN の設定は、使用するクライアントに従ってください。

ここで使うのは標準の SOCKS5 ノードであり、Umbra プロトコルへのネイティブ対応ではありません。VLESS / VMess / Trojan のノードやサブスクリプションは、名前を変えるだけでは Umbra ノードになりません。接続の両端に、互換性のある Umbra プログラムと対応する認証情報が必要です。

4. 任意の設定:TCP は Vision、UDP は QUIC を使う

既存の client.toml に以下を組み込みます。

transport = "tcp"
udp_transport = "quic"
mux = false

サーバーでは listenudp_listen を同時に有効にし、ファイアウォールで対応する TCP と UDP のポートを許可します。udp: true は Clash 系クライアントからの UDP 要求を許可するだけで、TCP 要求のトランスポートは変更しません。UDP リレーのエンドポイントは SOCKS のネゴシエーションで決まるため、UDP 1080 番ポートで固定の待ち受けを行う必要はありません。

UDP が到達しない場合は、まず TCP で通常のアプリ要求を確認してください。QUIC から TCP への自動フェイルオーバーはありません。具体的な選び方はトランスポートのモードを参照してください。

確認とトラブルシューティング

  1. まず SOCKS5 を直接使って一つのアプリをテストし、その後にルールベースのクライアントを接続します。ルールの問題を通信の失敗と取り違えないためです。
  2. 両端の公開鍵、検証鍵、short ID、SNI、サーバーアドレスを照合し、システム時刻とファイアウォールを確認します。
  3. TCP と UDP を別々に検証します。Web ページが開けても、UDP が利用できるとは限りません。
  4. トランスポートや性能の設定は、一度に一つだけ変更します。適応型 mux を更新するときは両端を同時に更新してください。

次のステップ

このページの内容