搭建Ngrok服务器实现内网的计算机实现远程桌面

一、部署环境

1、linux外网系统服务器一台

2、一个域名,域名可以不备案,绑定到服务器上

二、搭建Ngrok服务器(开始进行服务器搭建)

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

[root@centos ~]#  yum -y install gcc

[root@centos ~]#  yum install git -y

[root@centos ~]#  yum install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386

2.安装上传下载插件、screen(使ngrok不间断运行)

[root@centos ~]#  yum install lrzsz -y

[root@centos ~]#  yum install screen -y

安装完之后查看一下git和go的版本

[root@centos ~]#  git --version     

git version 1.7.1

[root@centos ~]#  go version       

go version go1.9.4 linux/amd64


3.下载ngrok源码,并且切换到ngrok目录下

[root@centos ~]#  git clone https://github.com/inconshreveable/ngrok.git

[root@centos ~]#  cd ngrok

4.生成证书

我申请到的域名是example.com,所以第一行命令的hergua.club需要改成各位同学的域名,如果域名配置错误就会被拒绝连接

#这里要修改为自己的域名,         这↓里

[root@centos ~]#  export NGROK_DOMAIN="example.com"

[root@centos ~]#  openssl genrsa -out rootCA.key 2048

[root@centos ~]#  openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem

[root@centos ~]#  openssl genrsa -out device.key 2048

[root@centos ~]#  openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr

[root@centos ~]#  openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

5.提换证书

这里的命令每敲一行,都要输入“y”来进行确认,当初就是因为直接回车导致证书匹配不上

[root@centos ~]#  cp rootCA.pem assets/client/tls/ngrokroot.crt

[root@centos ~]#  cp device.crt assets/server/tls/snakeoil.crt

[root@centos ~]#  cp device.key assets/server/tls/snakeoil.key

6.编译ngrok的服务端

服务端就是跑在服务器上的ngrok程序,用来帮你映射转发数据的。

这里编译会慢一点

[root@centos ~]#  GOOS=linux GOARCH=amd64 make release-server

7.编译生成ngrok的客户端

这里生成的就是Windows可以直接运行的.exe文件,安装完成后需要把它从服务器上拿下来,然后在需要远程控制的电脑上运行

[root@centos ~]#  GOOS=windows GOARCH=amd64 make release-client

8.获取刚才生成的Windows客户端运行文件

键入获取文件的命令

[root@centos ~]#  cd bin/windows_amd64

[root@centos ~]#  sz ngrok.exe

如果断开连接或者切换过目录的同学请输入以下命令

[root@centos ~]#  sz  /root/ngrok/bin/windows_amd64/ngrok.exe

9.启动ngrok服务端

确保当前目录在ngrok下

开启screen功能,确保等下要进行的进程不会因为断开Xshell的连接就被杀死

下面的命令 name可以随意指定,不过也没什么必要改

命令输入之后,界面会被清空

[root@centos ~]#  screen -S name

开启ngrok服务端进程,这里的域名还是要改

[root@centos ~]#  sudo ./bin/ngrokd -domain="hergua.club" -httpAddr=":99" -httpsAddr=":999" -tunnelAddr=":9090"

这里我们指定80号端口为http的转发口,所有发向这个端口的http请求都会被转发到开启ngrok客户端的服务器上,一般挂网站的同学需要用到

8083号端口被我指定为ngrok的连接口,这个端口千万不能被关闭,有的服务器设置是只开放寻常端口也就是日常用到的80、443、22号端口

至此,linux服务端的ngrok配置就完成了,可以关闭Xshell了。我们开始配置本地的客户端

三、配置本地ngrok

1.将刚才下载下来的ngrok.exe,放到一个空文件夹当中,并在该文件夹中新建一个ngrok.cfg文件(可以新建一个记事本,然后把名字改成ngrok.cfg)。输入以下内容

server_addr 中的hergua.club需要改成各位同学自己的域名

[root@centos ~]#  server_addr: "example:9090"

[root@centos ~]#  trust_host_root_certs: false

tunnels:

  http:

    subdomain: "www"

    proto:

      http: "99"

  https:

    subdomain: "www"

    proto:

      https: "999"

  mstsc:

    remote_port: 3389

    proto:

      tcp: "127.0.0.1:3389"

2.同样在该目录下新建start.bat文件,用记事本打开,输入以下命令

[root@centos ~]#  ngrok -config=ngrok.cfg start http https mstsc

3.全部完成后,目录结构是这样的:

结构目录

双击start.bat,出现下图就说明搭建成功了

确保这台电脑的远程桌面已经开启了

只要黑框框窗口不关闭,那么就可以通过mstsc命令进行远程控制这台电脑了

11.进行远程控制

在另一台电脑上按 WIN+R键 输入mstsc,回车

输入你的域名,点击连接,就可以进行远程桌面了。

最后,附上远程连接截图一张

12.话外

一般的网络上行带宽只有2Mbps,实时速度差不多在250kb/s。所以只能进行一般的办公,要是想远程游戏,想都别想了除非你的上行带宽够高。不过一般高上行带宽是卖给服务商的,一般的家庭或学校网络远程桌面是不会多流畅的。

猜你喜欢

转载自blog.csdn.net/baidu_38432732/article/details/81436316