透明代理(TPROXY)
文章目录
现状
之前实现了基于vpn协议的透明代理,其优势在于与传统的网络设备兼容,原生支持iptables,不过有几个问题却没有得到解决:
- 信道不稳定,特别是晚上,导致openvpn间歇性卡顿
- 用iptables做高级策略路由,实现复杂,dns也需要额外处理
- 难以吸收科学界先进经验
第一点,可以想很多办法解决,不要自己折腾,自己整的往往不太稳定,我们需要的只是一个服务口子,花钱省心。第二点,v2ray提供了很大的自由配置空间,并且有着丰富的社区资源,所以用这个就好了
tproxy
用v2ray的常规操作是在本地开个socks代理端口,然后浏览器配置代理使用。显然这不符合我们的需求,我们还是需要透明代理的,这里就需要用到tproxy了
tproxy是netfilter的一个模块,可以将流量转发到特定的端口(类似于redirect),同时维护连接状态(redirect只能维护tcp的状态,udp只能用tproxy),v2ray提供了的一个入站规则可以用来接收tproxy的流量
通过几个iptables命令把需要都流量重定向到v2ray监听端口就好了,然后利用v2ray强大的可配置性,实现更高级的需求,这里不展开了
v2ray配置
v2ray的配置目标比较明确:只有国外或者特定的流量走代理。这里可能需要注意的是DNS的配置,整个流程如下图:

其中也支持一般的代理协议,以备不时之需
文章作者 ya0db9
上次更新 2020-04-18