侧边栏壁纸
  • 累计撰写 66 篇文章
  • 累计创建 47 个标签
  • 累计收到 111 条评论

目 录CONTENT

文章目录

*Ray设置流量嗅探,减少DNS解析次数 (只对域名进行一次解析)

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

在能保证被代理连接能得到正确的 DNS 解析时,通过以下设置能够减少DNS解析次数,全程只对域名进行一次解析。

关于设置正确的 DNS 解析,防止DNS污染,可详见:

配置【mosdns+smartdns+adguard+passwall】实现dns分流+去广告

passwall+Adguard+(smartdns)实现DNS分流&去广告

一、前言

以openwrt中的插件passwall举例,在passwall的高级设置菜单里(配置文件位置/var/etc/passwall/TCP_UDP.json):

流量嗅探 (V2ray/Xray),默认勾选,即配置文件中SniffingObject设置项的enabled选项默认为true

流量嗅探只供路由使用 (Xray),默认不勾选,即配置文件中SniffingObject设置项的routeOnly选项默认为false

关于以上二者的详细解释,请见官方文档入站代理 | Project X

各位表达方式确实一个比一个难懂啊。我用小白一点的语言翻译下,如有错误立刻抽我:
使用xray分流必须开启"嗅探"(sniffing)。

疑惑点主要是下面的"流量嗅探只供路由使用"(即routeOnly)选项,开启与否的实际状况和影响:

不勾选 = 向代理服务器继续发送域名准备访问;(缺点:两次转换,理论上过程慢;优点:VPS的DNS得到的目标IP更准更近)
勾选 = 直接把IP发给代理服务器进行访问。(缺点:有可能这个IP不是最优的,优点:理论上转换过程少更快)

image-20230129232442579

**DNS流程:**设备发了一个网址的DNS请求,进入路由器,送到passwall设置的DNS分流,获得网址的IP。

**代理流程:**浏览器对此IP发起连接,进入路由器,送到passwall的xray-core。

二、流量嗅探=true,只供路由=false

①在passwall中IP被嗅探出原网址,经过passwall里设置的xray一系列路由规则匹配,最后走代理

②VPS端无论在配置中是否开启流量嗅探,因为客户端开了流量嗅探,收到的是网址请求,而非客户端DNS得到的IP。

③根据VPS端的xray一系列路由规则匹配,向VPS端DNS获取的IP发起连接请求

三、流量嗅探=true,只供路由=true**

1.VPS端关闭流量嗅探

​ ①在passwall中IP被嗅探出原网址,经过passwall里设置的xray一系列路由规则匹配,最后走代理

​ ②因VPS端在配置中关闭流量嗅探,客户端开了routeOnly,VPS端收到请求是客户端DNS得到的IP

​ ③根据VPS端的xray一系列路由规则匹配,向客户端DNS获取的IP发起连接请求

2.VPS端开启流量嗅探

​ ①在passwall中IP被嗅探出原网址,经过passwall里设置的xray一系列路由规则匹配,最后走代理

​ ②因VPS端在配置中开启流量嗅探,客户端开了routeOnly,VPS端收到请求是客户端DNS得到的IP,但会通过IP嗅探出原网址

​ ③根据VPS端的xray一系列路由规则匹配,向VPS端DNS获取的IP发起连接请求

四、总结

以下仅供参考,如有错误欢迎指出:

(客户端)流量嗅探 (客户端)只供路由 (VPS端)流量嗅探 (VPS端)只供路由 最终IP来源
✔|❌ VPS端
VPS端
客户端
客户端
客户端
VPS端

注意最终IP来源为客户端会产生以下问题:

1.若客户端DNS解析了IPV6,而VPS不支持IPV6,则会无法访问

2.VPS端路由规则的IPV4与IPV6优先级失效

3.VPS端路由规则中的域名匹配可能失效

综上,不建议客户端采用fakeip(虽然减少客户端DNS解析,但影响整个局域网的域名解析),或将VPS设置为DNS解析服务器(利用DNS缓存)

五、测试小技巧

用于判断流量嗅探功能是否生效,即用于判读VPS端最终访问的IP来源的简单方法。

image-20230206230256159

参考内容:

关于"routeOnly"选项的问题

入站代理 | Project X

0

评论区