如何快速使用 V2rayN windows客户端 和 V2rayNG Android 应用? V2rayN V2rayNG 最详细使用教程 | 您所在的位置:网站首页 › pc端v2ray增加节点 › 如何快速使用 V2rayN windows客户端 和 V2rayNG Android 应用? V2rayN V2rayNG 最详细使用教程 |
1. 再假设浏览器请求 https://www.google.com 2. 浏览器发 SOCKS 请求到 V2Ray 3. 请求来到 V2Ray 的 inbound,再到路由过程 4. www.google.com 不在 gesoite:cn,也没匹配任何规则,本来应该直接走主 outbound: proxy,但因为我们用了 IPIfNonMatch 策略,V2Ray 会去尝试使用内置的 DNS 把 www.google.com 的 IP 解析出来 5. V2Ray 使用内置 DNS 向 8.8.8.8 发起针对 www.google.com 的 DNS 请求,这个请求的流量将会是 UDP 流量 6. 内置 DNS 发出的 DNS 请求会按路由规则走,因为 8.8.8.8 匹配了路由中的第一条规则,这个 DNS 请求的流量会走 proxy 7. proxy 向远端代理服务器发起 TCP 代理连接(因为 “network”: “tcp”) 8. 建立起 TCP 连接后,proxy 向远端代理服务器发出 udp:8.8.8.8:53 这样的代理请求 9. 远端服务器表示接受这个代理请求后,proxy 用建立好的 TCP 连接向远端服务器发送承载了 DNS 请求的 UDP 流量(所以 V2Ray/VMess 目前是 UDP over TCP) 10. 远端代理服务器接收到这些承载 DNS 请求的 UDP 流量后,发送给最终目标 udp:8.8.8.8:53 11. 8.8.8.8 返回给远端代理服务器 DNS 结果后,远端代理服务器原路返回至本地 V2Ray 的内置 DNS,至此,从步骤 5 ~ 11,整个 DNS 解析过程完成。 12. 接上面步骤 4,V2Ray 得到 www.google.com 的 IP,再进行一次规则匹配,很明显路由规则中没有相关的 IP 规则,所以还是没匹配到任何规则,最终还是走了主 outbound: proxy 13. proxy 向远端代理服务器发起 TCP 代理连接(因为 “network”: “tcp”) 14. 连接建立后,因为 proxy 中所用的 VMess 协议可以像 SOCKS 那样把域名交给代理服务器处理,所以本地的 V2Ray 不需要自己解析 www.google.com,把域名放进 VMess 协议的参数中一并交给代理服务器来处理 15. 远端的 V2Ray 代理服务器收到这个代理请求后,它可能自己做域名解析,也可能继续交给下一级代理处理,只要后续代理都支持类 SOCKS 的域名处理方式,这个 DNS 请求就可以一推再推,推给最后一个代理服务器来处理,这个超出本文范围不作讨论,反正这个域名不需要我们本地去解析 16. 远端代理服务器最后会发出针对 www.google.com 的 DNS 请求(至于究竟是如何发,发到哪个 DNS 服务器,我们不一定能知道,也不关心这个) 17. 远端代理服务器得到 DNS 结果后,可以真正地向 Google 的服务器建立 TCP 连接 18. 远端的 V2Ray 做好准备后告诉本地 V2Ray 连接建立好了,可以传数据了 19. 本地 V2Ray 就告诉浏览器连接好了,可以传数据了,浏览器就可以把 HTTPS 流量顺着这个代理链发送至 Google 的服务器 |
CopyRight 2018-2019 实验室设备网 版权所有 |