背景
七层转发规则:可以配置 nginx HTTP/HTTPS 七层转发规则。 四层转发规则:nginx TCP:443 无法配置四层转发规则。
如果不想上传证书,但是 tcp+tls 加密传输数据,可以根据 tls 里的 SNI(server name indication) 获取 host,然后根据 host 来配置转发规则,drop 或者 redirect。
抓包
wireshark 转包监听 mac 本地的网卡 en0
然后 curl -v https://baidu.com 查看 ip 是 39.156.66.10:
查看 wireshark 里 SNI server 值,在 Client Hello 报文里,三次握手建联后第一个报文:
ip.addr == 39.156.66.10 and tcp.port in {443}