Ich habe mehrere Clients auf derselben Box, die eine Verbindung zur gleichen Domäne herstellen. Jeder Client muss über einen anderen Port gehen. Ich kann die Einträge einfach mehrfach definieren, aber gibt es eine einfachere Möglichkeit, einen akzeptierten aufeinanderfolgenden Portbereich aufzulisten?
# stunnel.conf
[client-1]
client = yes
accept = 127.0.0.1:5098
connect = target-domain.com:443
[client-2]
client = yes
accept = 127.0.0.1:5099
connect = target-domain.com:443
[client-3]
client = yes
accept = 127.0.0.1:5100
connect = target-domain.com:443
[client-4]
client = yes
accept = 127.0.0.1:5101
connect = target-domain.com:443
[client-5]
client = yes
accept = 127.0.0.1:5102
connect = target-domain.com:443
Antwort1
Ich glaube nicht, dass Sie Bereiche in stunnel
der Konfiguration haben können.
stunnel
Dokumentation unterhttps://www.stunnel.org/static/stunnel.htmlsagt:
Ein Adressparameter einer Option kann entweder sein:
Eine Portnummer.
Ein durch Doppelpunkte getrenntes Paar aus IP-Adresse (entweder IPv4, IPv6 oder Domänenname) und Portnummer.
Ein Unix-Socket-Pfad (nur Unix).
(Notiz:APort-Nummer)
Und:
akzeptieren = [HOST:]PORT
Verbindungen an angegebene Adresse akzeptieren
Mögliche Alternativlösungen, die mir einfallen (keine vollständige Liste):
stunnel
die Konfiguration automatisch aus einer anderen Quelle mit einem beliebigen Vorlagensystem generieren (das einen einfachen Loop-Befehl zum Generieren jeder Anweisung aus einem Portbereich ermöglicht),- Definieren Sie einen einzelnen Port und verwenden Sie ihn,
iptables
um jeden Client-Port an den einzigen in definierten Port weiterzuleitenstunnel
; oder denredir
Befehl (https://linux.die.net/man/1/redir) - Verwenden Sie andere Software,
HAProxy
da derenbind
Option ausdrücklich Portbereiche zulässt:bind [<address>]:<port_range> [, ...] [param*]
und:<port_range> is either a unique TCP port, or a port range for which the proxy will accept connections for the IP address specified above.