Skip to content

xxxsen/sniproxy

Repository files navigation

sniproxy

简介

  • 一个简单的 SNI 代理:按域名白名单转发 TCP 流量,解析可走 DoT,支持监听端/转发端的 PROXY protocol。

快速开始

  • 准备配置文件 config.json(见下例)
  • 启动:go run ./cmd -config ./config.json

配置示例

{
  "bind": ":8443",
  "proxy_protocol": false,
  "dial_timeout": 10,
  "detect_timeout": 10,
  "domain_rule": [
    { "rule": "suffix:google.com", "resolver": "dot://dns10.quad9.net", "tls_port_rewrite": 443 },
    { "rule": "full:svc.example.com", "resolver": "system://", "proxy_protocol": true }
  ]
}

字段速查

  • 顶层:bindproxy_protocoldial_timeoutdetect_timeoutdomain_rule
  • 规则:ruleresolverdomain_rewritehttp_port_rewritetls_port_rewriteproxy_protocol

Resolver

  • system://udp://host[:53]tcp://host[:53]dot://host[:853]
  • 可选参数:timeoutenable_ipv4enable_ipv6cache_ttlcache_size

规则类型

  • fullsuffixkeywordregexp(不写类型时默认 suffix

注意事项

  • 仅识别 TLS 与 HTTP/1.x
  • DoT 建议使用主机名(避免证书校验问题)
  • 启用监听端 PROXY 后限制上游来源(防止伪造)

测试

go test ./resolver -v

About

sni代理

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published