跳至主要内容

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"
            }

重启一下就好了

magisk v2ray--------------------------------------------------------------------- 点击下载
 文章作者: lqwq
 版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 lqwq !

评论

  1. 更新内容:
    1.
    增加了多文件配置并将原本的config.json分担到
    dns.json
    log.json
    inbounds.json
    policy.json
    routing.json
    你可以前往/data/v2ray/config文件夹自定义这些配置。
    2.
    更新最新内核4.23.1
    新的内核提升了v2ray的稳定性
    3.适配面具20.4
    4.优化目录文件

    更新方式,将原先模块卸载。
    再安装这个版本的模块.
    进入app v2rayNG
    将你要导入的节点点击分享
    选择导出完整配置至剪贴板
    然后打开/data/v2ray/config.json
    全选,粘贴,保存。
    在/data/v2ray目录下创建appid.list文件
    输入应用uid,重启
    之后你就可以享受它了
    ------------------------

    回复删除

  2. 友情提示:
    如果你的网速很慢或者经常断流请使用分应用代理试试。
    断流也与机场的稳定性有关。
    --------------------------------------------------------
    要用绕行模式就第一行打个#bypass
    然后下面的就是不走代理的uid
    -------------------------------------------------------

    使用方法:
    1.面具安装v2ray-mod5.4.zip模块.重启手机模块生效.
    2.进入app v2rayNG
    将你要导入的节点点击分享
    选择导出完整配置至剪贴板
    3.使用带root权限的文件管理器打开/data/v2ray/config.json
    全选,粘贴,保存,退出。
    4.在/data/v2ray目录下创建appid.list文件
    输入需要翻墙的应用uid,保存,退出。
    5.重启模块(方法上翻找一下)。

    之后你就可以享受它了( just enjoy !)

    回复删除
  3. 科普:v2ray的app和这个模块的核心是一样的,最大的不同在于两者的运行方式不同。
    app的优点在于灵活(方便更换节点),可以直观操作,模块的优点在于省电,省心(前提是配置好),无感翻墙。
    如果你只是偶尔用一下翻墙,推荐app。如果你需要长期翻墙的话,就推荐模块了,他能让你产生无墙的错觉。
    好了,技术总结完毕。

    回复删除
  4. v2ray-mod5.5.zip更新v2ray内核版本为v4.23.4。
    水一个版本,其实是太久没碰这东西了我当初咋写的忘了,等我研究几天。

    按道理将每次更新应该加一个异于原版的功能,我太懒了,等我几天(可能是几十天)

    回复删除
  5. v2ray-mod5.6.zip更新内容:跟进内核更新
    修复内容:

    进一步消除来自TLS ClientHello的身份泄漏

    修复了Socks5入站,Shadowsocks入站和Dokodemo(TProxy)入站中的UDP稳定性问题。 这样可以缓解不必要的CPU,内存使用以及过早断开连接的问题,这些问题通常是由玩游戏,视频会议和下载内容触发的。

    在发行版中添加了ARM v5二进制文件。 这应该允许旧式ARM设备正确运行V2Ray。

    重大变化:

    ARM发行文件的文件结构已更改。

    回复删除
  6. v2ray-mod5.7.zip更新

    V2Fly的签名基础结构已被修改。 您现在可以使用带有v2ctl的“发布”签名清单文件来验证V2Fly的发行版。

    VMessAEAD已更新,以更多地依赖AEAD。

    出站流量统计API。 谢谢@ yuhan6665

    除了HTTP 1.1代理流量外,HTTP出站现在还可以处理基于TLS的HTTP2,基于TLS的HTTP 1.1。 谢谢@darhwa

    从现在开始,ARM版本将包含一个显式版本。 谢谢@rprx

    从现在开始,V2Ray将生成Windows 32 ARM二进制版本。

    小代码整理。 谢谢Roger Shimizu。

    小代码整理。 谢谢@agioi

    修复客户端向DoH提供无效域名时崩溃的问题。 谢谢@DuckSoft

    突破性变革

    VMessAEAD已更新,并且需要客户端和服务器具有相同版本才能正常工作。

    回复删除

发表评论