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

# 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 ответ1

2

Я не думаю, что вы можете иметь диапазоны в конфигурации 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .