探索 Project Conncept:Caddy 的 TCP/UDP 应用层

探索 Project Conncept:Caddy 的 TCP/UDP 应用层

caddy-l4Layer 4 (TCP/UDP) app for Caddy项目地址:https://gitcode.com/gh_mirrors/ca/caddy-l4

项目介绍

Project Conncept 是一个为 Caddy 设计的实验性第 4 层应用。它允许基于连接属性或数据流开头的原始 TCP/UDP 连接进行可组合的处理。通过这个应用,你可以监听套接字/端口,并实现各种逻辑,例如:

  • 将所有输入回显给客户端。
  • 将所有原始字节代理到指定地址。
  • 如果连接是 TLS,终止 TLS 后将所有字节代理到 :5000。
  • 终止 TLS;如果是 HTTP,代理到 localhost:80;否则回显。
  • 如果连接是 TLS,不终止直接代理到 :443;如果是 HTTP,代理到 :80;如果是 SSH,代理到 :22。
  • 如果 HTTP Host 是 example.com 或 TLS ServerName 是 example.com,则代理到 192.168.0.4。
  • 阻止来自特定 IP 范围的连接。
  • 限制数据流以模拟慢速连接。

项目技术分析

Project Conncept 作为一个 Caddy 应用,可以与其他 Caddy 应用如 HTTP 服务器或 TLS 证书管理器协同工作。它支持 Caddyfile 和 JSON 配置,提供了丰富的匹配器和处理器,使得配置灵活且强大。

匹配器

  • layer4.matchers.clock - 根据连接时间匹配。
  • layer4.matchers.http - 匹配以 HTTP 请求开始的连接。
  • layer4.matchers.local_ip - 根据本地 IP 匹配。
  • layer4.matchers.not - 匹配未被内部匹配器集匹配的连接。
  • layer4.matchers.postgres - 匹配类似 Postgres 的连接。
  • layer4.matchers.proxy_protocol - 匹配以 HAProxy 代理协议开始的连接。
  • layer4.matchers.rdp - 匹配类似 RDP 的连接。
  • layer4.matchers.regexp - 匹配第一个数据包字节与正则表达式匹配的连接。
  • layer4.matchers.remote_ip - 根据远程 IP 匹配。
  • layer4.matchers.socks4 - 匹配类似 SOCKSv4 的连接。
  • layer4.matchers.socks5 - 匹配类似 SOCKSv5 的连接。
  • layer4.matchers.ssh - 匹配类似 SSH 的连接。
  • layer4.matchers.tls - 匹配以 TLS 握手开始的连接。
  • layer4.matchers.xmpp - 匹配类似 XMPP 的连接。

处理器

  • layer4.handlers.echo - 回显服务器。
  • layer4.handlers.proxy - 强大的第 4 层代理,支持多个上游(负载均衡和健康检查)和建立新的 TLS 连接到后端。
  • layer4.handlers.proxy_protocol - 接收 HAProxy 代理协议。
  • layer4.handlers.socks5 - 处理 SOCKSv5 代理协议连接。
  • layer4.handlers.subroute - 实现递归逻辑,允许匹配和处理已匹配的连接。
  • layer4.handlers.tee - 将连接处理分支到并发处理链。
  • layer4.handlers.throttle - 限制连接以模拟慢速和延迟。
  • layer4.handlers.tls - TLS 终止。

项目及技术应用场景

Project Conncept 适用于需要复杂网络流量处理的场景,例如:

  • 多协议代理和负载均衡。
  • 安全通信(TLS 终止和代理)。
  • 特定协议的流量过滤和路由。
  • 模拟网络条件(如慢速连接)进行测试。

项目特点

  • 灵活性:支持多种匹配器和处理器,可以根据需求灵活配置。
  • 集成性:作为 Caddy 应用,可以与其他 Caddy 模块无缝集成。
  • 实验性:虽然功能强大,但仍处于开发阶段,可能会有重大变更。
  • 易用性:支持 Caddyfile 和 JSON 配置,配置示例丰富,易于上手。

结语

**Project Con

caddy-l4Layer 4 (TCP/UDP) app for Caddy项目地址:https://gitcode.com/gh_mirrors/ca/caddy-l4

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯梦姬Eddie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值