使用ngrok从外网连接内网的远程桌面

使用ngrok从外网连接内网的远程桌面

使用ngrok从外网连接内网远程桌面

—— 独立观察员 2018.07.21

公司将内网地址代理到外网,使用的都是ngrok,之前一直没有研究,今天想将其用于远程桌面连接中,于是研究了一下,本文内容如标题所示。

1、ngrok简单介绍

ngrok 的官网为https://ngrok.com ,从上面可下载各系统的版本,windows版本的是一个命令行程序。ngrok authtoken 命令为绑定账号命令,这样就能在外网网页上看到你的代理状态,这一步是可选的,因为还有个内网监控网页。简单使用命令 ngrok http 80 就能将80端口代理出去了。

服务端使用的是ngrok官方的服务,你可以搭建自己的服务,编译自己的版本,这些内容不在本文讨论范围。

 

2、配置ngrok

参考《ngrok 在 Windows 上内网穿透(网站 + 远程桌面连接)配置》一文,文中有些部分实测不成功,本人亲测进行修正。

还记得绑定账号命令ngrok authtoken吗?当我执行完后,它在当前用户文件夹的 .ngrok2 文件夹中新建了一个 ngrok.yml 配置文件,并在里面写入了账号相关信息(authtoken 项):

 

这样的话,我们关于远程桌面连接的配置信息可以自己建个配置文件,或者就使用这个 ngrok.yml 配置文件。

上面提到的文章中,配置信息有错误,或者是不适用于当前版本(2.2.8)。

正确的配置信息如下:

authtoken: 5NShLN(手动马赛克)Jx44mq3NNem

 

tunnels:

   mstsc:

       remote_port: 3389    

       proto: tcp

        addr: “127.0.0.1:3389”

 

我们在隧道集中添加了一个叫 mstsc 的隧道,它将远程桌面使用的3389端口转发进来,使用tcp协议。(注意:该配置文件中应使用空格,而不应使用tab,否则会报错。)

 

然后,我们就可以启动了。

使用命令 ngrok start mstsc 来指定隧道名启动,如果有多个隧道名,则以空格分隔。

启动成功的结果如下:

ngrok by @inconshreveable                                      (Ctrl+C to quit)

 

Session Status               online

Account                          LIUHONG WEI (Plan: Free)

Version                            2.2.8

Region                            United States (us)

Web Interface              http://127.0.0.1:4040

Forwarding                   tcp://0.tcp.ngrok.io:13379 -> 127.0.0.1:3389

 

Connections                   ttl     opn     rt1     rt5     p50     p90

                                        0       0       0.00    0.00    0.00    0.00

 

其中的 Forwarding 就是转发地址,每次重新启动都会重新分配。

 

此时,我们将地址填入远程桌面(mstsc)中就能远程连接了:

 

如果想使用自定义配置文件,可在 ngrok.exe 目录新建文本文件 ngrok.cfg ,并将配置信息写入。注意:要在自定义配置中使用 TCP 隧道,则 authtoken 信息也要一起拷入。

然后就可以使用命令ngrok start –config ngrok.cfg mstsc 来启动 ngrok.cfg 配置文件中的mstsc 隧道。

也可以将这个命令写在 start.bat 批处理文件(新建的文本文件)中,以便快捷启动。

 

3、【附】开机自启

参考《Windows 添加自定义服务、批处理文件开机自启动方法_Wayne_WH_新浪博客​》

【Windows 添加自定义服务方法】:

1、使用 Windows 服务工具 instsrv.exe 与 srvany.exe:

参考:https://wenku.baidu.com/view/44a6e6f8941ea76e58fa045a.html

2、SC 命令创建、开启、配置、关闭服务:

参考:http://blog.csdn.net/moruna/article/details/9190733(《SC 命令 — 安装、开启、配置、关闭 windows 服务 bat 批处理》)

 

【批处理文件开机自启动方法】:

1、组策略中新建自启动批处理文件:

首先,你可以在一个地方建立一个 BAT 文件,比如在 D:\test.bat,BAT 内容为 mkdir r:\Safari。然后,打开 gpedit.msc,选择左侧”本地计算机策略”——”用户配置”——”Windows 设置”——”脚本 (登录 / 注销)”,再双击右侧 “登录”,在弹出来的窗口里找到”添加” 按钮,选择脚本路径就为 D:\test\bat,脚本参数不用填写,之后按确定就可以了。

 

2、将 bat 文件注册成为系统服务:

参考:http://blog.csdn.net/dengzhongmingabc/article/details/41908641

 

4、伸手党特供

使用批处理转 EXE 工具 Quick Batch File Compiler 制作了启动 start.bat 的 start.exe,按照《SC 命令 — 安装、开启、配置、关闭 windows 服务 bat 批处理》制作了添加、停止、删除服务的三个批处理文件(SC_Start.bat 中的exe文件路径需按需修改),最后的目录结构如下:

 

点击 SC_Start.bat 可添加服务到系统中:

 

最后说明:

1、服务管理的三个批处理文件需要以管理员身份运行。

2、打包文件中配置文件里的账号信息需替换成你自己的。

 

打包文件:http://dlgcy.qiniudn.com/zip/ngrok和远程桌面配置_dlgcy.zip

打印本文