mholt/caddy-l4

How can I handle port ranges?

Ouverte

#299 ouverte le 15 mars 2025

 (2 commentaires) (1 réaction) (0 personne assignée)Go (114 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (1 738 étoiles)
Métriques de merge PR
 (Merge moyen 14j 19h) (7 PRs mergées en 30 j)

Description

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

Guide contributeur