优化 Codeforces 在中国大陆的访问体验

CodeZhangBorui

2024-11-07 15:46:41

Tech. & Eng.

可能的更好的阅读体验

众所周知,Codeforces 是一个著名的竞赛编程平台。\ 众所周知,Cloudflare 是一个著名的云边缘网络提供商。\ 又众所周知,Codeforces 因为天天被打所以选择使用 Cloudflare 保护其网站。

由于各种奇奇怪怪的原因,中国大陆用户在访问 Cloudflare 代理的网站时一般会被匹配到美国西区的任播节点(一般是圣何塞或西雅图),因此 Cloudflare 代理的网站在国内的访问极其不友好(俗称 CF 减速器)。

《Cloudflare 祝福您在新的一年里红红火火》

但实际上,Cloudflare 在全球绝大多数地方都部署有节点,甚至在香港也有节点,因此我们只需要搜索 Cloudflare 所有的节点 IP 并选择延迟低下载速度快的节点并强制指定连接即可。

然而 Cloudflare 截止到目前有 5k+ IPs(IP 地址范围 | Cloudflare),这么多 IP 我们不可能一个一个试,这个时候一个自动化测试程序就是我们所需要的。

CloudflareST - 快速筛选合适的节点

在 Github Releases(作者也提供了 蓝奏云链接)下载 CloudflareST 主程序,双击运行 CloudflareST.exe,耐心等待其完成全部测试,然后选择第一个 IP 复制。

提示:最优 IP 因地区、运营商等因素不同而不同,每个人测出来的结果不一定相同。如果过了一段时间发现速度变慢 / 无法访问可以重新测试一遍。

更改本地 hosts 来强制指定节点

打开 hosts 文件(Windows 在 C:\Windows\System32\drivers\etc\hosts,Linux 在 /etc/hosts),在最后添加(请将 <最佳IP> 换为刚才测试成功的第一个 IP):

<最佳IP> codeforces.com
<最佳IP> m1.codeforces.com
<最佳IP> m2.codeforces.com
<最佳IP> m3.codeforces.com

随后刷新 DNS 缓存(Windows 使用 ipconfig /flushdns,Linux 请自行查阅对应网络管理器文档)即可。

后面更换 IP 可直接编辑这 4 行。

此时访问 Cloudflare 已经在使用自定的节点访问了(通常是香港节点)。