Ubuntu下搭建Ngrok实现内网穿透

2017年4月30日17:47:43 发表评论 9,075

Ubuntu下搭建Ngrok实现内网穿透

引言

从早上10点钟左右就开始做这个测试了,我是在学生,使用的是学校里面的校园网,没有路由器,不能做端口映射做内网穿透。当然使用花生壳等内网穿透工具还是可以得,但是有时候满足不了我的需求,比如我需要指定固定端口做转发,同时需要http和TCP的转发,并且直接局域网内的某台主机穿透,还有一点就是用自己的域名看着比较爽。经过几个小时的奋战,最终还是成功了,中间遇到了很多的坑。。结合了多个教程才完成的。下面简单记录一下。

Ngrok简介

Ngrok是一款可以搭建在Linux端上作为转发工具的服务,可以将自己定义的域名解析到该服务器,然后利用Ngrok服务,将指定端口发送来的数据转发到内网的主机上面,当然,内网主机也是需要Ngrok的客户端和服务器相连接的。这样就可以实现外网访问内网,在做web开发的时候,可以直接以内网服务器作为web服务端,直接使用域名访问,在渗透测试的时候,可以直接将靶机的TCP反弹连接反弹到内网服务器,实现控制靶机的功能。总之,Ngrok用起来还是比较爽的。

Ngrok服务器搭建

搭建之前首先需要有一台外网服务器和一个域名。我这里以waitgg.cn做测试,我已经将waitggl.cn泛解析为*.ngrok.waitggl.cn

1、安装go环境

因为Ngrok是用go语言编写的,所以我们首先安装go环境。

这样我们就把go解压到了/usr/local目录下面,但是这时候输入go命令是无效的,这里需要做一下软连接。

3、下载Ngrok并生成口令

在这之前请确保服务器上面已经安装了最新版的git,若没有请自行百度安装方法。

下载Ngrok

ps:上面的export是创建变量其中NGROK_DOMAIN 的值要改为你的域名。

生成证书,并拷贝到指定目录

编译服务端

ps:注意上面的GOOS和GOARCH可以通过命令go env看到,GOARCH=386代表的是32的操作系统,如果是64位的应该是amd64

编译客户端

客户端的编译分为多动,不同的操作系统对应着不同的客户端。

1)Windows客户端编译

ps:上面的GOOS和GOARCH注意一下。代表Windows x64

2)Linux客户端编译

3)mac客户端编译

4)树莓派客户端

到此为止,我们的准备工作基本上就做完了,只要选择相应的客户端进行编辑就好。

我用的是window64位的操作系统,我们就以此为例

服务端和客户端都编译完成之后会在/usr/local/ngrok/bin目录下面有一个ngrok文件和windows_amd64文件夹,其中ngrok就是我们的服务端,windows_amd64下面会有一个ngrok.exe文件,这个就是我们的Windows客户端文件,我们把ngrok.exe文件复制到Windows机器上面。

4、运行Ngrok服务端和客户端

服务端启动

ps:上面的$NGROK_DOMAIN就是我们的域名

当服务启动之后,服务器会监听8081、443、4443端口。所以在这之前最好不要有端口占用。当然这几个端口是可以指定的

客户端启动

在运行客户端之前,需要在ngrok.exe目录下面新建一个ngrok.cfg,内容如下:

在cmd中进入到ngrok.exe目录下面,执行命令

上面的-proto指定了转发方式,-cofig指定了刚才新建的文件,-subdomain指定的是域名域名的子域名,80是本地的端口,一般web的端口。

如果使用转发TCP命令如下:

但是这种方式转发的TCP外网的端口是随机的,如果我们要使用固定的端口要用下面方式启动客户端:

修改ngrok.cfg文件为:

上面的127.0.0.1可以修改为局域网任何一个ip下面同样,不写默认127.0.0.1,ssh中的remote是服务器的tcp短发端口,proro中的tcp是本地的tcp端口。

启动命令如下

上面的http、https、ssh是可选的,单个启动或者多个启动都可以

启动完成后的界面应该是这样:

Ubuntu下搭建Ngrok实现内网穿透

这时候访问域名http://test.ngrok.waitggl.cn:8081/访问的就是本地的127.0.0.1:80 了。

结束语

Ngrok服务器的搭建基本的过程就是这样,若有什么错误,还请指正。

最后感谢以下参考文章:

http://www.sunnyos.com/article-show-48.html

http://www.tuicool.com/articles/aUJF7zf

http://www.07net01.com/2016/09/1676429.html

http://www.mamicode.com/info-detail-1368658.html

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: