趁着放假把v2ray+tls+websock,以及路由器设好了,记录一下:
服务器装v2ray,重点是inbound用vmess,streamSettings的network是ws,Settings设好path,outbounds是freeedom。
服务器配置tls和websock,由于服务器已经有nginx了, 所以直接在对应的ssl的网站设置里面加一个location的设置,把流量转发给v2ray的端口就好了。
服务器这样子就配置好了。
客户端这边呢,电脑正常v2ray,不管是mac还是windows都没有问题。路由器倒是折腾了好久。
路由器存储空间小(还没有内存大……),对v2ray来说太小了,怎么办。upx压缩,去掉多余依赖。于是决定路由器只放一个upx压缩过的v2ray+必要配置。为了减少对v2ctl的依赖,在路由器中就不能用json格式的配置文件了,而是用pb格式的,每次都要在电脑上写好json之后用v2ctl转成pb格式,再上传上路由器使用。
一开始用的mips版的v2ray,报cpu不匹配错误,可是我明明查的是我的路由器就是mips的,不是mipsle的啊。死马当活马医,下个mipsle版,倒是没有报这个错误了,报了个别的错误,什么括号不匹配。什么鬼,这不是编译过的吗……上网一搜,这是v2ray的标准大小端不一致的报错。好吧,果然还是mips,那是怎么回事呢?再搜,哦,好吧,我的路由器不支持硬件浮点……再一看,嗯,人家有v2ray_softfloat。
然后发现不能用……好吧,先用代理模式试试。开了1080 socks代理。查看端口,发现端口的确开了,一链接报一堆错。看一眼,x509证书错误……网上说什么的都有,试了好多次,发现必须要在客户端配置上allowInsecure:true才好。但是电脑版就不需要,难道是Let’s Encrypt的问题?我的路由器不支持这个证书(我的固件版本的确比较旧了)?但是我wget没有问题啊……先不管了。(现在想想,可能是我在同一台机器上配多个域名证书的原因)
然后就开始搞透明代理方案了。outbound没问题了,inbound协议改成dokodemo-door,然后修改iptables,把流量转过去对应端口。满心欢喜试了一下,失败……嗯,不知道为什么,尽管是端口转发,v2ray也不能监听在127.0.0.1上。改了这个就好了。
于是就差最后一步了,就是DNS。这个用的还是老方案,就是dnsmasq用gfw的配置识别,普通域名直接ISP的DNS解释,否则走别的DNS解释,然后用ipset打标签,iptabls转发走透明代理。之前看了一下,为了防止 DNS 投毒,现在有dns over https了,我觉得这个方案比之前我在服务器上架一个奇怪端口的DNS服务强一些,考虑采用。实际上在尝试的时候才发现,我的路由器固件版本太低,opkg包里面就没有https_dns_proxy。去openwrt的网站上看了一下,我目前的固件是15.x.x的,最新版是18.x.x……去下一个固件刷一下吧,发现下不到了,虽然支持列表里面我的路由器是支持的,但是人家在文档里面说了,从19年1月开始不提供固件下载,只提供源代码……
ar71xx is source only → build your own image
Use ath79 instead, if available
If ath79 is not available for your device, then port it to ath79
If you are not able to port it yourself, find someone who is able to do it.
Support the developer by providing the needed information for porting and by testing development builds.If all that does not work, nail your device on the wall of your living room (as souvenir), use it as paperweight, or just dump it into the appropriate recycling channels.
人家都那么说了,我有什么办法呢……老老实实用旧版本吧,懒得折腾了,又不是不能用(振声)。于是照旧在vps里面搭了个DNS服务器。收工!
建议你拼夕夕收一个 N1 折腾,哈哈
哈哈,没有必要了。现在就这么将就用吧,等到彻底不能用了只能拿来当镇纸的时候再买个好的。
oxc0w2