v2 docker部署与一些注意事项
参考文档:Docker - v2rayA
- 默认xray核心只能使用一个节点,没有自动切换,在docker环境变量中改成v2--
- 如果你的宿主系统使用原生的 nftables,那么就把
V2RAYA_NFTABLES_SUPPORT
设置为on
。 - 如果你的宿主系统使用 iptables,那么可以通过
IPTABLES_MODE
变量来指定后端,将该变量的值设置为nftables
将使用 nft 后端,设置为legacy
将使用传统后端。
docker 开放2017与20172两个端口
说明:
如何理解这里的配置选项?
首先了解端口分流规则。
什么是分流规则?
要讲清楚V2的分流规则,需要非常长的篇幅, 这里我们将其进行简化, 虽然不够准确但是对于快速理解分流规则会有帮助,
所谓的分流就是V2捕获到我们的数据请求以后,判断是应该走直连(direct)还是走代理(代理)。毕竟不是所有的网站都被墙了,所以对于没有被墙的网站直连依然是有效的访问方式。被墙的网站当然需要走代理,有些网站对于IP的地域是有限制的, 比如一些流媒体网站,这些网站也只能通过代理才能正常访问,另外出于自身隐私保护的需求,不想将自己真实的ip地址暴露给被访问网站,那么也需要通过代理访问。所以需要定义一些规则来满足不同的访问需求。
为什么叫端口分流规则,这里的端口是什么意思?
这是因为V2A不仅仅可以作为客户端代理本机的数据请求,它还可以作为代理服务器为局域网内的其他设备提供代理。当它作为代理服务器时,它监听在特定端口,例如v2A作为http代理,默认监听在20171和20172端口,作为socks代理默认监听在20170端口。针对不同端口来的数据请求,可以配置不同的规则,所以叫端口分流规则。当V2A作为客户端时,不涉及到端口,所有的请求都会经过分流规则, 具体规则是由”透明代理/系统代理“规则决定的。
v2A 是对 v2(内核)的一层包装,v2 的分流规则非常强大且灵活, 非专业人士很难理解这些规则。
v2A 在 v2 的复杂的分流规则的基础上,抽象出了两套基本规则,一套是大陆白名单模式,一套是GFWList模式,这两套预定义的规则基本能满足90%的上网需求,
如果需要更复杂的分流规则,v2A保留了v2 的routingA规则,几乎和v2的规则完全匹配,这样既简化了配置,又保持了v2的强大与灵活性。
大陆白名单模式 和 GFWList模式的主要差别是,GFWList模式仅根据被墙的域名名单判断应该走proxy(代理)还是 direct(直连)
大陆白名单模式会根据域名对应的ip获取到地域属性,如果是CN(中国)则直连,否则都走代理。所以使用v2A需要两个文件,一个是geosite.dat一个是geoip.dat这两个文件,用于判断域名是否在白名单和获取IP的地域属性。
两套规则各有优劣,GFWList模式的优势是性能稍好,它少一次域名解析的过程和一次提取地域属性的运算,性能上有些优势,它的劣势是使用者在访问国外网站时,不知道自己使用的是代理还是直连, 也即不确定自己的真实ip是否会暴露或者不确定自己的ip是否满足网站的地域要求,有时以为自己在使用代理实际是直连。
使用大陆白名单模式的优势是访问国外的网站统一使用代理, 国内则统一使用直连方式,不存在代理和直连混淆的状况, 但是由于多一次域名解析, 可能存在dns泄漏的问题, 所以在dns配置时一定要选择dns转发的选项, 后面会讲到。
然后要了解透明代理/系统代理实现方式
如果说分流规则决定何时使用代理,那么本项设置就是决定使用什么样的代理。透明代理和系统代理都会将源ip修改为所使用的代理的ip, 而redirect则会保留请求的源 ip. 所以两者明显的差别是在访问外网时, 目标网站看到的ip地址不同,这点可以使用whoer.com来检测, 通过调整代理实现方式,切换节点来观察ip的变化。
当访问一些对ip所属地域有要求的网站时,可以通过调整代理实现方式来改变访问网站时的ip地址.
透明代理/系统代理 选项
这条是设定在何种情况下使用透明代理/系统代理, 也即v2A作为V2客户端时的分流规则,具体含义可以参照端口分流规则。
防止 DNS 污染
其实不仅仅是防止dns污染,如果分流和代理模式选择了大陆白名单时, 还要防止dns泄漏,关于什么是dns泄漏 以及dns污染,可以自行科普。
如果在使用了大陆白名单模式时,最好使用转发DNS请求,这样DNS请求是通过代理解析的,而不是通过本机dns服务器解析,从而避免泄漏。
这点可以使用 https://ipleak.net/ 或 https://whoer.com/ 检测, 当使用tproxy或者system proxy时, 如果一些被墙的网站有来自china的解析结果时,表示有ip泄漏的风险。
其他选项比较容易理解,这里暂时不做过多解释。