我的朋友テリーさん最近遇到了一个问题,为了能够在第一时间玩上『ファイアーエムブレム · 風花雪月』,テリーさん之前早早地预载好了游戏文件,就等发售当天立刻开玩。结果到了发售的那一天,却出了一个严重的状况——国内的网络环境不好,导致他无法通过任天堂的验证,一登录游戏就报网络错误。

这个问题其实也有简单的解决方案,比如找到一个拥有良好网络环境的地方(我这里就不错)、或者是使用一些特殊的上网手段(我这里也可以)——但テリーさん有个麻烦,他正在遥远的奉贤,没必要为了验证一个游戏就专程跑市区来。对此テリーさん很苦恼,明明很早就买好了游戏,却不能在第一时间玩上,这种痛苦我也非常理解。

テリーさん是我的好朋友,所以我决定帮帮他。简单地分析了一下问题情况,我立刻提出了一个理论可行、并且相对轻量的方案:

1. 在我的本地电脑上启动一个代理服务器

2. 由于我没有公网IP,因此将我本地电脑的代理服务器通过内网穿透暴露出去

3. テリーさん通过Switch的代理服务器设置,访问到我的代理服务器

4. 我的代理服务器将来自テリーさん的流量转发出去

该方案的拓扑图如下:

简要说明一下:
由于我是Windows系统,虽然也可以切换到Manjaro系统上完成这件事,但我比较懒,不想切换系统了,所以代理服务器使用了简单粗暴的CCProxy来搭建。免费版可以给三个设备使用,由于我基本上只给テリーさん和我自己用,所以免费版足够了(而且大多数人也是使用Windows吧,这个方案可行性更高一些)。
内网穿透使用了比较便利的ngrok,启动ngrok的时候,以tcp协议穿透出去,端口使用CCProxy配置的端口,默认是808。
(可选) Proxifier可以劫持CCProxy的流量导向特殊的服务器。这个是干嘛用的不需要我多说了吧。如果代理服务器的网络环境好,可以跳过这一步。

在我这边启动好了以后,需要テリーさん在Switch的网络设置上进行配置:

将ngrok分配的地址和端口告诉テリーさん,他在Switch的网络设置里输入地址和端口(自动验证不需要)。

很快就可以在我的电脑上看到テリーさん连接进来(ngrok有记录、CCProxy会反馈流量),并且看到他访问了任天堂的服务器(对,这个方案有隐私问题,最好是和非常熟悉的人使用这个方案)。过了一会儿,テリーさん非常兴奋地告诉我验证成功,本次事件顺利解决。

考虑到也许还有许多人有类似的问题,因此总结了这些内容,希望能帮助到有需要的人。