同一台机器上有多个客户端,它们将连接到同一个域。每个客户端都需要通过不同的端口。我可以多次定义条目,但有没有更简单的方法来列出可接受的连续端口范围?
# 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)。
(笔记:A端口号)
和:
接受 = [主机:]端口
接受指定地址的连接
我能想到的可能的替代解决方案(不是详尽的列表):
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.