GitHubがタイムアウト?v2rayNで直す設定と確認手順
まず症状を切り分ける
GitHub にアクセスしたとき、「ページが開かない」「読み込みが途中で止まる」「接続がタイムアウトした」と表示されても、原因がすべて v2rayN とは限りません。GitHub のトップページ、リポジトリ、Raw ファイル、Release のダウンロード、Git コマンドは、それぞれ異なるホスト名や通信方法を使うため、同じ GitHub 関連の操作でも結果が分かれることがあります。
最初に確認したいのは、ブラウザだけが失敗するのか、git も失敗するのかです。ブラウザで github.com は開けるのに、git clone や git pull だけがタイムアウトするなら、v2rayN のノード全体よりも、Git がプロキシ設定を使っていない可能性を先に疑います。反対に、ブラウザでも GitHub の複数ページが開けず、ほかの海外サイトも同時に遅いなら、ノード、ルール、DNS、またはネットワーク経路を順番に調べます。
また、GitHub のログインページだけ開けない場合と、画像や Release ファイルだけ取得できない場合も分けて考えましょう。メインドメインに接続できても、別の配信ホストやリダイレクト先がルールから漏れているケースがあります。エラーメッセージを見て、失敗した操作、時刻、対象 URL、ブラウザか git かを記録すると、設定を変更した後の比較が簡単になります。
v2rayN の基本設定を確認する
まず v2rayN が起動しており、利用可能なノードが選択されていることを確認します。接続状態が表示されていても、実際に通信へ使われるノードが未選択、期限切れ、または応答不能ということがあります。サブスクリプションを更新した直後なら、古いノードを選んだままになっていないかも見てください。
次に、デスクトップのシステムプロキシを有効にします。ブラウザで v2rayN のプロキシを使う場合、OS のプロキシ設定が無効だと、クライアントが起動していてもブラウザの通信は直接接続になります。ブラウザに独自のプロキシ拡張を入れている場合は、いったん無効にして、システムプロキシだけでテストすると経路を一本化できます。
プロキシモードは最初から複雑にしないことが大切です。ルールモードで特定の海外ドメインだけプロキシに送る構成を使っているなら、いったん設定内容を確認し、必要に応じてグローバル相当の動作で短時間テストします。グローバルで GitHub が開けるなら、ノードよりもルール分岐の問題である可能性が高くなります。逆にグローバルでも開けない場合は、ノード、コア、ネットワーク、DNS の確認へ進みます。
すでに別の VPN、プロキシソフト、ブラウザ拡張が動いている場合は、同時利用を避けてください。複数のソフトが同じポートやシステムプロキシ設定を変更すると、見た目では v2rayN が正常でも通信が別の経路へ送られることがあります。問題を直す前に、使うプロキシクライアントを一つに絞るのが安全です。
GitHub のルール分岐を調べる
ルールモードでは、宛先のドメイン、IP、地理情報、ルールセットなどを使って、プロキシ経由か直接接続かを決めます。GitHub を直接接続へ送るルールが先に評価されていると、システムプロキシをオンにしても GitHub だけがタイムアウトすることがあります。特に「国内サイトは直接、その他はプロキシ」という設計を手動で調整した後に、GitHub 関連の例外が残っている場合は注意が必要です。
ブラウザの開発者ツールや v2rayN の接続ログを使えるなら、実際の宛先と命中したルールを確認します。表示されるドメインが github.com とは限らず、API、Raw コンテンツ、Release、アセット配信など別のホスト名が記録されることがあります。画面上の URL だけを見て「GitHub のルールは存在する」と判断せず、失敗した通信の宛先を基準にしてください。
ルールを修正するときは、いきなり大量のドメインを追加しない方がよいでしょう。まず現在のルールに GitHub 用の分岐があるかを確認し、より優先度の高い直接接続ルールがあれば、その位置関係を見直します。テストでは変更を一度に一つだけ行い、毎回同じページや同じ git 操作を実行します。複数のルールを同時に変更すると、改善してもどの設定が効いたのか分からなくなります。
一時的にグローバル動作で成功した後は、通常のルールモードへ戻し、必要な宛先だけを段階的に調整します。常時グローバルにして問題を隠すより、普段の用途に合う分岐を作った方が、速度、プライバシー、トラブル時の再現性を保ちやすくなります。
DNS と TLS の状態を確認する
GitHub のタイムアウトでは、プロキシ設定だけでなく DNS 解決も確認する必要があります。ドメイン名を誤った IP アドレスへ解決している、ローカルネットワークの DNS 応答が遅い、IPv6 の経路だけ失敗している、といった状態では、ブラウザに分かりやすいエラーが出ないまま待ち続けることがあります。
v2rayN で DNS の扱いを変更している場合は、設定を複雑にしすぎていないか見直します。DNS リクエストは直接接続、通信本体はプロキシ経由という組み合わせが環境によっては不安定になることもあります。まずは現在の DNS 設定を記録し、信頼できる構成へ戻してから、v2rayN の再起動とブラウザの DNS キャッシュ削除を行います。ブラウザを閉じただけでは接続プールやキャッシュが残ることがあるため、再起動後に同じ URL を試してください。
TLS エラーや証明書エラーが出る場合は、PC の日付、時刻、タイムゾーンを確認します。システム時刻が大きくずれていると、GitHub の証明書を正しく検証できません。セキュリティソフトの HTTPS 検査機能や企業ネットワークの証明書差し替えも、特定サイトだけの接続失敗を引き起こすことがあります。心当たりがある場合は、セキュリティソフトのログを確認し、無闇に証明書検証を無効にしないでください。
IPv4 と IPv6 のどちらか一方だけが不安定な環境では、別のネットワーク、たとえばスマートフォンのテザリングでも比較します。ネットワークを変えると同じ v2rayN 設定で直るなら、設定を何度も書き換える前に、元の回線や DNS の経路を疑うべきです。
ブラウザと git を分けて確認する
ブラウザが GitHub に接続できても、git コマンドがタイムアウトすることは珍しくありません。ブラウザはシステムプロキシを自動的に利用していても、git は環境変数や独自の設定を使う場合があります。つまり、v2rayN のシステムプロキシをオンにしただけで、すべての Git 通信が同じ経路になるとは限りません。
まずリポジトリの URL が HTTPS か SSH かを確認します。HTTPS の https://github.com/... は、一般にブラウザに近いプロキシ設定を適用しやすい方式です。一方、SSH の [email protected]:... は通常の HTTPS プロキシとは別の通信経路を使うため、ブラウザが正常でも SSH だけ失敗することがあります。切り分けでは、同じリポジトリについて HTTPS と SSH を混同しないようにしてください。
git に過去のプロキシ設定が残っている場合もあります。以前使っていたポート、停止したプロキシソフト、古い認証情報を参照していると、v2rayN が現在使用しているローカルポートと一致しません。git の設定と環境変数に古いプロキシ指定がないか確認し、不要な設定を整理してから再試行します。設定変更後は、ターミナルを新しく開くと環境変数の反映を確認しやすくなります。
会社や学校のネットワークでは、git の通信だけが制限されている場合もあります。ブラウザの GitHub ページ、Raw ファイル、HTTPS のリポジトリ操作を別々に試し、どの段階で止まるかを記録してください。認証失敗なら資格情報やトークン、タイムアウトなら経路やプロキシ、名前解決失敗なら DNS というように、エラーの種類から調査範囲を絞れます。
実行しやすい復旧手順
- v2rayN で利用可能なノードを選択し、接続状態とサブスクリプションの期限を確認する
- 他の VPN、プロキシ、ブラウザ拡張を一時停止し、システムプロキシを一つに絞る
- ブラウザで GitHub のトップページと別のリポジトリページを開き、結果を記録する
- ルールモードで GitHub 関連の通信が直接接続へ送られていないか確認する
- 短時間だけグローバル相当の動作で試し、ルール分岐が原因か比較する
- DNS、PC の時刻、IPv4 / IPv6、セキュリティソフトの HTTPS 検査を確認する
- git の HTTPS / SSH の違いと、古いプロキシ設定や環境変数を確認する
- 別のノードまたは別のネットワークで再テストし、設定と回線の問題を分ける
この順番では、最初に大きな変更をせず、ブラウザ、ルール、DNS、git の順に範囲を狭めます。ノードを何度も入れ替えたり、TUN を無条件に有効にしたりするより、原因を再現できる基準線を作る方が効果的です。システムプロキシでブラウザが正常になった後に、どうしても特定のアプリだけ漏れる場合は、必要性を確認してから TUN を検討します。
よくある質問
GitHub だけタイムアウトし、他のサイトは開けます。v2rayN は壊れていますか?
必ずしもそうではありません。GitHub のルールが直接接続になっている、DNS が不安定、または利用中のノードと GitHub の経路の相性が悪い可能性があります。まずグローバル相当の動作で比較し、ルールの問題かどうかを確認してください。
ブラウザは使えるのに git clone だけ失敗します。何を見ればよいですか?
リポジトリが HTTPS か SSH かを確認し、git に古いプロキシ設定が残っていないかを調べます。ブラウザのシステムプロキシと git の通信設定は別物として扱う必要があります。
TUN をオンにすれば GitHub のタイムアウトは必ず直りますか?
いいえ。TUN はシステムプロキシを使わないアプリを接管しやすくしますが、ノード失効、DNS 障害、時刻ずれ、GitHub 側の一時的な障害は解決しません。まず通常のシステムプロキシで原因を切り分けてください。
設定を変えても直らない場合はどうしますか?
別のノード、スマートフォンのテザリング、別のブラウザを組み合わせて比較します。どの組み合わせで成功するかを記録すれば、v2rayN、現在の回線、DNS、git 固有設定のどこに問題があるかを判断しやすくなります。
GitHub のタイムアウトは、単純な「プロキシをオンにするだけ」の問題ではありません。まずブラウザと git を分離し、次に v2rayN のシステムプロキシ、ルール、DNS、最後にアプリ固有の設定を確認するのが近道です。クライアントを最新版へ更新したい場合は、v2rayN をダウンロードし、基本的な使い方は使い方ガイドを見るから確認できます。