如何部署 HTTPS 代理服务

前言

某天,看到了陈皓的推上发了一片他的 blog。作为从他的多篇 blog 中受益的我来说,下意识觉得肯定很靠谱,于是拜读了一下,就有了这篇实践文章。

为什么用 HTTPS 代理

攻略里已经讲得很清楚了,外加自己数次 shadowsocks 被 ban 的经历,觉得有必要换一种更安全的代理方式。

怎么部署 HTTPS 代理

gost

gost攻略中,感觉最推荐的工具。一开始我对它的理解也有问题,刚开始理解成他是类似 kcptun 的方式,依然是依赖 shadowsocks。实际上 gost 是实现了多种代理,也就是有它就可以不用其他代理了。 我一直不太喜欢通过不断套壳来加速/混淆 shadowsocks 的方式,总觉得链路太长,带来的问题就会更多。

步骤

PS: 本人还不知道怎么在 Android 上不 root 的话配置全局 https 代理,也不知道 iOS 上没有美区账号怎么配。再就是也不知道 Windows 10 上怎么优雅配置开机启动脚本。这些待研究。。。

上面说到移动端的问题。翻了一圈发现 https 代理的客户端支持都不太好。gost 本身似乎有些问题,也可能是我的使用姿势问题,总之不用本地 gost 连接远程 gost,鉴权就会出错。

这两天,趁着放假了,稍微又折腾了一下。先是在家里 nas 上部署了一个 gost http 代理,用最简单的 nohup + ctrl-D 来维持。编译的时候选 GOARCH=arm64 就行了。试运行了一天,Android 自带的弱鸡 http 代理运行良好,但是总全局翻不是很爽。于是,把 http 换成了 ss 连接远程 https。类似把 Windows 上的本地服务搬到了 nas 上。于是,又简单的通过两层端口转发,nas -> 内网路由 -> 光猫路由,这样通过公网 IP,也可以把 nas 当 ss server 来用了。

剩下就是 ddns 的问题。搜了一圈,似乎 Cloudflare 的 api 是比较靠谱的方案。正好官方有个 flarectl,编完搞到 nas 上,写了个小脚本,再次体验了一下 bash 的各种神奇(坑),终于让我回想起以前看到有人做字符串比较时候的特殊写法的缘由。[ $a != $b ] 这种改为 [ $a != $b* ] 是为了避免行尾 “\r” “\n” 之类字符的处理。不过,解绑 name server 还需要一段时间。最终效果待验证。

对了,在 nas 上获取本机公网 IP 的办法我目前就是用了一个 curl 某个提供 IP 的第三方地址的办法,总感觉不知道哪天可能旧连不上或者遇到些问题挂了。

Comments

comments powered by Disqus