ngrok内网穿透环境搭建

之前一直想着吧电脑放宿舍,在外面想用一下的话就直接远程桌面访问过来就好啦。但是学校没有分配公网地址,只有内网地址,那么就没有办法通过公网访问啦。某天必须要在内网环境下给同学开远程桌面的访问服务,从梁兄那听说了Ngrok这样的神器,可以自己搭建内网穿透服务,只需要一个VPC跑着ngrok的服务就可以啦。理解了一下,感觉大概的原理是服务器上有一个端口转发。在client端做一个本地端口到服务器端口的映射,这样访问服务器的端口就相当于访问了本地端口。下面就来实际搭建一下吧

服务器端

ngrok是开源的,不过在2.0之后做了商业化的处理,需要付费,这里我们就是用之前的开源源码自己进行编译。
首先从git上下载源码
git clone https://github.com/inconshreveable/ngrok.git
因为ngrok是用Go编写的,所以需要搭建GO语言的环境,在centos上直接  yum install go  即可
go语言环境搭建好后,需要将NGROK_DOMAIN这个变量赋值为你自己的域名,比如
NGROK_DOMAIN="mysugar.me"
使用自己的域名,我们需要自签名证书:
cd ngrok
openssl genrsa -out ngrokroot.key 2048
openssl req -x509 -new -nodes -key ngrokroot.key -subj "/CN=$NGROK_DOMAIN" -days 36500 -out ngrokroot.crt
openssl genrsa -out snakeoil.key 2048
openssl req -new -key snakeoil.key -subj "/CN=$NGROK_DOMAIN" -out snakeoil.csr
openssl x509 -req -in snakeoil.csr -days 36500 -CA ngrokroot.crt -CAkey ngrokroot.key -CAcreateserial -out snakeoil.crt
这样就在当前文件夹下生成了*.key和*.crt一共六个文件,将他们复制到相应的文件夹:
cp ngrokroot.crt assets/client/tls/
cp snakeoil.crt assets/server/tls/
cp snakeoil.key assets/server/tls/
接下来就可以编译服务器啦:
make release-server
此时变异的可执行文件就在bin目录下啦,可以ngrokd --help来查看选项,想运行的话使用
./ngrokd -domain="mysugar.me"
即可。看到下面这个样子,就说明服务器端配置完成啦:


客户端

编译客户端需要根据不同的系统编译不同的客户端文件
windows:
GOOS=windows GOARCH=amd64 make release-client
macOS:
GOOS=darwin GOARCH=amd64 make release-client
此时在自己电脑上以相应参数运行客户端即可,配置开放远程桌面和ssh端口可以查看这个系列的下一篇博文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值