magisk v2ray 食用教程


0x00前言

最近我在看magisk模块的时候,发现了一个比较好用的模块,那就是magisk版的v2ray工具。

作为模块,他可以一直在后台运行,而且非系统VPN模式。就是状态栏不会有啥图标。强迫症患者首选。

这是他的项目地址Github项目,怎么下载,怎么安装这里就不复述了

大神可以自己去看他的README,我这里分享一下我自己的过程,心得供大家参考。

教程仅供学习与交流使用,请勿用于非法用途。

0x01入门

安装完成后你的/data/目录下会生成一个v2ray的文件夹,这里存放着各种配置等文件。

首先配置我们的config.json文件,此文件为v2ray的主要配置文件,里面有出站和入站规则等。

使用编辑器打开/data/v2ray/config.json这个文件,我这里用的是es文件浏览器自带的编辑器,用其它也可以。

然后将自己服务器配置outbounds部分的第一个元素复制到刚打开的文件的相同位置,点击保存。

再打开/data/v2ray/appid.list这个文件,在文件内填入数字0。然后保存。解释一下:这个文件是用于分应用代理的,如果有这需求的友友们请查看本篇文章的进阶部分。

然后回到Magisk Manager应用中,重启v2ray for android模块(就是禁用再打开,看下图)

开始美妙的玩耍之路吧!!

0x02进阶

进阶配置稍微比入门的要难一些,但带来的好处也是显而易见的,例如分应用代理减少耗电,应用新的规则识别更准确。

此板块中简单的操作将不再赘述,有需要的可以看看前面的。

配置分应用代理

打开/data/v2ray/appid.list文件,分应用代理使用app的uid来区分每一个应用程序,文件的格式为:每个uid以 空格换行 来分割。

app的uid一般存在于/data/system/packages.list,您可以直接查看此文件来获取每个应用的uid。当然也有软件可以使用,例如DevCheck,Solid Explorer这些应用也可以进行查看。下方我以DevCheck为例。

当然我也写了一个方便配置app uid的应用,这个应用可以把包名直接转换成uid,包名可以直接从其它软件中直接导出。需要的在评论区留言一下,我会发出来

应用新路由规则

/data/v2ray/目录下有geoip.dat和geosite.dat两个文件,这两文件中有一些规则,可以实现类似Gxx的功能,也就是可以指定哪些网站需要代理,哪些不需要。

首先我们需要去下载比较强大的规则集,这是他的项目地址Github项目

我们需要下载上方两个文件,下载地址直接放出来:
geoip.dat geosite.dat

下载完成后直接覆盖/data/v2ray/目录里的原文件,然后打开config.json,下面我就直接贴代码了,怎么编辑你们也会的。

routing部分下改写部分规则

"routing": {
    "domainStrategy": "IPIfNonMatch",
    "rules": [
      {
        //代理dns请求
        "type": "field",
        "inboundTag": ["dns-in"],
        "outboundTag": "dns-out"
      },
      {
        //禁用bt下载
        "type": "field",
        "outboundTag": "direct",
        "protocol": ["bittorrent"]
      },
      {
        //屏蔽广告
        "type": "field",
        "outboundTag": "block",
        "domain": [
          "geosite:category-ads-all"
        ]
      },
      {
        //代理非大陆地址和speedtest
        "type": "field",
        "outboundTag": "proxy",
        "domain": [
          "geosite:geolocation-!cn",
          "geosite:speedtest"
        ]
      },
      {
        //直接放行大陆地址
        "type": "field",
        "outboundTag": "direct",
        "domain": [
          "geosite:cn"
        ]
      },
      {
        //放行国内dns地址
        "type": "field",
        "outboundTag": "direct",
        "ip": [
          "223.5.5.5/32",
          "119.29.29.29/32",
          "180.76.76.76/32",
          "114.114.114.114/32"
        ]
      },
      {
        //代理国内dns地址
        "type": "field",
        "outboundTag": "proxy",
        "ip": [
          "1.1.1.1/32",
          "1.0.0.1/32",
          "8.8.8.8/32",
          "8.8.4.4/32"
        ]
      },
      {
        //放行国内ip和私有地址
        "type": "field",
        "outboundTag": "direct",
        "ip": [
          "geoip:cn",
          "geoip:private"
        ]
      }
    ]
  }

可以复制到自己的文件中,这样就实现了精准的分流。

0x03高级

在这个版块将不再赘述进阶中的操作步骤

通过WiFi热点来共享网络

共享自己的代理给wifi热点

默认情况下是自动共享的,但有时候却不是那么尽人意。打开文件/data/v2ray/softap.list默认情况下会有softap0字样,这是WiFi热点接口名称。你可以通过ip addr来查看你的设备中热点接口的名称,并不是所以的设备都是softap0。你需要在此文件中写入自己的热点接口名称。

开发 && 未测试

进入手动模式

如果要通过完全运行命令来控制V2Ray,只需添加一个文件/data/v2ray/manual。在这种情况下,V2Ray服务将不会在启动时自动启动,并且您无法通过Magisk Manager应用程序管理服务的启动/停止。

管理服务启动/停止
V2Ray服务脚本是$MODDIR/scripts/v2ray.service

启动服务:
/sbin/.magisk/img/v2ray/scripts/v2ray.service start

停止服务:
/sbin/.magisk/img/v2ray/scripts/v2ray.service stop

管理透明代理启用/禁用
透明的代理脚本是$MODDIR/scripts/v2ray.tproxy

启用透明代理:
/sbin/.magisk/img/v2ray/scripts/v2ray.tproxy enable

禁用透明代理:
/sbin/.magisk/img/v2ray/scripts/v2ray.tproxy disable

通过wifi来共享网络给局域网中的其它人 (未测试,请自测)

打开config.json文件在inbounds中添加

{
      //监听socks,端口为1080
      "protocol": "socks",
      "listen": "0.0.0.0",
      "port": 1080,
      "tag": "socks-in",
      "settings": {
        "ip": "127.0.0.1",
        "udp": true,
        "auth": "noauth"
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      }
    },
    {
    //监听http,端口为1081
      "protocol": "http",
      "listen": "0.0.0.0",
      "port": 1081,
      "tag": "http-in",
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      }
    }

然后在rules

    {
        //代理dns请求
        "type": "field",
        "inboundTag": ["dns-in"],
        "outboundTag": "dns-out"
      },

修改为

    {
        "type": "field",
        "outboundTag": "dns-out",
        "inboundTag": [
          "socks-in",
          "http-in",
          "dns-in"
        ],
        "network": "tcp,udp"
      }

反正我没测试过,如果有问题参考官方文档 官方文档

还有其它的玩法,请自行参考官方档。能玩得那么骚的,也不用来看我了。。。。

0x04踩的坑

Google服务无法使用,联不上网

一些是国行的手机,有些国行手机内置了google服务,但使用了这个模块后没法访问,原因是国行手机把google的地址指向了googleapis.cn。这个地址不可用。所以只要强制代理这个地址就好了。

在config.json的rules中加入

            {
                "type": "field",
                "domain": [
                    "domain:googleapis.cn"
                ],
                "outboundTag": "proxy"
            }

重启一下就好了


文章作者: Una
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Una !
  目录