花生棒的原理&lcx.exe|earthworm模拟实现

花生棒的原理&lcx.exe|earthworm模拟实现

概览

最近为配合我那刚入手的小服务器,入手了一台花生棒,其实不是必须的,不论Windows还是Linux都有花生壳的客户端,入手一台也好,捣鼓一下吗。花生棒非常小,花生壳赠送两个端口和每月2G流量。花生棒的作用就是内置了花生壳客户端,想要更多的端口要花钱,想要流量还要花钱,想要实现远程开机也要花钱,但是不太贵,个人版都是几十,一百多一年。

原理与模拟实现

内网穿透

浏览器访问动态域名,服务器显示客户端地址是花生棒的地址。跟预想的一样。

lcx只有Windows的程序,earthworm有Linux,Windows,Mac版,但是好像不太稳定,结合我的美国一年20美元的搬瓦工VPS,实验成功了,过一会就不正常了,还不是过几个小时,十分钟以上就开始不正常了。大概的代码应该不太复杂,网上很多。lcx客户端部分,经netstat发现,lcx客户端开辟了(开始)两个随机端口,一个端口跟本机80建立连接,另一个随机端口跟远程公网ip主机的指定端口建立连接。服务器查看客户端的ip就是本机的ip。随着多刷新几次网页,连接本机80的,和连接远程10665的随机端口会大量增加。服务端lcx程序监听两个端口,指定端口,10665和10664,10665负责让客户端连接,10664负责让任意浏览器连接,或者被nginx反向代理指向。此时我用了nginx做反向代理。当访问指定域名时,浏览器连接vps80端口,此时nginx首先识别匹配目标host,发现匹配到的host是指向反向代理10664端口,数据经过vps80(nginx)-> 10664(lcxserver->10665)->10665->我本地小服务器windows Server 64939(lcxslave->64940)->IIS 80(数据本接受,处理,响应数据原路返回)。模拟花生棒的内网穿透实现。
自己可以实现内网穿透的功能了,美国的vps就是网速略慢,远程桌面,ssh都可以内网穿透,远程开机,需要一台小米路由器openwrt或树莓派,或者Arduino+网络模块。

Related Article