侧边栏壁纸
  • 累计撰写 64 篇文章
  • 累计创建 46 个标签
  • 累计收到 93 条评论

目 录CONTENT

文章目录

NGINX监听443,使用stream的SNI分流*RAY的REALITY+VISION.md

草莓牛奶
2023-03-05 / 7 评论 / 0 点赞 / 2,533 阅读 / 507 字 / 正在检测是否收录...
温馨提示:
「博客文章out of date 会及时更新,无特殊说明仍然有效,欢迎指正内容中的错误」

存在原因:

  1. 一些客户端不支持reality或vision,因此需要回落至其他协议
  2. 某些VPS线路比较垃圾、或IP已经被墙,需要CDN才能勉强续命
  3. 同时开启reality的tcp、h2、grpc

缺点:

  1. 在一个VPS上同时使用reality和其他协议~~,真把墙当傻子是吧~~

中庸解决办法:

  1. 没有reality或vision的客户端,一律使用套CDN的节点

一、修改NGINX配置

核心思路:

Nginx前置监听443端口,使用SNI分流自己的域名和reality的域名

以www.vmware.com为例,其使用的证书为.vmware.com,因此可以根据SNI实现分流*

stream {
	map $ssl_preread_server_name  $name {
		#只要配置了hostnames才能使用通配符
        hostnames;
        
        *.example.com				vision;
        podcasts.vmware.com			reality_h2;
        customerconnect.vmware.com	reality_grpc;
        default						reality_tcp;
	}
	upstream reality_grpc {
		server 127.0.0.1:6443;
	}
	upstream reality_h2 {
		server 127.0.0.1:7443;
	}
	upstream reality_tcp {
		server 127.0.0.1:8443;
	}
	upstream vision {
		server 127.0.0.1:2096;
	}

	server {
        listen		443;
        listen [::]:443;

        proxy_pass 		$name;
        ssl_preread 	on;
        #传递真实IP
        #proxy_protocol on;	
	}
}

注:

  1. 不配置hostnames,可以用~^(.*|)+example\.com$ 匹配example.com结尾的所有一级与子域名
  2. reality+tcp支持回落至h2或grpc的一个,不支持同时回落

二、修改XRAY配置

以下仅在取消注释proxy_protocol on时修改!!!!!!!!!

传输方式 | Project X

①(tcp)在配置文件中加入"tcpSettings": {"acceptProxyProtocol": true}

{
  "network": "tcp",
  "tcpSettings": {"acceptProxyProtocol": true},
  "security": "reality", //"security": "tls"
   …………
}

②(h2和grpc)在配置文件中加入"sockopt": {"acceptProxyProtocol": true}

"streamSettings": {
  "network": "h2",
  //"network": "grpc",
  "sockopt": {"acceptProxyProtocol": true}
}

注:建议将监听地址改为"listen": "127.0.0.1"

四、其他

ssh(sftp)和https共用同一端口【Nginx根据TLS、Alpn、SNI分流】

可以尝试使用ALPN进行分流哦!

0

评论区