mholt/caddy-l4

How can I handle port ranges?

开放

#299 创建于 2025年3月15日

 (2 条评论) (1 个反应) (0 位负责人)Go (118 个派生)github user discovery
enhancementhelp wanted

仓库指标

星标
 (1,753 个星标)
PR 合并指标
 (平均合并 14天 19小时) (30 天内合并 7 个 PR)

描述

I am attempting to configure an IRC bouncer (via ZNC) to sit behind a Caddy reverse-proxy while supporting DCC via the port-range below. Unfortunately it seems that either this is not supported or I have misconfigured my Caddyfile somehow and I am not sure how to resolve it.

Configs I have attempted:

{
    layer4 {
      # For SSL/TLS IRC connections (port 6697):
      0.0.0.0:6697 {
        route {
          tls            # Terminate TLS here
          proxy {
            proxy_protocol v1
            upstream znc:6697
          }
        }
      }

      # For plain IRC connections (port 6667):
      0.0.0.0:6667 {
        route {
          proxy_protocol
          proxy {
            proxy_protocol v2
            upstream znc:6667
          }
        }
      }

      # For the DCC port range:
      0.0.0.0:30000-31000 { <-------- this causes the error
        route {
          proxy_protocol
          proxy {
            proxy_protocol v2
            upstream znc:30000-31000
          }
        }
      }
    }
}
{
  layer4 {
    # For SSL/TLS IRC connections (port 6697):
    0.0.0.0:6697 {
      route {
        tls {
          tls_wrapping
        }           # Terminate TLS here
        reverse_proxy znc:6697 {
          proxy_protocol v2
        }
      }
    }
  
    # For plain IRC connections (port 6667):
    0.0.0.0:6667 {
      route {
        reverse_proxy znc:6667 {
          proxy_protocol v2
        }
      }
    }
  
    # For the DCC port range:
    0.0.0.0:30000-31000 {
      route {
        reverse_proxy znc:30000-31000 {
          proxy_protocol v2
        }
      }
    }
  }
}

Error message:

Error: loading initial config: loading new config: loading layer4 app module: provision layer4: server 'srv2': route 0: 
position 1: loading module 'proxy': provision layer4.handlers.proxy: upstream 0: znc:30000-31000: port ranges not currently supported

贡献者指南