本文准备作为长期更新文章,若发现错误,请务必在评论区(GitHub issue)配依据指出。
#总结
| 域名 | IP | 所属运营商 | 地理位置 | 用途 |
|---|---|---|---|---|
| vrchat.com | 104.18.6.156, 104.18.7.156 | Cloudflare | San Francisco, California, US | 官网(/home)、旧 API(/api) |
| wiki.vrchat.com | 网站解析:104.18.6.156, 104.18.7.156 Cloudflare DoH 解析:8.6.112.0, 8.47.69.0 | Cloudflare | San Francisco, California, US | 官方 Wiki |
| status.vrchat.com | 很多 | Amazon CloudFront CDN, Atlassian | 多地 | 官方服务器可用性监控 |
| vrch.at | 104.18.28.35, 104.18.29.35 | Cloudflare | San Francisco, California, US | 短域名(用户、世界、实例、群组…)[1] |
| api.vrchat.cloud | 104.18.26.36, 104.18.27.36 | Cloudflare | San Francisco, California, US | 网站后端、游戏服务端 API[2] |
| pipeline.vrchat.cloud | 104.18.26.36, 104.18.27.36 | Cloudflare | San Francisco, California, US | Websocket API[3],向游戏客户端推送群组通知、好友申请、好友状态等消息 |
| files.vrchat.cloud | 因存在 CDN,结果不唯一 | Amazon CloudFront CDN, AWS S3 | 多地 | World、Avatar、SDK 等资源文件分发,域名在 CloudFront 上,背后是 S3 |
| file-variants.vrchat.cloud | 因存在 CDN,结果不唯一 | Amazon CloudFront CDN | 多地 | 游戏客户端中 World、Avatar、SDK 等资源文件下载 |
| assets.vrchat.com | 因存在 CDN,结果不唯一 | Amazon CloudFront CDN, AWS S3 | 多地 | 图片资源分发,域名在 CloudFront 上,背后是 S3 |
| ns.photonengine.io, *.exitgames.com, ns.photonengine.cn | “Such an IP list does not exist as the Photon Cloud is changing too frequently” | Photon Engine | 多地 | 玩家实时动作和语音,“VRChat 无响应(VRChat is not responding)”弹窗(存疑),“网络连接已超时(Your connection has timed out)”弹窗(存疑)[4] |
#vrchat.com
官网域名 https://vrchat.com/home,同时下面有子域名 https://api.vrchat.com(虽然叫 api 但似乎只起到重定向到其他域名的作用)。
同时它曾经(2025 及以前?)承接 API,如 Unity 里的 VRChat SDK 所用到的 https://vrchat.com/api/1/file/image/code/{id}。不清楚目前 API 是否全面转为 api.vrchat.cloud,搜到一篇2026 年的文章还在用 https://vrchat.com/api/1/file/{fileId} 而不是 https://api.vrchat.cloud/api/1/file/{fileId},尝试调用该接口也不会重定向。
本地开 dnscrypt-proxy DoH 代理(部分域名如 vrchat.com 会被 GFW 污染),dig 结果(其实是 HTTP 代理到日本的代理服务器再 DoH 到 Cloudflare 的 DNS 服务器,解析结果是 Cloudflare 提供的,下同、不再赘述):
|
|
找俩在线 DNS 解析网站交查验证,没错就只有这俩 IP(下面若本地和两网站解析结果相同则不再赘述):
#wiki.vrchat.com
官方 Wiki https://wiki.vrchat.com。本地解析出的 IP 和两个网站不一样,网站解出的 IP 同 vrchat.com,本地解出的这俩也是 Cloudflare 的 IP,是 CDN?
|
|
- https://dnschecker.org/#A/wiki.vrchat.com
- https://mxtoolbox.com/SuperTool.aspx?action=a%3awiki.vrchat.com
#status.vrchat.com
服务器可用性监控 https://status.vrchat.com,监控的 IP 就是多,那几个 99.86 开头的裸 IP 是 Amazon CloudFront(CDN),还用了第三方平台 Atlassian(stspg-customer.com 和 atlassian.com 两个域名),两个网站也是各地理位置解出的结果都不同。另外 FYI 社区也有一个监控 https://metrics.vrchat.community
|
|
- https://dnschecker.org/#A/status.vrchat.com
- https://mxtoolbox.com/SuperTool.aspx?action=a%3astatus.vrchat.com
#vrch.at
还真不知道有这么一个短域名,从社区维护的 API 文档1(官方没有 API 文档)里看到的。它可以重定向到对应的 https://vrchat.com/home/ 链接。
|
|
#api.vrchat.cloud
游戏客户端、网站都会调用的 API 域名,社区整理的 REST API 2大部分都在这个域名下,用中国互联网公司的架构行话,我们可以说这是“管理端”。104.18.26.0/24、104.18.27.0/24 这俩都是 Cloudflare 的 IP 段,不像社区传言中说的 VRChat 部署在 AWS 上,至少这个域名不是。
|
|
- https://dnschecker.org/#A/api.vrchat.cloud
- https://mxtoolbox.com/SuperTool.aspx?action=a%3aapi.vrchat.cloud
#pipeline.vrchat.cloud
VRChat’s Websocket API, also known as “the pipeline”, is used receiving updates regarding the API, such as receiving an invite request. The connection is receive-only, meaning that you can only listen for messages. Sending messages is undefined behavior. – Community Wiki 3
从游戏客户端日志里也能看到,客户端会尝试保持 Websocket 一直连接。根据社区 API 文档所提及的 API 功能,链接不稳定会导致游戏客户端无法显示最新状态,如好友在线情况不准、收不到各种请求通知。Websocket 是 TCP 长连接,如果这部分出、入双向流量选择走代理,则代理自身的 TCP 配置会影响连接的稳定性,具体在文章后面解释。
|
|
- https://dnschecker.org/#A/pipeline.vrchat.cloud
- https://mxtoolbox.com/SuperTool.aspx?action=a%3apipeline.vrchat.cloud
#files.vrchat.cloud
该域名上存放着各种资源文件,游戏客户端会从上面下载 World(.vrcw)和 Avatar(.vrca)文件,VRChat Creator Companion (VCC)会从上面下载 Unity VRC SDK,甚至这里有一个有效的意义不明的测试链接 https://files.vrchat.cloud/testfiles/100M.bin。
|
|
- https://dnschecker.org/#A/files.vrchat.cloud
- https://mxtoolbox.com/SuperTool.aspx?action=a%3afiles.vrchat.cloud
解析出的四个 108.157.229.* 裸 IP,反向 DNS(PTR)结果为 CloudFront 的 CDN 域名。这里本地和网站对四个 IP 的 PTR 结果都是 arn56.r.cloudfront.net,搜了下这是瑞典斯德哥尔摩 Stockholm, Sweden (ARN 是其 Arlanda 机场 IATA code)。因存在 CDN,不同地区的客户端去解析 files.vrchat.cloud 应该会得到不同的结果。
|
|
- https://dnschecker.org/#PTR/108.157.229.115
- https://mxtoolbox.com/SuperTool.aspx?action=ptr%3a108.157.229.115
有证据表明,该域名上的文件资源存储在 AWS S3 上:社区 API 文档提到了调用文件传输接口响应是 AWS S3 链接(猜测应该是pre-signed url)。
请求 https://s3.amazonaws.com/files.vrchat.cloud/ ,会看到这个 bucket 是存在的,从 HTTP header 里可见 x-amz-bucket-region: us-east-1,说明该 bucket 位于“声名显赫”的 us-east-1(位于美国弗吉尼亚),向其他 AWS 地区请求该 bucket(如 https://s3.eu-west-1.amazonaws.com/files.vrchat.cloud/ ),会收到“PermanentRedirect”响应,说明该 bucket 没开多地区备份策略如 Multi-Region Access Points。嗯…假如 us-east-1 down 了,VRC 玩家就加载不了世界和模型了吧。
#file-variants.vrchat.cloud
谷歌搜索 (和 AI 辅助搜索)搜不到该域名的用途,它只是不断出现在各帖子的代理规则配置中,同时该域名又确实是实际存在可解析的。看解析结果,该域名也套了 CloudFront,不过没有对应 S3 bucket https://s3.amazonaws.com/file-variants.vrchat.cloud。本地和网站解析结果理所当然得不同。
观察游戏日志和网络行为得知,该域名反而是游戏客户端下载 World 和 Avatar 文件的目标域名,反观 files.vrchat.cloud 流量相当少且在下载文件期间没有新流量。
|
|
- https://dnschecker.org/#A/file-variants.vrchat.cloud
- https://mxtoolbox.com/SuperTool.aspx?action=a%3afile-variants.vrchat.cloud
#assets.vrchat.com
应该是保存静态资源(如图像、缩略图)的域名,搜索得知 Udon Image Loading 即世界中的图片加载功能会请求该域名,该域名也在游戏客户端内置的 Image loading allowlist 中。套了 CloudFront,S3 bucket 存在,还是在 us-east-1。本地和网站解析结果理所当然得不同。
|
|
- https://dnschecker.org/#A/assets.vrchat.cloud
- https://mxtoolbox.com/SuperTool.aspx?action=a%3aassets.vrchat.cloud
#玩家实时动作和语音
像其他在线游戏一样,玩家在 VRC 世界中的动作和语音,是通过 UDP 流量传输的,因为这类信息时效性较低,丢一部分也不影响。VRChat 借助名为 Photon Engine 的平台的资源来处理这部分数据传输。众所周知在 VRC 中创建世界实例时有四个地理位置选项,对应 Photon Engine 的四个地区集群。
根据这篇官方 FAQ4(和论坛贴),恼人的“VRChat 无响应(VRChat is not responding)”和“网络连接已超时(Your connection has timed out)”弹窗可能(该文章和官方开端口文章都用了“real-time networking”字眼)提醒电脑与 Photon Engine 服务器之间存在网络问题。
搜索[5][6][7]得知,ns.photonengine.io,*.exitgames.com 两个域名在游戏客户端日志中出现,另外 Photon Engine 官方文档列出中国有个特殊的域名 ns.photonengine.cn。观察游戏日志和网络行为,只看到对 ns.photonengine.io 的请求:[Behaviour] Using nameserver host: ns.photonengine.io。
|
|
- https://dnschecker.org/#A/ns.photonengine.cn
- https://mxtoolbox.com/SuperTool.aspx?action=a%3ans.photonengine.cn
- https://dnschecker.org/#A/ns.photonengine.io
- https://mxtoolbox.com/SuperTool.aspx?action=a%3ans.photonengine.io
- https://dnschecker.org/#A/exitgames.com
- https://mxtoolbox.com/SuperTool.aspx?action=a%3aexitgames.com
trafficmanager.cn,trafficmanager.net 是 Microsoft Azure 的域名,好嘛,三个域名背后 Cloudflare AWS Azure 都有了。本地和网站解析结果理所当然得不同。
#通过代理玩 VRC
Connecting to VRChat requires a reliable connection to Cloudflare, AWS Cloudfront, and Photon Engine and a stable connection to download content such as Worlds and Avatars. – https://help.vrchat.com/hc/en-us/articles/360062658433-Troubleshooting-Connection-Issues-with-VRChat
为下载资源文件,游戏客户端将产生大量目的地址是 file-variants.vrchat.cloud 的入向流量,若该域名在你本地没有被污染,走直连可以节约代理流量。
若 Websocket API 域名(pipeline.vrchat.cloud)的出入流量走代理,则因代理客户端、代理服务器 TCP 超时配置和网络不稳定,可能出现 TCP 半开的情况,其中一种情况是:本地(代理客户端)到代理服务器间正常,但代理服务器到 pipeline 间网络不稳定,代理服务器不主动断开与客户端的连接,长时间等待 pipeline 服务器的响应。结果是本地迟迟等不到响应。
代理规则编写参考一篇论坛帖和上面整理的内容。
|
|
-
https://help.vrchat.com/hc/en-us/articles/29016182583571-VRChat-is-not-responding-Your-connection-has-timed-out ↩︎
-
https://doc.photonengine.com/realtime/current/connection-and-authentication/regions#available-regions
-
https://ask.vrchat.com/t/recent-consistent-disconnects-timeouts/26996
-
https://ask.vrchat.com/t/player-from-china-was-unable-to-join-some-instances-always-timed-out/14394