Golang库MR2实现内网穿透

本文最后更新于:2021年9月29日 下午

本文主要针对如何使用MR2实现内网穿透功能进行一个案例演示。

如果在坐的还有不知道内网穿透是什么的请自行百度,在本文中不做过多的说明。

首先放出官方文档说明,有兴趣的小伙伴可以自己看看

https://github.com/txthinking/mr2/blob/master/README_ZH.md

准备工作

1、一台公网服务器(相信做为程序员的你肯定是有的)

2、开启允许远程连接功能 windows设置允许远程连接

开始

从GitHub上下载编译好的启动程序 https://github.com/txthinking/mr2/releases/tag/v20210401

不同的平台下载不同的包

Windows平台 mr2_windows_amd64.exe

linux64位平台 mr2_linux_amd64

一、服务端配置

Linux服务器操作:

将linux64位的执行

启动服务,配置端口和密码

此处的端口和和密码可以自己随意设置

示例如下:

1
mr2_linux_amd64 server -l :8098 -p pwd

二、客户端和服务端建立连接

Windows客户端操作:

cmd命令行启动

-s 服务器IP:开启的端口号

-p 服务端设置的密码

-P 服务端打开的远程连接端口号

-c 本地IP:3389【3389端口是Windows远程桌面端口号】

示例如下:

1
mr2.exe client -s 服务器Ip:8098 -p pwd  -P 3390 -c 127.0.0.1:3389

将本地的端口3389(映射到公网端口3390)

打包Windows服务

安装

通过注册Windows服务的方式来防止不小心关闭,这里推荐大家使用工具 nssm

nssm可以参考这篇文档 nssm 在windows上部署服务

cmd 当前目录,执行命令

1
nssm.exe install mr2.exe

image-20210729162253490

配置服务信息

image-20210729163046499

卸载

卸载同样简单

cmd 当前目录,执行命令

1
nssm.exe remove mr2.exe

三、远程连接

3390对应上述**-P 3390**

image-20210729161406491

连接的远程服务器需要设置密码,这一步大家不要忘记了哦。