Total Pageviews

Tuesday, 20 October 2020

mac上的可执行文件v2ray的加强工具‘v2ray-mac’

 

v2ray官方文档给出了几个mac上的第三方客户端,使用过一段时间,也没有太大问题。不过鉴于别人维护的版本不一定及时更新,于是就自己动手基于v2ray-core打造适合自己的工具,可以随着官方版本更新,使用起来更灵活。注意:不是客户端哦,是工具,或者说一些脚本。个人使用,有兴趣的同学也可以拿来玩玩。

新增了另外一种更灵活的配置方案:v2ray-mac-doh

几个需求

下面是个人使用时感觉比较实用的几点。

开机自启

mac上不能像linux那样很方便的以service的形式实现自启动,这里采用了比较简单的方式,利用crontab的@reboot来达到自动启动的效果,虽然apple官方并不建议这样,但是个人感觉配置launchd略显繁琐,所以还是crontab这种比较适合。

打开系统自带终端,这点很关键,使用其他第三方的终端需要在系统偏好设置->安全性与隐私->隐私->完全磁盘访问权限赋予权限,系统自带终端无感,执行

crontab -e

增加一行,注意替换为你自己的path

@reboot /==YOUR PATH==/start.sh

保存退出即可,启动后ps下看不到v2ray进程,活动监视器可以看到,stop脚本可以正常关闭代理。

全局代理

由于最新版的mac自动代理不支持file文件的形式,所以pac文件需要以web形式提供,这里使用python来启动一个简单的http服务提供pac文件供系统使用。

如果不是wifi上网,可以自行修改。

过滤广告

v2ray强大的地方就是代理及过滤一步到位,此处使用自建的site.dat文件来达到此效果。

停止v2ray

为了方便更新配置啊等等,增加了一个stop脚本,可以无痛关闭v2ray代理。

from https://github.com/felix-fly/v2ray-mac

----

v2ray-mac-doh

此方案是在v2ray-mac基础上改进而来的,加入了dnsmasq及doh,将任务进行拆分,dnsmasq处理解析及广告屏蔽,doh预防污染,v2ray只处理流量转送。

安装及配置dnsmasq

brew install dnsmasq
vi /usr/local/etc/dnsmasq.conf
port=53
server=ISP_DNS
listen-address=0.0.0.0
no-resolv
conf-dir=/path-to-dnsmasq-config/,*.hosts
cache-size=1000

修改ISP_DNS为当地DNS或者其他公共DNS地址,修改conf-dir指向ad.hosts和gw.hosts文件所在目录

brew services restart dnsmasq

doh配置

mac上可以通过安装cloudflared来实现doh client的功能

官方安装文档

curl https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-darwin-amd64.tgz | tar xzC /usr/local/bin
mkdir -p /usr/local/etc/cloudflared
cat << EOF > /usr/local/etc/cloudflared/config.yml
proxy-dns: true
proxy-dns-port: 1053
proxy-dns-upstream:
 - https://1.1.1.1/dns-query
EOF

此处1.1.1.1为上级dns地址,可以使用红鱼提供的,替换即可

  • 东亚: ea-dns.rubyfish.cn
  • 美国西部: uw-dns.rubyfish.cn 建议使用自建的,和v2ray同server可以享受到cdn加速的效果
sudo cloudflared service install

测试下解析是否正确

dig +short @127.0.0.1 cloudflare.com AAAA 2400:cb00:2048:1::c629:d6a2 2400:cb00:2048:1::c629:d7a2

正确的话就可以启动v2ray了

./start.sh

配置v2ray开机自启动可以参考v2ray-mac,不再重复。

from https://github.com/felix-fly/v2ray-mac-doh

No comments:

Post a Comment