VRChatでタイムアウトが頻発するときの暫定対策

VRChatでタイムアウトが頻発する際の暫定対策
　
フレンドがこの現象に遭遇。他にも困ってる人がいそうなため取り急ぎ対策手順だけ。
気が向いたら推定原因や理屈とかも追記します。

  　
2025/03/24追記
思ってたより反応あってビビっている。みんな困ってたんだな...
もうちょっとしっかり書くべきだったと反省。

追加検証＆より有効な解決策が見つかったので追記

# #目次
[1.結論](#結論)
[2.推論](#推論)
[3.暫定対策手順](#暫定対策手順)
[4.旧手順の戻し方](#旧手順の戻し方)
[5.参考](#参考)



# #結論
~~名前解決もしくはルーティングが正常に行われていない。~~

~~`C:\windows\system32\drivers\etc\hosts`というファイルに管理者権限で以下を追記することで、国内インスタンスでタイムアウトが発生しなくなる。~~

~~※海外インスタンスだとタイムアウトする模様。対策わかり次第追記します。~~

```hosts:C:\windows\system32\drivers\etc\hosts
104.18.27.36   pipeline.vrchat.cloud  # VRChat
104.18.27.36   api.vrchat.cloud       # VRChat
13.227.62.128  assets.vrchat.com      # VRChat
13.249.160.123 files.vrchat.cloud     # VRChat
```
　　
2025/03/24追記
推定原因は名前解決かルーティングに変わりはない...が、さらに言えば特定IPのみ通信がうまくいっていない可能性や、VRChatサーバのロードバランシングがうまくいっていない可能性もある。

そのあたり含め、
以前記載していた方法よりお手軽かつ確実そうな対策手段が判明したので追記。
※すでにX(旧Twitter)で共有されてるのでご存知の方もいるかも
<br>
##### ■旧手順(hostsファイル記載)を実施された方向け
すみません....追記した内容は削除してください...
ずっと放っておくものでもないので...
戻し方は[4.旧手順の戻し方](#旧手順の戻し方)を参照
 


##### ■対策方法
Cloudflare WARPを使う。


以上

<br><br>

....といってもこれだけでは何が何だかわからないと思うので、ちょっとだけ解説します。

Cloudflare WARPはCloudFlare社が提供するDNSとVPN両方の機能を兼ねたソフトウェア。
分からない人向けに超ざっくり説明すると、なんやかんやあってネットワーク接続の仕方が変わるので改善する可能性があります。

怪しいソフトじゃないの...？と不安になっている方はご安心ください。
CloudFlare社の製品はそもそもVRChat自体が使っています。

　

この後は本記事に至った経緯や事象への推論を挟みます。詳しい理屈とかどうでもいい！！という方は飛ばして[3.暫定対策手順](#暫定対策手順)をご参照ください。

# #推論
ある程度知識のある方はここまでで分かったと思いますが、本記事は基本知識がない方向けです。

しかし中には結果だけ出されても納得できない方もいらっしゃると思うので、本記事に至るまでの過程も記載します。


まず発生事象を整理しましょう。


##### ■発生事象
一部のユーザのみ、主にワールド参加時にタイムアウトが発生。ワールドに入れるまでロードとタイムアウトを繰り返す。

##### ■発生日時
2025/3/17～19頃？？
※ 詳細な日時わかる方いたら教えてください。

##### ■原因の推定
まず真っ先に疑うべきはネットワークです。
アカウントの問題の可能性もなくはないですが、
だとしたらタイムアウトなんて中途半端な状態になるとは考えにくいです。

だとしたら、問題はネットワークのどの部分がボトルネックになっているかです。
...が、その前に過去の事例を確認したところ、非常に参考になる記事が出てきました。

  
https://diary.jo3qma.com/posts/2022/06/26/VRChat-Social-Bug/

　
実は今回、タイムアウト問題と同時にソーシャルの更新が遅れる事象が発生していました。
というわけで、少なからず関係があると考えて良さそうです。(何なら当初は「これで解決するでしょ」っと思っていました)

上記を参考に、追加設定や手順の詳細を記載したものが最初に公開した記事です。
hostsファイルでVRChat関係のFQDNを名前解決してやることで、

　１．IPv6の無効化をせずにIPv4で名前解決できる
　２．ルーティング周りの問題を回避可能

という対策だったわけですが、どうにもあまり効果がなかった様子。

※記事公開前に検証した際は少人数の国内インスタンスではタイムアウトが発生しなかった。検証時間が短かったので、たまたまな可能性も大いにある

...はい。ここまでは私が自分の手でろくな調査も行わなかったという情けない話で、ここからが本題です。
　
　
正直今回の事象で原因となりうる可能性を挙げるときりがないですが、いくつかピックアップしてみます。

前提として、以下対策は確認済みとします。
※すでにX(旧Twitter)で試した方がいたため
 　・PC再起動
　 ・ルータ再起動
 　・SteamVR及びVRChatの整合性確認
 　・SteamVR及びVRChatの再インストール
 　・グラフィックドライバの更新
 　・DNSサーバの変更


この時点でクライアント側の原因としてよくあるものは大体潰れていますね。その他想定される原因は以下の通り。
<br>
###### <INS>1.VRChat内部のネットワーク設定がおかしい
 
　　　　　　　　～完～
        
終わりです。この場合どうしようもないです。
ですがそれでは悔しいので、なんとか他の原因及び対策を考えました。
<br>
 ###### <INS>2.アカウントの問題
これは冒頭でも言及した通り、
タイムアウトという中途半端な状態になるとは考えにくいです。仮に認証系に問題があるなら、そもそもログインが安定しないはずですしね。
<br/>
 ###### <INS>3.何らかの原因によって特定IP・またはプロバイダからの通信に影響が出ている。
これは切り分け厳しいです。
最初は特定のユーザのみ事象が発生していたため真っ先にプロバイダを疑いましたが、 影響が出ている人が同じプロバイダを使っているわけではないっぽい。かつ影響があった人のプロバイダで障害情報が出ていませんでした。以上2点からプロバイダ説は薄そうです。
　　
特定IPの場合ですが、これは本手順で紹介しているVPNを使うことで切り分け可能です。今回は暫定対策が目的なので、そこまで検証していません。気になった方は検証してみてください。
 <br>
###### <INS>4.名前解決もしくはルーティングが正常に行われていない。
前例がある以上可能性としては高いですが、切り分けが難しいです。hostsによる名前解決では解決しませんでしたしね。IPv6の無効化は試したので、IPv6が原因でもなさそうでした。
    
ちなみにDNSサーバの変更ですが、それでは解消しない可能性が高いと思っていました。DNSサーバに問題があるなら、影響範囲はもっと広いはずです。こうも問題が発生するユーザと発生しないユーザがはっきりしているとは思えません。問題が発生していた人が全員マイナーなDNSサーバを指定していたなら話は別ですが。

そのため、DNS+ルーティング、またはロードバランシングあたりが原因ではないかと考えました。
<br/>

##### ■暫定対策の推定
他にも色々原因・対策案を考えたのですが、
上記特定IPのからの通信不良及び、名前解決+ルーティングを同時にケアできそうなのが、今回対策として挙げたCloudflare WARPだったわけです。

特定IPのからの通信不良は言わずもがなVPN。
名前解決&ルーティングは解決するとは限りませんが、VRChat側もCloudflareを使っているのでgoogleのDNS(8.8.8.8)を利用するより相性が良さそうというのと、Cloudflareの内部仕様によっては通信経路が変わる可能性があります。

「外部で名前解決⇒Cloudflare⇒VRChat」から
「Cloudflare内で名前解決⇒VRChat」になるかも

という期待半分です。
※この辺詳しくないので、ご存知の方がいたらコメントください。
　

とまあ色々ありつつ、影響があったフレンドにCloudflare WARP試してみてもらったところ、検証時間は短いですが、以下の結果が得られました。

　　
##### ■検証結果

条件|結果
---|---
|cloudflare warpオフ|即タイムアウト|
cloudflare DNS(1.1.1.1)|ないよりマシ
cloudflare warp(DNS＋VPN)|海外鯖でも安定

　
上記の通り、cloudflare warpによってタイムアウトが発生しなくなることを確認できました。正直この後に考えていた対策はかなりゴリ押しだったので、ここで良い結果が出てくれて一安心です。
　
DNSを1.1.1.1にするだけでは不安定ということは、
やはり他にも何かしら原因がありそうですね。
　
しかし本記事はあくまで暫定対策が目的なので、これ以上は検証していません。
<br>
また、これはフレンド一人に検証してもらった結果なので注意が必要です。
環境によって結果が変わる可能性はあります。
そのため、一応手順にcloudflare DNS（1.1.1.1）のみのやり方も記載しています。

Windowsの設定からDNSをいじる方法もありますが、PC苦手な方にとっては分かりにくい＆元の設定忘れそう。ということで、ソフトのインストールとオンオフだけで完結するCloudflare WARPを採用しました。

　
以上、長話にお付き合いいただきありがとうございました。

補足等ありましたらコメントお願いします。


# #暫定対策手順
Cloudflare WARPを利用した対策手順
※本手順は自己責任の上行ってください。

##### 1.下記サイトからCloudflare WARPをダウンロード。
　※[Download latest stable release]をクリック
 
https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/download-warp/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/c80c599b-cdaf-4122-a6fe-c79adedca867.png)
　　
##### ２.ダウンロードしたインストーラを起動
ファイル名は[Cloudflare_WARP_2025.1.861.0.msi]
※2025/03/25時点

##### 3.インストーラの指示に従ってインストール

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/f69a39fa-f7f2-4076-a5c3-b4c8ee36f013.png)

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/4043cd80-5735-41e2-a853-f28d2b23f6aa.png)

##### ※「このアプリがデバイスに変更を加えることを許可しますか？」と表示された場合は「はい」を選択

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/6c20f1ca-674a-4b8e-baab-757c5244fbb3.png)

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/999fbc5d-58ad-499c-bd5c-e4cf94ce7540.png)

##### 4.タスクバーにある^マークをクリックするとタスクトレイがでてくるので、そこにCloudflare WARPがあればインストール成功。

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/2b8ae0bf-fe10-49b8-845a-852071013732.png)

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/f57d9c62-ac25-4374-87d7-7724926ff8d7.png)

##### 5.Cloudflare WARP起動
タスクトレイの☁アイコンをクリックすると以下のような画面が表示されるので案内に従って進める
    
![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/b3c6de58-8543-4b2c-8cd4-a95ed96d664d.png)


![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/4dfe2096-7989-4454-abdc-f48140ca2ffc.png)

##### 6.トグルボタンをクリック。しばらくすると「接続済み」となる。

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/190149b0-788d-41ed-be15-f1bc6205dba1.png)

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/678fe83f-d8ac-4525-b475-91dc0494e5d2.png)
　
<br>
これでCloudflare WARPの設定は完了！！
このままVRChatを起動し、タイムアウトが発生しなくなっていることを確認してください。
<br>
### ■補足
これでもタイムアウトが発生する人は一回以下の設定を試してみるといいかも

右下歯車マークから
「1.1.1.1 with WARP」⇒「1.1.1.1」に変更
今まではDNS＋VPN機能だったのがDNSのみになるので、環境によってはこっちの方がよくなる可能性がある

![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/9d4936ec-42b7-472a-88bb-7265e2f09290.png)
<br>
これでも解決されない方がいたら教えていただけると助かります！！！
<br>
### ！！！【注意事項】！！！
VRChatで遊ぶ時以外はCloudflare WARPをオフにすることを強く推奨します。

Cloudflare WARPはVPN（Virtual Private Network）機能を持っているのですが、
この機能、自身のIPアドレスを隠すことが出来るので悪用されがちです。
特に対戦ゲーム等だとチート対策でBANされる可能性があるため、必ずオフにしましょう。

 　
また、タイトルにもあるように、本手順はあくまで暫定対策です。根本対策はVRChat側の対策を待つことになるかと思います。
<br>
問題が解決した後はソフトをアンインストールしていただいて構いません。

　
##### ■アンインストール方法（どちらかを実施）
・コントロール パネルのプログラムと機能から削除
・インストーラを再度起動し「remove」から削除

# #旧手順の戻し方
`C:\windows\system32\drivers\etc\hosts`への追記削除。ほぼほぼ追記した時と同じ手順
　　
##### 1. Windowsキーを押してスタートメニューを開く
##### 2. 「`cmd`」と入力し、`Enter`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/739a941b-1be4-4452-9e7c-e7a35d27b012.png)
<br>
##### 3. 真っ黒な画面が出てくるので、そこに以下コマンドをコピー&ペーストして`Enter`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/36ebe580-5ba6-4777-b1d7-ecc13aa0e975.png)
```cmd:コマンド
powershell -NoProfile -ExecutionPolicy unrestricted -Command "start notepad C:\Windows\System32\drivers\etc\hosts -verb runas"
```
<br>

##### 4.「このアプリがデバイスに変更を加えることを許可しますか？」は「はい」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/1de389fc-11bc-4227-9e58-a09eda4e06b0.png)

<br>

##### 5.追記した箇所(青選択箇所)を削除し、`Ctrl` + `S`で保存
```hosts:hosts:C:\windows\system32\drivers\etc\hosts
104.18.27.36   pipeline.vrchat.cloud  # VRChat
104.18.27.36   api.vrchat.cloud       # VRChat
13.227.62.128  assets.vrchat.com      # VRChat
13.249.160.123 files.vrchat.cloud     # VRChat
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/8717ffb5-4e20-44ab-ae74-95368cec5ecd.png)
<br>
■削除後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4042417/61067731-b87a-4563-8d1e-a5020cb6c604.png)




<br>

これで戻し作業は完了です。

# #参考

https://diary.jo3qma.com/posts/2022/06/26/VRChat-Social-Bug/

https://qiita.com/tiibun/items/5719869552ee5b713d83