TCP-SNI 抓包

18,041 阅读1分钟

背景

七层转发规则:可以配置 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:

image.png

查看 wireshark 里 SNI server 值,在 Client Hello 报文里,三次握手建联后第一个报文:

ip.addr == 39.156.66.10 and tcp.port in {443}

image.png

参考文献

zhuanlan.zhihu.com/p/547260827

nginx.org/en/docs/str…

nginx.org/en/docs/str…