您现在的位置是:首页 > 文章详情

wmproxy 0.1.2 发布,支持反向代理/正向代理/内网穿透等功能

日期:2023-10-27点击:100

已实现初步的反向代理支持,包含主动式健康检查,四层代理,七层代理,及配置的热加载等功能

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 

启动二级代理

  1. 在本地启动代理
 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表示连接父级代理的时候需要用加密的方式链接

  1. 在远程启动代理
 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开启客户端的证书认证信息, 另一种服务端配置了usernamepassword即需要客户端配置相同的用户密码才能启用认证信息, 两种方式可叠加使用或者单独使用。 配置添加如下:

 proxy:  two_way_tls: true  username: wmproxy  password: wmproxy 

🚥 路线图

socks5

  • IPV6 支持
  • SOCKS5 验证方式
    • NOAUTH
    • USERPASS
  • SOCKS5 Commands
    • CONNECT
    • UDP ASSOCIATE

http/https

  • IPV6 支持

内网穿透

  • Http 支持
  • Https 支持
  • Tcp 支持

反向代理

  • 静态文件服务器
  • 被动健康检查
  • 主动健康检查
  • 配置热加载
  • 负载均衡

支持功能

  • 修改 HTTP 请求 Header
  • 支持 HTTP2 的内网穿透
原文链接:https://www.oschina.net/news/263655/wmproxy-0-1-2-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章