分类:笔记 日期:2021-04-02 作者:caocaofff 浏览:1530
该方法目前仅适用于中转tls的TCP流量。
服务器443端口链接获取到tls请求的sni值(也就是域名),赋值给$ssl_preread_server_name变量,然后又直接通过TCP转发到$ssl_preread_server_name对于的服务器443端口
stream {
map $ssl_preread_server_name $targetBackend {
yourdomian 127.0.0.1:8443;
default $ssl_preread_server_name:443;
}
server {
listen 443;
proxy_connect_timeout 10s;
proxy_timeout 10s;
resolver 1.1.1.1;
proxy_pass $targetBackend;
ssl_preread on;
}
}
使用场景:
看实际转发的目的服务器,如果是别的机器,隐藏主机真实ip,隐藏主机ip与域名之间的关系,避免被全网扫描探测。当然还能加一些实际的访问限制规则,减少一部分自动探测的攻击等。
即便是转发到本机,也是有同样的防御作用。看具体的设置策略了。
比较常规的使用场景,使用docker部署不同的服务,服务需要对外的443可以映射到127.0.0.1的其他端口,避免这部分端口的直接对外暴露。然后通过4层转发 对不同域名的数据进行分派。
CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接