v2ray kitsunebi客户端与iptables dnat转发

因为手机是不限量套餐,故而在杭州我一直主用自己的电信套餐来做为日常上网的方法,亦无需开通宽带了,然而电信在浙江的漫游策略则是漫游至南京的GGSN设备以便出互联网(江苏移动就比较好,可以直接从浙江本地出去),而该GGSN的上网ip,访问我的科学上网服务器因为中间有跳电信202.97的路由器,从而无法体现我科学上网服务器全程CN2 GIA线路的特质,而我家里电信则可以享用到双程CN2 GIA线程的特质,故而我决定在家里路由器通过iptables dnat直接转发下,这样在杭州可以先连回江苏家中,从而再走国内,这样跨境仍利用我家的双程CN2 GIA线程,效果预计会更好些。

然而在家中路由器直接开启dnat却无法让我直接使用,直到抓包才发现,由于我采用了Caddy做为https来反向代理websocket方式的v2ray服务端,而kitsunebi直接将我家中路由器ddns绑定的域名做为tls 1.2协商所用的sni,而Caddy服务器绑定的域名则是另外一个,这样就导致服务器tls协商不成功,从而无法正常加速。

而kitsunebi这样就要么在android手机上做个dns代理,仍用原来的域名,但通过dns代理为我家里路由器的ip,而这样的玩法较为复杂,而改kitsunebi的android代码,我也觉得较为费功夫;因而或可考虑再在家中的路由器再部署一个https代理来再代理一次,但这样亦较为复杂。

后来经查询发现,原来v2ray自己就有转发模式,这样可以直接在家中路由器开启vmess做为接入协议,出口则去连科学上网服务器的ws+tls服务,这样kitsunebi就可以直接通过vmess接入家中,快速部署了一下,果然成功解决。

实际测试发现下载带宽性能大约能够提升40%,油管更加顺畅,开心看视频去也。