使用 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)。
正确的配置信息如下:
我们在隧道集中添加了一个叫 mstsc 的隧道,它将远程桌面使用的 3389 端口转发进来,使用 tcp 协议。(注意:该配置文件中应使用空格,而不应使用 tab,否则会报错。)
然后,我们就可以启动了。
使用命令 ngrok start mstsc 来指定隧道名启动,如果有多个隧道名,则以空格分隔。
启动成功的结果如下:
其中的 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
领取专属 10元无门槛券
私享最新 技术干货