Telegram Desktop が「接続中」で止まるとき:Clash TUN・プロセス分流・telegram ドメインの段階修正
Telegram Desktop を Clash と併用すると、タイトルバーやステータスが長く接続中のまま進まない、同期が遅い、あるいはテキストだけ一通り通るがスタンプ・画像・音声・通話が不安定、といった症状が出ることがあります。多くの場合、原因は単一ではなく、システムプロキシを読まないデスクトップアプリ、MtProto やデータセンターへのUDP、購読ルールの粗い MATCH、DNS(fake-ip) のいずれかが重なっています。本記事では Clash Meta(Mihomo) を想定し、TUN モードと PROCESS-NAME/PROCESS-PATH、telegram.org 系ドメインのルール順、ログの見方までを一つのトラブルシュート線にまとめます。
よくある症状と「テキストだけ通る」意味
Telegram は軽量な制御トラフィックと、容量の大きいメディア取得、通話用の UDP を同時に扱います。Clash 側でTCP の HTTPS 出口だけが意図どおりプロキシに乗り、別ポートのセッションや別プロセスが直結・別ノード・ドロップしていると、「文字チャットはなんとなく動くが全体としては接続中」「既読が遅い」「通話だけ入らない」といった非対称な挙動になりやすいです。モバイル公式アプリと違い、デスクトップ版は OS のプロキシ設定に従わない経路を取ることがあるため、ブラウザでは問題なくても Telegram だけおかしい、という切り分けが典型です。
- 起動直後からConnecting… が終わらない。
- しばらく待つとチャットは開くが、添付・プレビュー・通話がタイムアウトしがち。
- ノードを変えると一瞬だけ改善し、数分後にまた遅延する(url-test のフラップや DNS の食い違い)。
最初の一歩
まず Clash を一時停止し、同じ回線で Telegram が素直に繋がるか確認する。ここで戻るなら、残りはルール・DNS・TUN の有無のいずれかに集中できます。
MtProto・DC と UDP が絡む理由
Telegram のクライアントは複数のデータセンター(DC)とMtProto 系のセッションを張ります。メディアや通話まわりでは UDP が前面に出る場面があり、ノードやルールが「TCP だけrelay」「UDP は別扱い/ブロック」になっていると、見た目はオンラインでも体験が欠ける状態が続きます。購読のデフォルトが細かいアプリ別ルールを持たない場合、広い GEOIP や最終 MATCH に丸投げすると、DC 選択と実際の出口都市が噛み合わずレイテンシと再送だけが増えることもあります。
ここは「Telegram 用に安定したポリシーグループを一つ決め、同一グループに揃えるべきトラフィックを揃える」が実務的です。音声遅延や UDP 全般の別角度の整理は、「Discord ボイスと UDP の遅延」の記事とも棲み分けできます。
TUN を有効にし、プロセスで Telegram を捕まえる
Windows では Telegram.exe、Microsoft Store 版や独自ビルドでは名前やパスが異なります。Clash Meta 系では PROCESS-NAME でファイル名一致、同名バイナリが複数ある環境では PROCESS-PATH でインストール先まで絞るのが安全です。システムプロキシだけに頼る構成だとデスクトップアプリがバイパスしやすいので、TUN でカーネル近傍から捕捉し、その上でプロセス行を粗い GEOIP より上に置きます。
Windows の土台は 「Clash for Windows のセットアップ」、macOS は 「Clash Verge Rev の初回設定」で TUN と権限を先に通しておくと、以降のドメイン調整が早いです。UWP まわりでストアアプリだけおかしい場合は 「UWP とループバック」も参照してください(Store 版 Telegram のとき)。
ログで確認する列
- プロセス名/パスが想定どおりか(アップデート後に変わっていないか)。
- 宛先 IP・ポートが 443 以外に伸びていないか(UDP や DC まわり)。
- 最終的に当たったポリシー名が意図したグループか。
telegram.org ほか:ドメインを段階的に足す
クライアントは時間とともにCDN やエッジを増やします。巨大な固定リストを丸ごと貼るより、まず公式クライアントが必ず触る表層を安定出口に寄せ、ログで新しいホストが出たら狭いルールを足すほうが保守しやすいです。典型として telegram.org、telegram.me/t.me、web.telegram.org、core.telegram.org、desktop.telegram.org などが挙がりますが、実際のホスト名はクライアント版と地域で変わります。DOMAIN-SUFFIX は便利ですが広すぎると他アプリまで巻き込むので、購読ルールと衝突しない位置に置くことが重要です。
ブラウザで Web 版を使う場合は別プロセスになるため、デスクトップ版と同じルール束にするか、少なくとも同一ポリシーグループへ寄せると挙動のばらつきが減ります。ドメインだけ整えてもプロセスが別出口に逃げているなら、先に PROCESS-NAME を直します。
ルール順と YAML の例(イメージ)
以下は例示です。実際のポリシーグループ名・プロセス名は環境に合わせて置き換えてください。プロセス行とドメイン行は、広い GEOIP や最終 MATCH より上に置きます。
# Illustrative — replace PROXY with your policy group; verify process names
rules:
- PROCESS-NAME,Telegram.exe,PROXY
- PROCESS-PATH,C:\Users\you\AppData\Roaming\Telegram Desktop\Telegram.exe,PROXY
- DOMAIN-SUFFIX,telegram.org,PROXY
- DOMAIN-SUFFIX,t.me,PROXY
- DOMAIN-SUFFIX,telegra.ph,PROXY
- MATCH,DIRECT
リモートの rule-providers をマージしている場合、ローカル追記がマージ結果の上位に残っているかを必ず確認してください。下流に押し出されると、せっかくの PROCESS-NAME が効かず「接続中」のまま、という状態に戻ります。ルールプロバイダのパスと更新間隔で悩む場合は 「rule-providers の取得失敗」も参照してください。
| ルール種別 | 向く場面 | 注意 |
|---|---|---|
PROCESS-NAME |
デスクトップ exe を一括で出口に寄せる | 表記は OS のタスクマネージャと一致させる |
PROCESS-PATH |
Portable 版など同名が複数あるとき | フォルダ移動のたびに更新が必要 |
DOMAIN-SUFFIX |
ログに出たホストのまとめ役 | 広すぎると他アプリまで巻き込む |
DNS(fake-ip)と DPI っぽい詰まり
TUN を有効にすると DNS の解決経路も見えやすくなります。fake-ip とアプリ側の期待がずれると、「ブラウザは快適、Telegram だけ妙に遅い」が再発します。症状が DNS 寄りかどうかは、「接続中なのに繋がらない?DNS と fake-ip」で切り分けてから、Telegram 用のドメイン行を足すと安全です。
運用上の注意
本稿は自分が管理する端末と合法な利用を前提とします。回避行為や利用規約に反する使い方は行わないでください。キャリアや職場ポリシーでブロックされている場合、技術的に通ってもポリシー違反になり得ます。
回線上の DPI や検査機器が特定パターンに敏感な環境では、ノード側のプロトコル(TLS 偽装・転送方式)より先に、クライアントが選ぶ DC やポートのほうがボトルネックになることがあります。その場合は「別ノードを試す」だけでなく、同一ノードに TCP と UDP を揃えられるか、ログでドロップが出ていないかを見ます。
よくある質問
テキストだけ通るのはなぜ?
制御系の小さな TCP が通り、メディア用のセッションや UDP が別ルール・別ノードに落ちている可能性があります。プロセス行とドメイン行の優先順位を見直し、同一ポリシーグループに寄せてください。
ずっと接続中のまま終わらない
まず TUN が有効か、Telegram のプロセスがログに出ているかを確認します。次に DNS と最終 MATCH が意図しない DIRECT/別グループになっていないかを見ます。
Store 版と通常版で違う
プロセス名とパスが異なります。PROCESS-PATH で実体を固定し、Windows のループバック制限が疑わしいときは UWP 記事の手順を併用してください。
チェックリスト
- Clash オフ時に Telegram 単体が正常か確認する。
- TUN を有効化し、Meta 系でプロセスルールが使える状態にする。
- ログで
Telegram.exe(または実名)の宛先とポリシーを確認する。 PROCESS-NAME/PROCESS-PATHと telegram 系DOMAIN-SUFFIXを GEOIP より上に置く。- DNS・fake-ip・
MATCHを再確認し、テキスト/メディア/通話を別々に試す。
まとめ
Telegram Desktop と Clash の相性問題は、単に「プロキシをオンにする」より捕獲点(TUN)と識別子(プロセス・ドメイン)と DNSの三点セットで見ると解決が早いです。ルールは増やしすぎず、ログに基づいて狭い行を足す運用に寄せると長く使えます。