乘着疫情在家优化数据库和老程序遗留的各种性能问题,其中在处理一个线上诡异的Java程序运行缓慢,但是在本地非常好的情况下,想到需要调优一些参数,于是需要一个windows下的jvm,自然而然想到在线上装Windows系统进行调试,但是由于网络策略的缘故,无法访问远程桌面,甚至无法安装虚拟机。因此想到了使用ngrok这个内网穿透软件。
ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服务。 ... 好在ngrok是开源的,我们可以去Github上下载它的源码,在自己的外网服务器上搭建这样一个服务。
由于习惯,采用Docker来进行ngrok的服务端的安装。方法如下:
docker rm -f ngrok-server && docker run -d --name ngrok-server -p 801:801 -p 8082:8082 -p 4443:4443 -p 11122-11130:11122-11130 --restart=always jueying/ngrok-server xxxx.xxx.com 801 8082 4443
可以用你的域名的袋贴xxx.com部分,在域名解析上增加cn记录指向服务器地址
然后就是安装客户端,这个版本的镜像作者通过交叉编译已经生成了客户端,只要复制下来就可以使用了,用法如下:
docker cp ngrok-server:/usr/local/ngrok/bin/ /tmp/
获取各个版本的客户端。
一般情况下可以如下映射http的端口
./ngrok -subdomain pub -proto=http -config=ngrok.cfg 80
下面演示怎么样配置ssh链接:
ngrok tcp 22
但是没有办法执行监听的端口。可以通过配置yml文件进行。
本文为Lokie.Wang原创文章,转载无需和我联系,但请注明来自lokie博客http://lokie.wang