Есть ли способ определить диапазон портов в Stunnel?

Есть ли способ определить диапазон портов в Stunnel?

У меня есть несколько клиентов на одном ящике, которые будут подключаться к одному домену. Каждому клиенту нужно пройти через другой порт. Я могу просто определить записи несколько раз, но есть ли более простой способ перечислить принятый последовательный диапазон портов?

# 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

решение1

Я не думаю, что в stunnelконфигурации можно иметь диапазоны.

stunnelдокументация наhttps://www.stunnel.org/static/stunnel.htmlговорит:

Параметр адреса опции может быть:

Номер порта.

Пара IP-адреса (IPv4, IPv6 или доменное имя) и номера порта, разделенных двоеточием.

Путь сокета Unix (только Unix).

(примечание:аномер порта)

и:

принять = [ХОСТ:]ПОРТ

принимать соединения по указанному адресу

Возможные альтернативные решения, которые я могу придумать (список не исчерпывающий):

  • автоматически генерировать stunnelконфигурацию из какого-либо другого источника с помощью любой системы шаблонов (что позволит простой команде цикла генерировать каждый оператор из диапазона портов),
  • определить один порт и использовать его iptablesдля переадресации каждого клиентского порта только на тот, который определен в stunnel; или redirкоманду (https://linux.die.net/man/1/redir)
  • использовать другое программное обеспечение, например, HAProxyего bindопция специально разрешает диапазоны портов: bind [<address>]:<port_range> [, ...] [param*]и:<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.

Связанный контент