wmproxy 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业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
新一代国产 ORM 框架,sqltoy-orm 5.2.74 发版,GaussDB 完成全面生产验证!
开源地址: github:https://github.com/sagframe/sagacity-sqltoy gitee:https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 idea 中检索安装):https://github.com/threefish/sqltoy-idea-plugins sqltoy 脚手架项目:https://gitee.com/momoljw/sss-rbac-admin sqltoy lambda 项目:https://gitee.com/gzghde/sqltoy-plus 更新内容 1、修复gaussdb sequence主键策略下缺陷2、去除SqlUtil中针对sql中部分特殊符号全角转半角的处理,框架不做过多隐性处理3、分页优化增加了skip-zero-count="true"(默认false)参数,便于缓存中总记录为0时可重新查询获取count感谢@郁晨 反馈 sqltoy-orm 是 JPA 和超强查询的融合体 JPA 部分 类似 JPA 的对象化 CRUD、对象级联加载和新增、...
- 下一篇
CrateDB 5.4.5 发布,分布式 SQL 数据库
CrateDB 是一个分布式的 SQL 数据库,使得实时存储和分析大量的机器数据变得简单。CrateDB 提供了通常与 NoSQL 数据库相关的可扩展性和灵活性,最小的 CrateDB 集群可以轻松地每秒摄取数万条记录。这些数据可以在整个集群中实时地、临时地、并行地进行查询。 CrateDB 5.4.5现已正式发布,该版本更新内容如下: 修复 修复了一个问题,在使用 PostgreSQL wire protocol 的客户端中,如果一个查询在另一个查询挂起后被触发且未被使用,则会导致Receivedresultsettuples,butnofieldstructureforthem错误。 如果在另一个查询挂起且未使用后触发查询,则导致使用 PostgreSQL wire protocol 的客户端出现错误的问题。 修复了尝试在带有联接的查询的WHERE子句中使用相关联接时,导致Couldn'tcreateexecutionplanfromlogicalplan..错误的问题。例如: SELECT n.nspname AS schema, t.typname AS typenam...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路