前话
本来正在想重构 growerlab 的权限功能 github.com/growerlab,考虑到未来权限的验证是一件非常麻烦的事,以及在其他微服务的功能通用性上,所以打算重新设计权限能力。
当然,功能是跟在 ONES 的同事讨论沟通的设计,非原创,改天推到仓库中。
ONES 是一个非常棒的项目管理系统,欢迎大佬们尝试使用。
UCloud GlobalSSH 的妙用
首先感谢 ucloud 的 GlobalSSH 功能,这个太棒了!希望不要停掉这个服务(目前免费,啥时候收费也支持一波!)
目前我主要用来做 github 的推拉加速、暴露内网替代花生壳。
github 推拉加速
因为国内众所周知的原因,我们使用 github 推拉代码非常的卡、慢。
但是其实我们可以通过 TCP 级别的代理转发 SSH 流量。
如果自建一个 VPS 来做这个事情,其实使用、维护成本还是比较高的。
所以我们可以通过 UCloud 的 GlobalSSH 服务(所谓是全球 SSH 加速服务?)
亲测可行。
创建一个你的 GlobalSSH 服务即可,通过 ping github.com 即可拿到服务器地址。
然后我们得到「加速域名」。
比如现在我们要加速 github 项目。
这个项目现在的 ssh 地址是 git@github.com:xxx/xxx.git
现在我们将他改成 git@xxxx.ipssh.net:xxx/xxx.git
注意加粗部分就是我们的加速服务器地址。
然后我们在 github 项目目录下执行:
$ git remote set-url origin git@xxxx.ipssh.net:xxx/xxx.git
另外一种简单方法
$ vim ~/.ssh/config
新增配置:
Host github.com User git Hostname 52.xxx.xxx.xxx.ipssh.net Port 22
这样所有的 github.com 走 ssh 时,都会走该 hostname
完成替换后就是使用新的加速地址了。
暴露内网替代花生壳
因为最近做飞书的机器人开发,所有需要调试机器人,OAuth2 授权、ticket 回调等,都需要暴露本地的内网,使内网程序能被公网访问。
相同的功能有花生壳,ngrok。
- 花生壳:域名要购买,有点麻烦
- ngrok:免费不固定域名,而且不管免费、收费速度都不快,毕竟是国外服务。
这个功能其实是要一个 VPS 的,但是因为我的服务器在国外,直接 ssh 上经常断断续续非常苦恼。
目前国内这个冲浪环境,程序员应该是人手一台 VPS?
所以使用 GlobalSSH 来中转,效率速度提升非常!
- 在 vps 上启动 nginx
- 新增一个反向代理配置,将请求全部转到 2222 端口
如下方式启动 ssh 代理
$ ssh -vnNt -i ~/.ssh/id_rsa -R 2222:localhost:9001 root@123.123.123.123.ipssh.net
这样 nginx 会将请求转到 2222 端口,ssh 代理会将 2222 的请求转到本地的 9001 端口。
在本地服务启动并监听 9001 端口,当用户访问服务器时,nginx 会将整个请求转到本地监听 9001 端口的程序。
完毕
记了一篇流水账,希望能帮到有需要的人。