研究者向けClash設定術:Scholar・Zotero・Overleafを快適に使う
論文検索から文献管理、Overleafでの執筆まで、研究者の作業は複数の海外サービスにまたがります。Clashで必要なサイトだけを分けて接続し、調査と執筆を止めない環境を作る方法をまとめました。
研究者の通信を分解する:検索・管理・執筆を別々に考える
研究者の作業環境では、論文検索、出版社のページからのPDF取得、文献管理、クラウド上の原稿編集が同時に発生します。Google Scholarなどの検索サービス、出版社や大学リポジトリ、Zoteroの同期機能、Overleafの編集画面は、すべて同じ通信経路を使うとは限りません。そのため、Clashを常時Globalモードにして全部を同じノードへ送るより、必要なドメインだけをルールで分けるほうが、国内サービスや研究室内のサーバーへの接続を保ちやすくなります。
ここでいう「研究者向け設定」は、特定のサービスを無条件にプロキシへ送る設定ではありません。まず普段使うサービスを列挙し、どの通信をプロキシにするか、どれをDIRECTにするかを決めます。所属機関の電子ジャーナルは、大学の認証基盤やVPNを経由しないと読めない場合があります。Clashだけでアクセス制御を回避できるわけではないため、契約・認証・利用規程を確認したうえで設定してください。
- 論文検索:検索サイト、出版社、プレプリントサーバー、DOIリンクなどを利用する。
- 文献管理:ZoteroのWeb Library、同期サーバー、ブラウザコネクター、添付PDFの保存先を利用する。
- 執筆:Overleafの編集画面、コンパイルサーバー、Git連携や共有プロジェクトを利用する。
- ローカル作業:localhost、学内ネットワーク、NAS、プリンターなどは通常プロキシを通さない。
最初からGlobalにしない
Globalモードは原因を切り分ける一時テストには便利ですが、学内サイト、ローカルホスト、国内の認証ページまで同じ経路に送ることがあります。通常運用はRuleモードにし、例外だけを追加する方法が管理しやすいです。
Clash側の基本構成:RuleモードとDNSを整える
Clash Verge Rev、Clash Nyanpasu、ClashX Meta、FlClashなどmihomo対応クライアントでは、まず有効なプロファイルを読み込み、Proxies画面で使用するプロキシグループを選びます。その後、モードをRuleに変更します。設定画面の名称はクライアントによって異なりますが、Rule、Global、Directの3種類を切り替える考え方は共通です。
研究関連のサイトでは、ドメイン名によるルール判定が重要です。検索結果から出版社へ移動すると、検索サイトのドメイン、出版社の本体ドメイン、画像配信やPDF配信のサブドメインが別々に使われることがあります。1つの画面だけ開けない場合は、Connections画面で実際の宛先ドメインを確認し、見つかったドメインを追加するのが確実です。推測で大きなIP範囲をプロキシへ送ると、関係のない通信まで巻き込むことがあります。
DNSについては、ドメインをどのIPへ解決したかと、実際の接続経路が一致することが大切です。mihomoのTUNを使う場合は、DNS hijackとfake-ipまたは適切なredir-hostの組み合わせをクライアントの推奨値から設定します。既存のVPN、セキュリティソフト、ブラウザのSecure DNSが同時に動いていると判定が分かれるため、問題調査中は構成を一つずつ確認してください。
mode: rule
log-level: info
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-filter:
- "*.local"
- "*.lan"
- "localhost"
- "localhost.ptlogin2.qq.com"
rules:
- DOMAIN-SUFFIX,local,DIRECT
- DOMAIN-SUFFIX,lan,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,PROXY
上の例は概念を示す最小構成です。実際のサブスクリプションには既存のrules、rule-providers、DNS設定があるため、同じ項目を二重に貼り付けないでください。設定ファイルを編集する場合は、プロファイルのMergeやScriptなどクライアントが提供する仕組みを優先し、更新によって元の購読設定が上書きされないようにします。
Scholarと学術データベースを安定させるルール
Google Scholarのような検索サービスは、検索画面、CAPTCHA、検索結果から遷移する出版社ページ、引用情報の取得先が分かれることがあります。検索画面が表示されても、結果ページのリンクやPDFだけが失敗する場合は、Connectionsでどの通信がエラーになっているかを見ます。「検索サイトを開けない」と一括して考えず、DNS解決、TLS接続、リダイレクト先、PDF配信先を個別に確認してください。
出版社、学会、プレプリントサーバーのドメインはサービスごとに異なります。たとえば論文の本文が出版社のメインドメインではなく、別のstatic、download、content配下から配信されることがあります。次のように、確認できたドメインを小さく追加するのが安全です。ドメイン名は利用するサービスに合わせて置き換えてください。
rules:
- DOMAIN-SUFFIX,scholar.google.com,PROXY
- DOMAIN-SUFFIX,doi.org,PROXY
- DOMAIN-SUFFIX,example-publisher.org,PROXY
- DOMAIN-SUFFIX,example-repository.edu,PROXY
- DOMAIN-SUFFIX,university.example,DIRECT
- MATCH,DIRECT
実際のルールでは、購読プロファイルに同じルールが存在する可能性があります。重複した場合は上から先に一致したルールが使われるため、後ろに追加したルールが実行されないことがあります。ルールの順序を確認し、学術データベース向けのルールを一般的なMATCHより前に置きます。また、IP-CIDRだけで出版社を指定する方法は、CDNや共有ホスティングの影響で不安定になりやすいため、まずドメインルールを使ってください。
大学認証ページはDIRECTとは限らない
学内プロキシ、学認、VPN、出版社側の機関認証はそれぞれ別の仕組みです。認証ページだけを無条件にPROXYへ送ると、所属機関のアクセス元として認識されなくなる場合があります。大学の案内に従い、学内ネットワークや公式VPNが必要なサービスはその経路を優先してください。
Zoteroの同期を確認する:アプリ通信とブラウザ通信
Zoteroでは、デスクトップアプリのライブラリ同期、添付ファイルの同期、Web Library、ブラウザコネクターによるメタデータ取得が関係します。ブラウザで論文ページが開けても、Zoteroの同期が進むとは限りません。反対に、Zoteroの同期は成功していても、出版社ページのメタデータ取得だけが失敗することがあります。まずZoteroの同期アイコン、エラー表示、同期対象の設定を確認し、次にClashのConnectionsとLogsを同じ時刻に見比べます。
システムプロキシを使う場合、ZoteroがOSのプロキシ設定を参照するか、アプリ内に独自のネットワーク設定があるかを確認します。アプリ内でHTTPプロキシを指定できる場合は、ClashのHTTPまたはmixedポートを設定します。ポート番号はクライアントごとに違うため、設定画面で実際の値を確認してください。SOCKSポートしか指定できない項目にHTTPポートを入力すると、接続に失敗することがあります。
Zoteroの添付ファイル同期では、文献情報とPDFファイルが別の処理になることがあります。文献情報だけ同期され、添付ファイルが止まる場合は、容量制限、アカウント状態、同期先の設定、ファイル転送用ドメインを確認します。大量のPDFを一度に同期すると、短時間に多くの接続が発生するため、まず少数の項目で試し、成功してから全ライブラリを同期してください。
- Zoteroのアカウントと同期設定を確認し、少数の文献で手動同期を実行する。
- ClashのConnectionsで、Zoteroまたは関連する通信の宛先、使用ルール、プロキシグループを確認する。
- 認証エラーならアカウントや保存済みトークンを確認し、timeoutなら経路とノードを確認する。
- 必要なドメインだけをルールへ追加し、設定を保存してからZoteroを再起動する。
ブラウザコネクターで論文情報を取得できない場合は、まず論文ページを通常のブラウザで開けるかを試します。ブラウザでは開けるのにコネクターだけ失敗するなら、拡張機能の権限、ブラウザプロファイル、Cookie、あるいはZoteroアプリとの連携設定が原因かもしれません。ClashをGlobalに変更する前に、拡張機能を一時的に無効化して比較すると切り分けが速くなります。
Overleafを使うときのプロキシとTUNの選び方
Overleafのようなクラウド執筆環境では、ログイン、プロジェクト一覧、エディターのリアルタイム通信、コンパイル、PDFプレビュー、画像やフォントなどの配信が発生します。ページ本体だけを許可しても、WebSocketや静的ファイルの宛先が別ルールに一致し、画面の一部だけが読み込めないことがあります。画面が白い、コンパイル結果が更新されない、プロジェクトの保存が遅いといった場合は、Connectionsで失敗しているリクエストを探します。
通常はシステムプロキシとRuleモードから始め、ブラウザでOverleafを開いて動作を確認します。ブラウザがシステムプロキシを使わない設定になっている場合や、他のプロキシ拡張機能が優先されている場合は、Clashのルールを変えても結果は変わりません。Firefoxなどで個別のプロキシ設定を変更している場合は、OSの設定を使う状態に戻して比較してください。
Git連携、ターミナルからのLaTeXコンパイル、Dockerや別のエディターからのアップロードなどを同じ端末で行う場合、これらの通信はシステムプロキシを読まないことがあります。その場合は、コマンド単位の環境変数を使うか、mihomoのTUNモードを検討します。TUNはアプリ層のプロキシ設定を読まない通信もIPパケットとして引き込めますが、管理者権限が必要で、他のVPNや仮想ネットワークと競合する可能性があります。
# macOS / Linux
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export no_proxy=localhost,127.0.0.1
# 1回だけ指定する場合
https_proxy=http://127.0.0.1:7890 curl -I https://example.com
Windows PowerShellでは、次のように現在のセッションへ設定できます。
$env:http_proxy="http://127.0.0.1:7890"
$env:https_proxy="http://127.0.0.1:7890"
$env:no_proxy="localhost,127.0.0.1"
Overleafのブラウザ操作だけならTUNは必須ではありません。まずシステムプロキシで構成を単純に保ち、端末のGitや補助ツールまで同じ経路にしたい場合にTUNを追加します。TUNを有効にした後は、システムプロキシ、別VPN、企業のセキュリティエージェントが同時にルートを変更していないか確認してください。
動作確認とトラブルシューティングの手順
設定を変更したら、三つのサービスを一度に確認せず、検索、Zotero、Overleafの順に一つずつテストします。各テストでは、画面が表示されたかだけでなく、どのルールに一致したか、どのプロキシグループへ送られたかを記録します。ルールの誤りは、ClashのConnections画面を見るだけでかなり絞り込めます。
- 検索サイトだけ失敗:DNS、CAPTCHA、検索ドメインのルール、現在のノードを確認する。
- 論文ページは開くがPDFだけ失敗:PDF配信元やCDNのドメインをConnectionsで探す。
- Zoteroの同期だけ失敗:アプリ内プロキシ、認証状態、添付ファイル同期の容量を確認する。
- Overleafの画面は開くが保存やコンパイルが止まる:WebSocket、API、コンパイル結果の通信が別ルールになっていないか確認する。
- TUNを有効にしてから学内サイトが開かない:学内ドメインやプライベートIPをDIRECTにし、他のVPNとの競合を停止して比較する。
エラーの種類も重要です。timeoutは通信が宛先へ到達していない、401や403は認証や権限が拒否された、解析エラーは取得した内容が想定形式でない可能性を示します。Clashの設定を何度も編集する前に、ブラウザで同じURLを開く、別ノードを選ぶ、ノードを使わず公式の学内VPNで試す、といった比較を行うと原因を分離できます。
最終的な構成を記録する
動作した後は、使用クライアント、mihomoのバージョン、Ruleモード、TUNの有無、追加したドメイン、例外にした学内ネットワークをメモしておきます。サブスクリプション更新後にルールが消えた場合も、同じ構成へ戻しやすくなります。研究データや認証情報を含む設定ファイルを公開リポジトリへ置かないことも忘れないでください。
研究用のClash環境を整える
研究サービスごとに通信経路を分けるなら、Ruleモード、mihomo対応クライアント、Connections画面による確認を組み合わせると管理しやすくなります。対応クライアントと基本設定を確認して、手元のOSに合う環境を用意してください。