wmproxy 0.2.0 发布,支持反向代理 / 正向代理 / 内网穿透等功能,
0.2.0功能:
1. 实现内存缓冲区, 防止内存增长过多
2. 实现流量控制, 可限制某一请求占用过多流量
已实现初步的反向代理支持,包含主动式健康检查,四层代理,七层代理,及配置的热加载等功能
wmproxy
将用 Rust
实现 http/https
代理,socks5
代理,反向代理,静态文件服务器,后续将实现 websocket
代理,内外网穿透等,会将实现过程分享出来,感兴趣的可以一起造个轮子
📦 安装 & 🏃 使用
安装
cargo install wmproxy
OR
git clone https://github.com/tickbh/wmproxy cd wmproxy cargo install --path .
使用
默认端口为 8090 端口,默认监听地址为 127.0.0.1
# 直接通用默认参数 wmproxy # 设置账号密码 wmproxy -b 0.0.0.0:8090 --user wmproxy --pass wmproxy # 其它指令 wmproxy --help #配置文件版启动 wmproxy -c config/client.yaml
启动二级代理
- 在本地启动代理
wmproxy -b 127.0.0.1 -p 8090 -S 127.0.0.1:8091 --ts
或者
wmproxy -c config/client.yaml
配置文件如下:
proxy: # 连接服务端地址 server: 127.0.0.1:8091 # 连接服务端是否加密 ts: true # 内网映射配置的数组 mappings: #将localhost的域名转发到本地的127.0.0.1:8080 - name: web mode: http local_addr: 127.0.0.1:8080 domain: localhost headers: - [proxy, +, x-forward-for, $client_ip] - [proxy, +, from, $url] - [+, key, value] - [-, etag] - [+, last-modified, aaaa] #将tcp的流量无条件转到127.0.0.1:8080 - name: tcp mode: tcp local_addr: 127.0.0.1:8080 domain:
因为纯转发,所以在当前节点设置账号密码没有意义 -S
表示连接到的二级代理地址,有该参数则表示是中转代理,否则是末端代理。--ts
表示连接父级代理的时候需要用加密的方式链接
- 在远程启动代理
wmproxy --user proxy --pass proxy -b 0.0.0.0 -p 8091 --tc
或者
wmproxy -c config/server.yaml
配置文件如下:
proxy: #绑定的ip地址 bind_addr: 127.0.0.1:8091 #代理支持的功能,1为http,2为https,4为socks5 flag: 7 #内网映射http绑定地址 map_http_bind: 127.0.0.1:8001 #内网映射tcp绑定地址 map_tcp_bind: 127.0.0.1:8002 #内网映射https绑定地址 map_https_bind: 127.0.0.1:8003 #内网映射的公钥证书,为空则是默认证书 map_cert: #内网映射的私钥证书,为空则是默认证书 map_key: #接收客户端是为是加密客户端 tc: true #当前服务模式,server为服务端,client为客户端 mode: server
--tc
表示接收子级代理的时候需要用加密的方式链接,可以 --cert
指定证书的公钥,--key
指定证书的私钥,--domain
指定证书的域名,如果不指定,则默认用自带的证书参数
至此通过代理访问的,我们已经没有办法得到真正的请求地址,只能得到代理发起的请求
代理间的认证
目前提供了两种认证双式,
two_way_tls
开启客户端的证书认证信息,另一种服务端配置了username
和password
即需要客户端配置相同的用户密码才能启用认证信息,两种方式可叠加使用或者单独使用。 配置添加如下:
proxy: two_way_tls: true username: wmproxy password: wmproxy
🚥 路线图
socks5
- IPV6 支持
SOCKS5
验证方式NOAUTH
USERPASS
SOCKS5
CommandsCONNECT
UDP ASSOCIATE
http/https
- IPV6 支持
内网穿透
- Http 支持
- Https 支持
- Tcp 支持
反向代理
- 静态文件服务器
- 被动健康检查
- 主动健康检查
- 配置热加载
- 负载均衡
支持功能
- 修改 HTTP 请求 Header
- 支持 HTTP2 的内网穿透

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
NativeScript 8.6.1 发布,跨平台原生应用框架
NativeScript 8.6.1现已发布。NativeScript 使用户能够直接从 JavaScript 访问native API。目前,该框架为丰富的移动开发提供了 iOS 和 Android 运行时,并可用于多种不同的用例。 Bug Fixes android:防止被破坏的对话框 rehydration(#10414)(7563549) core:box-shadow“none”处理(#10405)(c23695c) core:字体变化设置解析器无效轴 (#10427) (0847855) core:页面框架引用未在本机视图处理中取消设置(#10417)(22c21b7) css:防止“unset”和“inset”上的速记解析错误(#10424)(d70b48b) ios:添加/删除可重用视图的阴影(#10409)(ee87b52) ios:视图处理期间“undefined”的属性掩码(#10404)(212d086) ios:平移变换后的阴影位置(#10413)(c78ea79) Features android:允许 shared element转换与 ListView/...
- 下一篇
Arm 投资树莓派
Arm 宣布已对树莓派 (Raspberry Pi) 进行战略投资,并收购了后者的少部分股权,进一步扩大两家公司之间的长期合作伙伴关系,携手为物联网开发者社区提供关键解决方案。 Arm 表示,这项投资进一步巩固了自 2008 年开始的合作伙伴关系,并见证了许多基于 Arm 的热门树莓派产品的发布,而树莓派最新一代旗舰产品 Raspberry Pi 5 已于 10 月底上市。 Arm 物联网业务线高级副总裁兼总经理 Paul Williamson 表示:“随着边缘和端点人工智能应用的快速增长,基于 Arm 的平台(如树莓派)对于推动全球高性能物联网设备的采用至关重要,因为它们使开发人员能够更快、更轻松地进行创新。这项战略投资进一步证明了我们对开发者社区的持续承诺,以及我们与树莓派的合作关系。” 树莓派首席执行官 Eben Upton 表示:Arm 技术一直是我们创建的平台的核心,而这项投资是我们长期合作关系的重要里程碑。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果