{"repo":"XIU2/SNIProxy","free":true,"listed":false,"github":"https://github.com/XIU2/SNIProxy","clone":"git clone https://github.com/XIU2/SNIProxy.git","description":"🧷 自用的简单 SNIProxy（常用于网站负载均衡、基于域名(SNI)的端口转发等","language":"Go","stars":537,"topics":["go","golang","http","sniproxy"],"license":"GPL-3.0","category":"dev-tools","readme_excerpt":"XIU2/SNIProxy 🧷 自用的一个功能很简单的 SNIProxy 顺便分享出来给有同样需求的人，用得上的话可以 点个⭐支持下 SNIProxy 是一个根据传入的域名(SNI)来自动转发数据至该域名源服务器的工具，常用于网站多服务器 负载均衡 ，而且因为是通过明文的 SNI 来获取目标域名，因此 不需要 SSL 解密再加密 ，转发速度和效率自然也大大提高了。 [!IMPORTANT] 注意！SNIProxy 只是起到一个 端口转发、负载均衡 的作用。简单的来说就是 SNIProxy 收到的所有数据都会被 原封不动 的转发给目标源服务器（包括明文的 SNI 域名信息，任何第三方例如墙依然能直接看到），因此 SNIProxy 是 无法用来番墙 的（否则就是脱裤子放屁 —— 多此一举 ！ 毕竟墙早就可以 域名(SNI)阻断 了）。 分享我其他开源项目： TrackersList.com - 全网热门 BT Tracker 列表！有效提高 BT 下载速度 CloudflareSpeedTest - 🌩「自选优选 IP」测试 Cloudflare CDN 延迟和速度，获取最快 IP UserScript - 🐵 Github 高速下载、知乎增强、自动无缝翻页、护眼模式 等十几个 油猴脚本 \\# 软件介绍 - 支持 全平台、全系统（Go 语言特性） - 支持 Socks5 前置代理（比如可以再套一层 WARP，这样 SNIProxy 的出口 IP 就是 Cloudflare 的了） - 支持 允许转发所有域名 或 仅允许转发指定域名（包含域名自身及其所有子域名） - 支持 单独或同时监听及传输 IPv4、IPv6 流量 - 支持 将 HTTP 重定向为 HTTPS - 支持 HTTP/1.1、HTTP/2 传输协议 - 支持 根据明文 SNI(域名/主机名) 来自动转发流量到该域名的源服务器，无需加解密流量，无需 SSL 密钥或证书 [!WARNING] 注意！SNIProxy 仅为我个人自写自用， 可靠性、稳定性 等方面 不如专业的商业软件（如 Nginx、HAProxy） ，因此在正式的 生产环境下不建议使用本软件 ，如造成损失，根据 GPL-3.0 本项目无需承担责任（溜了溜了 [!TIP] ✅ 支持 HTTP/2 （当然源站本身也要支持 HTTP/2 ） - 虽然 HTTP/2 有个特性可以在单个 TCP 连接中复用多个域名，这看似会导致 SNIProxy 无法根据域名来正确转发流量，但好消息是现代浏览器只有在多个域名同时满足这些条件时才会复用连接： 解析到相同的 IP(服务器) + 使用相同的 TLS 证书（如通配符证书或包含多个域名的证书）+ 相同的端口（如 443） ，而对于这种情况是没问题的（或者说压根不需要特殊处理，程序只需要正常转发流量，浏览器和服务器会自行协商处理）。 [!NOTE] ❌ 不支持 HTTP/3 (QUIC) - 因为 HTTP/3 (QUIC) 改用了 UDP 协议传输，这和 TCP 协议是完全不同的，并且解析 SNI 的方式也需要大改。 SNIProxy 不支持 UDP 协议，也不打算去添加支持 ，因为这会使项目变得非常复杂（也超出了我的能力，毕竟我只是为了方便自己使用而边学边写的，代码精简到也才几百行罢了）。 SNIProxy 的工作流程大概如下： 1. 解析传入连接中的 TLS/SSL 握手消息（明文），以获取访客发送的 SNI 域名 信息。 2. 检查域名是否在允许列表中（或开启了 allow all","default_branch":null,"files":null,"tree":[],"storefront":"/r/XIU2","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/XIU2/SNIProxy/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}