ngrok 搭建内网穿透+远程桌面连接

1、准备一个域名,可以不用备案。

2、为域名添加解析。如域名为:xxx.com   ip地址为:xxx.xx.xx.xx

域名地址解析1:xxx.com   指向ip xxx.xx.xx.xx

域名地址解析2:*.xxx.com 指向ip xxx.xx.xx.xx

NGROK是一个反向代理,它创建了一个从公共端点到本地运行的Web服务的安全隧道。NGROK捕获和分析隧道上的所有流量,以便以后检查和重放。

一、搭建ngrok 服务器

1、安装GNU编译器套件、git(用于下载Ngrok源码)、以及GO语言环境

yum install gcc -y

yum install git -y

yum install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386

2、安装lrzsz ,screen

yum install lrzsz -y

yum install screen -y

3、下载ngrok源码。如:下载到opt目录下,则进入到opt文件夹然后执行以下命令

git clone https://github.com/inconshreveable/ngrok.git

进入ngrok可以看到如下:

4、进入到ngrok文件夹并生成证书。

export ngrok_domain=“xxx.com”这里为自己购买的域名地址 

cd ngrok 

export NGROK_DOMAIN="xxx.com"

openssl genrsa -out rootCA.key 2048

openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem

openssl genrsa -out device.key 2048

openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr

openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

5、将生成的证书拷贝到相应目录下替换,记住不要少了前面的斜杠。不然复制一个就会提示是否覆盖

\cp -rf rootCA.pem assets/client/tls/ngrokroot.crt

\cp -rf device.crt assets/server/tls/snakeoil.crt

\cp -rf device.key assets/server/tls/snakeoil.key

6、编译生成ngrok的服务端

GOOS=linux GOARCH=amd64 make release-server

7、生成客户端。

生成windows 64位客户端:

GOOS=windows GOARCH=amd64 make release-client

生成windows 32位客户端(以下生成客户端同理,将goarch值改为386即可):

GOOS=windows GOARCH=386 make release-client

生成mac 客户端:

GOOS=darwin GOARCH=amd64 make release-client

生成linux客户端:

GOOS=linux GOARCH=amd64 make release-client

8、获取生成的客户端。

客户端在ngrok 的bin目录下。可以看到,我在这里生成了windows及mac版本的客户端,进入相应文件夹,下载客户端到本地电脑。

9、开启screen功能。以便查看相应日志,及切回到终端,达到后台执行的目的

screen -S aaa
screen -ls   ;    找到screen会话

切换到相应的会话。

10、开启ngrok服务程序,命令如下:

./ngrokd -domain="snibean.online" -httpAddr=":8099" -httpsAddr=":443" -tunnelAddr=":8083"

可以看到这里http我使用的是8099 端口,https用的443端口。。tunnel使用8083端口。

11、为服务器开放以上端口。我这里系统是centos7,命令如下:

firewall-cmd --zone=public --add-port=8099/tcp --permanent  

firewall-cmd --zone=public --add-port=443/tcp --permanent  

firewall-cmd --zone=public --add-port=8083/tcp --permanent  

#由于本人要使用到远程桌面连接。故开放3389端口

firewall-cmd --zone=public --add-port=3389/tcp --permanent  

12、新建文件ngrok.cfg 内容如下:

server_addr: "域名地址:8083"
trust_host_root_certs: false
tunnels:
    http:
        subdomain: "aaa"
        proto:
            http: "8082"
    https:
        subdomain: "bbbb"
        proto:
            https: "443"
    mstsc:
        remote_port: 3389
        proto:
            tcp: "127.0.0.1:3389"

注意,内容里面不能使用tab来进行对齐 ,只能使用空格。我这里只保留了mstsc做远程桌面连接使用。

server_addr: "域名:8083"
trust_host_root_certs: false
tunnels:
   mstsc:
        remote_port: 3389      
        proto:
         tcp: "127.0.0.1:3389"

保存后将此文件与下载的客户端文件ngrok.exe放到同级目录。

13、运行客户端。

ngrok -config=ngrok.cfg start  mstsc

出现如下图所示则表示连接成功。

到此搭建完毕,即可以进行远程桌面连接。

输入:  域名地址:3389     以及用户名密码即可

14、新建start.bat文件,将以下内容加入到此文件后保存,即可以双击start.bat进行启动。

ngrok -config=ngrok.cfg start  mstsc
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值