脚本开发,脚本学习,辅助软件,各种工具软件

访问密码统一为:3158

查看: 2292|回复: 0

易语言+PHP外网转发,自定通讯协议

[复制链接]

108

主题

110

帖子

717

积分

专属

Rank: 1

积分
717
发表于 2020-5-8 15:59:12 | 显示全部楼层 |阅读模式

php采用workerman的gateway组件进行的编写。

易语言程序仅调用精易模块和鱼刺多线程模块,整个架构比较简单,只要稍微懂点易语言都可以操作。

结构介绍:

php放在公网服务器上进行服务(vps、独立服务器都可以,虚拟主机需要独立IP可以开端口的具体我没试过)

易语言放在nei网连接到php的服务端口,建立连接,发送验证binary包

除了验证binary包以外,其他的均为加密传输,无惧窃听拦截,就算拦截到验证binary包,不知道私钥(暂且称呼为私钥)一样无法破解数据,也可以选择不加密

加密算法有AES,DES,RC2,RC4等,自行选择也可以说这就是一个内网穿透框架


暂时仅预留了多内网客户端接口,均衡功能还未实现,最好只用一个内网客户端,否则所有的内网客户端会同时受到通知~~~


功能简介:

外网客户端的connect/receive/close 都会转发到内网服务端,内网服务端处理完后可以返回操作给外网服务端,支持send/sendAll/Close

映射通讯数据结构(示例中已处理沾包):

{byte isCrypt}{int Length}{Text Json}

搭建需求:

PHP端:VPS/服务器或可以开端口的虚拟主机,需要启用(pcntl、posix),支持 Windows && Linux,具体请见workerman开发文档

易语言端:无所谓,自定义自己的协yi就行了,什么http,ws等,都可以自行处理,只要是tcp就行了

肯定有人要问为什么不用swoole

本来是向用swoole的,但是尝试了一下后发现虽然效率很高,但是作为底层扩展,不是那么容易上手,文档也不是太全,增加了使用门槛,遇到bug的时候直接懵逼,作为映射服务端不太友好。so

上图:PHP仅需设置以下参数(不设置也可以直接用)

(一定要在防火墙开放端口,没有防火墙的当我没说)

U$WY%(1YO0~YGWXLC~FOAWV.png

示例里面采用的易语言自带客户组件,用户可以自行更换,有条件的可以自己重写协议

MV@B]HI8DYZE(]CZUH)X~KX.png

安装方法:

将 GatewayWorker 整个上传服务器(PHP版本必须≥7.0.0)

config.php => GatewayWorker/Applications/ephpSrv/config.php

Linux:切换至 GatewayWorker 目录,调试方式运行php startSrv.php start(守护模式为 php startSrv.php start -d,无日志输出)

Windows:执行 GatewayWorker 目录中的,startWinSrv.bat

具体停止和操作请看workerman文档 http://doc2.workerman.net/start-and-stop.html

易语言:

打开示例,按需求修改,运行,ok!

注意:

可能出现Connect 比 recv 后到达,close 可能会延迟到达或者比recv先到达,暂时没得整,有能力的自行解决一下

下载链接:https://t00y.com/file/20110282-442433763





上一篇:创建虚拟桌面, 让进程在指定桌面运行
下一篇:Edittxt文本编辑器开源
3Q4T网,编程学习交流基地。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表