Lcx绕过防火墙限制实现双内网互联

lcx双内网互联的实现,可以解决两个同处于内网的机器的联通问题,但前提是有一台处于外网且双内网都能访问拥有独立IP的服务器。

简单的来说,这台公网的服务器就是负责将两个内网的机器做桥接的。在这里我使用lcx在公网的机器上侦听两个端口,所有通往端口1的请求都会原封不动的发往端口2,反之亦然。这样我只要能够让两台内网的机器都连接到该公网服务器即可实现通信。

那又如何将这两台内网机器互联呢?

基于LCX的实现方法

因为两台机器的互联往往有一个主动方和被动方,在这里lcx可以很容易的实现由主动方连接被动方的模式的连接,来实现内网互联。

假设现在我希望使用主机A连接主机B的3389端口,而这两台服务器处于不同的内网,那该如何实现呢?假设此时拥有一台公网主机为C

思路:

在主机B做一个转发,将主机B的3389端口转发到主机C,其实这样描述是不够准确的。因为实际的操作是,先建立一个与主机C 的连接,然后侦听这条链路,如果有请求过来,那将将请求发给B的3389端口。

在主机A要做的转发:

1)其实此时如果不是为了与本机软件通信,完全不需要再次转发,要连接主机B的3389端口,此时我只要连接主机C的侦听端口2即可。

2)当然也是可以再用lcx将端口转发回本机的,可以一端连接主机C,一端在本机侦听一个端口。这样我只要连接本机localhost端口即可(其实我认为这一步没有很大必要)

在主机C要做的转发:

侦听两个端口,将端口1的数据转发到端口2,反之亦然。

实际应用场景:

这里是在做一个内网服务器的安全测试的时候用到的,基本的应用场景如上述思路。为了能够在自己机构的内网访问另一个机构的内网,所采用的一种方法。当然,被访问的内网服务器是需要跑一个后台进程的,就是不断的通过域名连接公网主机,如果对应主机上线,端口开放则建立一个连接,否则不断检测。这样就可以在任何时候希望连接内网的时候将域名解析到拥有公网IP的机器上,并侦听对应的端口,实现内网访问内网。

除了lcx的另外一种比较好的实现思路是基于SSH的,可以使用-R参数来设置,但是在使用的过程中相关设置稍微复杂一下,尤其是需要修改ssh的配置文件,开启GatewayPort,和设置Forword,所以实现起来不如直接使用lcx来的方便;lcx的安全性是不容置疑的,它只是实现了一个TCP数据包的转发,所以安全性主要取决于原来的正常链路的安全性。比如你用的是远程桌面,那么安全性也就是由远程桌面的相关协议来决定的。

LCX源代码:http://hua.219.me/posts/1713


你可能感兴趣的:(Lcx绕过防火墙限制实现双内网互联)