🎉🎉 wmproxy 0.2.5 发布,新增 websocket 代理,支持负载均衡,内网穿透
V0.2.5
已实现websocket代理, 可以快速的将websocket流量转成tcp流量
完善命令行模式, 启动将更加简单
wmproxy
已用Rust
实现http/https
代理, socks5
代理, 反向代理, 负载均衡, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket
代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子
📦 安装 & 🏃 使用
安装
cargo install wmproxy
OR
git clone https://github.com/tickbh/wmproxy cd wmproxy cargo install --path .
docker pull dreamwhat/wmproxy docker run -p 82:82 -p 8090:8090 -p 127.0.0.1:8837:8837 --name proxy_bash dreamwhat/wmproxy /bin/./wmproxy proxy -b 0.0.0.0:8090
使用
默认端口为8090端口,默认监听地址为127.0.0.1
# 直接通用默认参数 wmproxy proxy # 设置账号密码 wmproxy proxy -b 0.0.0.0:8090 --user wmproxy --pass wmproxy # 其它指令 wmproxy --help #配置文件版启动 wmproxy config -c config/client.toml
启动二级代理
- 在本地启动代理
wmproxy proxy -b 127.0.0.1:8090 -S 127.0.0.1:8091 --ts
或者
wmproxy config -c config/client.toml
配置文件如下:
[proxy] # 连接服务端地址 #server = "127.0.0.1:8091" bind_addr = "0.0.0.0:8090" flag = "http https socks5" # 连接服务端是否加密 ts = true two_way_tls = true # username = "wmproxy" # password = "wmproxy" # 内网映射配置的数组 #将localhost的域名转发到本地的127.0.0.1:8080 [[proxy.mappings]] name = "web" mode = "http" local_addr = "127.0.0.1:8080" domain = "localhost" headers = [ "proxy x-forward-for {client_ip}", "proxy + from $url", "+ last-modified 'from proxy'", "- etag", ] #将tcp的流量无条件转到127.0.0.1:8080 [[proxy.mappings]] name = "tcp" mode = "tcp" local_addr = "127.0.0.1:8080" domain = ""
因为纯转发,所以在当前节点设置账号密码没有意义-S
表示连接到的二级代理地址,有该参数则表示是中转代理,否则是末端代理。--ts
表示连接父级代理的时候需要用加密的方式链接
- 在远程启动代理
wmproxy proxy --user proxy --pass proxy -b 0.0.0.0:8091 --tc
或者
wmproxy config -c config/server.toml
配置文件如下:
[proxy] #绑定的ip地址 bind_addr = "127.0.0.1:8091" #代理支持的功能,1为http,2为https,4为socks5 # flag = "7" username = "wmproxy" password = "wmproxy" #内网映射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 = # 双向认证 two_way_tls = true #接收客户端是为是加密客户端 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 支持
反向代理
- 静态文件服务器
- 被动健康检查
- 主动健康检查
- 配置热加载
- 负载均衡
- 四层TCP负载
- 四层UDP负载
- 流量控制
- websocket转发
基础能力
- 日志
扩展能力
- 请求限速(limit_req)
- 修改 HTTP 请求 Header
- 支持 HTTP2 的内网穿透
- 控制微端
- try_paths
- tcp转websocket
- websocket转tcp

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OurBMC 首个版本 1.0.0 正式发布!
2023 年 12 月 29 日,经过社区开发者的共同努力,OurBMC 首个版本 1.0.0 正式发布。OurBMC 1.0.0 提供从 host 端到 BMC 端的全栈 BMC 技术实现,适配多种软硬件场景,并为开发者提供全面、高效的 BMC 全栈解决方案。 发布内容 OurBMC 1.0.0 发布内容包含了 bmc-uboot、bmc-linux、bmc-openbmc、bmc-web、host-UEFI 以及 host-linux 6 大模块。 bmc-uboot Bmc-uboot v1.0.0基于U-Boot v2019.04开发,在支持业界主流BMC芯片的基础上,使能飞腾腾珑E2000S BMC芯片,包括运行状态心跳灯、多级复位、pinctrl配置等功能。 bmc-linux Bmc-linux v1.0.0 基于openbmc Linux dev-5.15新增飞腾腾珑E2000S BMC功能支持,主要功能包括IPMI通信、虚拟串口、JPEG、USB vHub、JTAG。 bmc-openbmc Bmc-openbmc 基于 OpenBMC v2.11.0 完善 ARM ...
- 下一篇
Tianji v1.4.3 发布, 聚合网站流量分析、监控、服务器状态
Tianji:网站分析器 + 状态监控器 + 服务状态上报 动机 在我们对网站进行观察时。我们往往需要多个应用一起来组合使用。比如我们需要 ga/umami 等分析工具来查看 pvuv 以及各个页面的访问量,我们需要 uptime 监控器来检查服务器的网络质量与连通性,我们需要通关 prometheus 获取服务端上报的状态来检查服务器的质量。另外如果开发的是一个允许被开源部署的应用,我们往往还需要一个遥测系统来帮助我们对其他人的部署情况做一个最简单的信息收集。 我认为这些工具应当是为同一个目的而服务的,那么有没有一款应用能够轻量级的将这些常见的需求整合为一体呢?毕竟在大部分时候我们并不需要非常专业与深入的功能。但是我为了实现全面的监控却需要安装如此多的服务。 专精于一项这很好,如果我们是相关能力的专家我们需要这样的专业工具。但是对于大部分只有轻量级需求的用户而言,一个 all in one 的应用会更加方便与易于使用 v1.4.3 版本更新内容 增加了apprise推送,支持90多种推送方式 增加了监控页删除功能 增加了tcp端口监控 状态列表增加当前数值显示 修复自定义文本不适用于...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程