搭建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="jmps.cloudlinks.cn"

cd ngrok 

export NGROK_DOMAIN="jmps.cloudlinks.cn"

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 -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

你可能感兴趣的:(搭建Ngrok服务器实现内网的计算机实现远程桌面)