使用nginx反向代理trojan服务(docker部署)搭建教程

之前的文章写的太简略,更新下增加一些解释

第一版描述太难以理解,今天有空就在后面又增加了一个简单易懂版的。

当使用 Nginx 转发 Trojan 流量时,不能直接基于域名在 7 层(应用层)进行代理和转发数据(就是说不能通过配置server_name来转发流量),这是由于 Trojan 的流量是加密的,并且不符合标准的 HTTP 协议,Nginx 无法在 7 层解析和处理这些流量。因此,必须通过 ssl_preread 模块在 4 层进行代理和转发,这样才能根据 SNI 信息(即客户端在 TLS 握手过程中提供的域名)来决定将流量转发到哪个后端服务。

具体原因和方法总结如下:

  1. 4 层代理 vs. 7 层代理

    • 4 层代理(传输层代理):Nginx 只处理 TCP 连接,而不深入解析数据内容。它只能基于 IP、端口和 TCP 连接的基本属性来做转发。
    • 7 层代理(应用层代理):Nginx 能解析和处理 HTTP/HTTPS 请求的内容,如 URL、头信息等。然而,对于 Trojan 这样的加密协议,Nginx 无法在 7 层解析其内容,因此不能在 7 层基于域名转发 Trojan 流量。
  2. ssl_preread 的作用

    • ssl_preread 模块允许 Nginx 在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值