Golang gRPC实现内网穿透

Python018

Golang gRPC实现内网穿透,第1张

内网穿透即是使用公网服务器作为代理,转发内网(如办公室、家里)的网络请求使其能够在外网中被访问到。

server端监听两个端口,一个用来和接收用户的http请求,一个监听gRPC客户端,和内网服务器进行通信;

client启动时连接server端;

当User请求server http端口时,将http进行阻塞,并将User请求内容通过gRPC发给client;

client将从server收到的请求发往本地的http服务;

client将从本地程序收到的http response通过gRPC发送给server;

server结束http阻塞,将从client收到的http response发给User。

github地址: https://github.com/itchin/proxy

最近在做一个内网穿透工具,是用C# Dotnet Core写的。 总担心性能不行,想参考下别人写的。 结果搜到很多GO语言的例子。 看了下Go语言的介绍,觉得确实是比较简单的语言。并且在并发上比较方便。于是,就开始学习Go语言,并用Go把内网穿透工具重新写了一下。

然后,又想用Go语言重写之前的DotnetCore的WebAPI,现在还在编写中,只是对比下两个语言差异。

然后看下 C#

实际上目前我也没有能力判断GO和C#哪个更好

对于没有公网 IP 的内网用户来说,远程管理或在外网访问内网机器上的服务一直是个大难题。这个时候,我们就要用到内网穿透来解决这个问题,随着信息化的飞速发展,内网穿透技术也有很多工具可以实现。那么,哪个才是最好用的呢?

Ngrok,相信很多的搞网络运维的都听过这么个大名鼎鼎的产品,但是设置的话没有网络基础将会相当的困难,看着教程都很吃力的那种,如果你和我一样,对网络技术不是很敏感,这个技术就算了。而且这服务器是国外的,速度也不是很快,不过是开源的这是亮点。

FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。自己组建的话需要外网一台有公网IP的设备,启动需要手动驱动客户端和服务端,这点比较麻烦,也是对技术有一定的要求。

花生棒,硬件小巧玲珑,携带方便,价格能接受,基础版配置完以后稳定性还可以,只是限流量,限带宽,这点不太友好

零遁的公网IP设备,价位也合适,能做域名和IP转发,也是限带宽的,但是不限流量,不限终端数,稳定性也可以,主要是可以做域名转发

对于几款内网穿透工具的介绍今天就到这里了,

哪个最好用,主要还是看你个人应用的需要和性比价来综合考量了,适合自己的,才能说是最好用的。