开学以后好久没有更新博客了,不是因为懒,而是因为 firebase 一直登录不上……

开学之前我一直是把 shadowsocks 安装到家里的路由器来科学上网的,firebase 部署一直很稳,觉得 firebase-cli 真的很好用,还推荐给了许多朋友。

开学以后,换了MBP,在新的软硬件和网络环境下,更新博客遇到了重重阻力,Mac上我安装的是shadowsocksX-NG,也没办法全局翻墙(SS客户端的全局模式都是浏览器全局,不是真全局),一开始想着配置好终端代理就能正常用了,居然还不行,因为 firebase-cli 是用 npm 构建的,所以可能还要配置代理 npm。用 proxifier 配置好,以为就解决问题了,没想到还不行!!搜索了很久,原因可能在于 firebase 依赖了 faye-websocket 这个库,但是这个第三方库不支持代理… 根据网友的方案,需要修改其源码,试着改了一下还是没用,就放弃了。

这么看来,配置应用代理应该是没什么希望了,于是我开始尝试“从源头上解决问题”,直接把文件传到我的阿里云香港服务器上部署,还是没能搞定,因为 firebase 登录操作必须走一趟浏览器,而我的系统是不带 GUI 的 CentOS…… 安装了几种“终端浏览器”,挺有意思(比如links),不过没有一个能用的。

绝望的我开始尝试手机热点共享翻墙网络的方案,sock5的共享必须要手机 root 权限(这个就算了),在我印象里,L2TP VPN 是免配置直接可以共享翻墙的,于是我去香港服务器上搭了个 L2TP VPN server,没想到吧,连不上…… 应该是服务商的原因,毕竟是国内的阿里云。

我好像已经把能试的全试过了,就差把我的网件路由器寄来学校了,实在太麻烦,我又开始绝望的摸索有没有软路由可以用,还真搜到了一个方案,叫 VRouter 透明代理,“它在后台运行一个 openwrt 的虚拟机,通过更改系统的默认路由,把所有系统数据包转发到虚拟机上。依托 openwrt 的 iptables 进行数据包的处理,达到透明代理的效果”,试用了一下,发现配置有点太简单了,比如没有shadowsocks的混淆参数配置,还是没法用。

又过了一段时间,我想能不能在官网上找到什么线索,就去看了一下,果然有了新的发现,Google Firebase 开始提供打包好的可执行程序了,立即下载,用 proxifier 配置代理,问题解决了。此时疲惫的我居然感觉不到喜悦,firebase 在国内还真的是难用,官方仓库里一堆 issues 都在说这个问题,一直都没解决好,所以说国内用户还是别尝试 npm 的安装方式了。

这个事,折腾了两三个月。