本文使用的环境
电脑:Windows10
服务器 :已做切卡,超频2.1版Debian的随身WiFi,Linux内核5.15

v2raya的Githubhttps://github.com/v2rayA/v2rayA/blob/feat_v5/README_zh.md

1、准备工作

  1. SSH 工具下载链接:https://www.123pan.com/s/DGj7Vv-xSai.html 提取码:6q1k
  2. 准备一部已安装 Docker 的设备 / 云主机;若未安装 Docker 请移步安装 Docker、Docker Compose,此文章可做参考

    注意:若随身WiFi需要插卡使用需做切卡操作后再刷成Debian安装Docker

1.1、切卡读卡(不用卡请忽略)

注意:Debian系统下读卡,CPU运行会持续高达70%,发热严重,需做好散热,使用散热片,风扇皆可

  1. 原安卓系统下

    若已刷为Debian,可尝试使用 全量备份包 还原

    • 登录随身WiFi后台,使用 切卡密码 切换到 sim1(即启用sim卡槽),插入要使用的卡,确认是否可用

      切卡密码可在 酷安 社区里寻找,部分设备若不知道切卡密码,可尝试使用 随身WiFi助手 中的切卡功能
      提取码:Uyrh

    • 若不可用,不读取,可尝试使用星海工具先在Fastboot模式下【擦除基带】,再将全网通qcn【写入QCN】具体可参考随身 WiFi 折腾记录(1)

      此方法未确认可行性,目前只在找到过一个001c全网通qcn,不确定是否通用,刷之前请做好备份

    • modemmodemst1modemst2fsgfsc 五个基带分区做好备份,Debian切卡时需要使用

      若要Debain读卡,这五个基带分区是必要的,备份出来的文件可能会改变文件名
      modem 备份后的文件名叫 NON-HLOS.bin
      fsg 备份后的文件名叫 fsgfs_image.tar.gz.mbn.img

  2. Debian / OpenWrt 系统下

    若确认好可以正常读卡,且已做好备份,就可以刷入Debian了

    1. 使用 QPT工具modemst1modemst2fsgfsc 四个备份出来的分区刷入对应的分区,此操作可参考随身 WiFi 折腾记录(1)
    2. 将备份出来的 modem 文件进行解压,使用 带有文件管理的 SSH 工具(提取码:6q1k) 或者 WinSCP (提取码:D20o) 进入 /usr/lib/firmware/ 目录将与解压后的同名文件都删除并重新上传,使用以下命令给予 firmware 目录及下级文件权限
      chmod -R 777 /lib/firmware/
      
    3. 查看 sim 状态
      mmcli -m 0
      

      Status 可查看当前卡的状态和信号强度
      如果返回 error: couldn't find modem,可以尝试把 modem 分区备份文件解压后上传到/usr/lib/firmware/ 有可能可以解决4g用不了的问题(未验证)

    4. 切换 sim

      切换需要至少几十秒的时间

      1. Debian
        echo 0 > /sys/class/leds/sim\:sel/brightness
        echo 1 > /sys/class/leds/sim\:sel2/brightness
        systemctl restart rmtfs
        systemctl restart ModemManager
        

        切回内置将0和1换一下位置

      2. OpenWrt
        echo 0 > /sys/class/leds/sim\:sel/brightness
        echo 255 > /sys/class/leds/sim\:sel2/brightness
        /etc/init.d/rmtfs restart
        /etc/init.d/modemmanager restart
        

        切回内置将0和255换一下位置

    5. 添加启动配置
      vi /usr/sbin/mobian-usb-gadget
      
      将以下内容添加到 setup() {
      sleep 3  
      systemctl stop ModemManager  
      sleep 3  
      qmicli -d /dev/wwan0qmi0 --uim-sim-power-off=1  
      sleep 3  
      qmicli -d /dev/wwan0qmi0 --uim-sim-power-on=1  
      sleep 3  
      systemctl start ModemManager  
      sleep 3
      

2、使用Docker部署

2.1、方式一:始终使用最新版

  1. 获取镜像
    docker pull mzz2017/v2raya
    
  2. 运行
    1. 如果有正在运行的 v2raya 容器需先停止并删除
      停止 v2raya 容器
      docker container stop v2raya
      
      删除 v2raya 容器
      docker container rm v2raya
      
    2. 运行 v2raya
      # run v2raya 
      docker run -d \
      --restart=always \
      --privileged \
      --network=host \
      --name v2raya \
      -e V2RAYA_LOG_FILE=/tmp/v2raya.log \
      -v /lib/modules:/lib/modules:ro \
      -v /etc/resolv.conf:/etc/resolv.conf \
      -v /etc/v2raya:/etc/v2raya \
      mzz2017/v2raya
      
    3. 如果你使用 MacOSX 或其他不支持 host 模式的环境,在该情况下无法使用全局透明代理,或者你不希望使用全局透明代理,docker 命令会略有不同
      # run v2raya 
      docker run -d \
      -p 2017:2017 \
      -p 20170-20172:20170-20172 \
      --restart=always \
      --name v2raya \
      -e V2RAYA_LOG_FILE=/tmp/v2raya.log \
      -v /etc/v2raya:/etc/v2raya \
      mzz2017/v2raya
      
  3. 查看状态
    	docker container stats v2raya
    
  4. 游览器使用 ip + 端口 2017 访问

2.1、方式二:使用指定版本

Docker 允许用户同时下载不同版本的 v2rayA。通过错开端口等操作,用户还可以运行多个不同版本的 v2rayA

  1. 获取镜像
    1. 获取版本号

      此处使用的是 $Latest_version 获取的是最新版本号,若要获取其他版本号,可以访问 Docker 镜像仓库 查找所需要的版本,将 $Latest_version 替换为所需的版本号即可

      Latest_version=$(curl -L "https://api.github.com/repos/v2rayA/v2rayA/releases/latest" | grep 'tag_name' | awk -F '"'  '{print $4}' | awk -F 'v'  '{print $2}') echo  $Latest_version
      
    2. 获取 Docker 镜像

      docker pull mzz2017/v2raya:$Latest_version
      
  2. 运行 v2raya
    # run v2raya 
    docker run -d \
    --restart=always \
    --privileged \
    --network=host \
    --name v2raya \
    -e V2RAYA_LOG_FILE=/tmp/v2raya.log \
    -v /lib/modules:/lib/modules:ro \
    -v /etc/resolv.conf:/etc/resolv.conf \
    -v /etc/v2raya:/etc/v2raya \
    mzz2017/v2raya:$Latest_version
    
  3. 如果你使用 MacOSX 或其他不支持 host 模式的环境,在该情况下无法使用全局透明代理,或者你不希望使用全局透明代理,docker 命令会略有不同
    # run v2raya 
    docker run -d \
    -p 2017:2017 \
    -p 20170-20172:20170-20172 \
    --restart=always \
    --name v2raya \
    -e V2RAYA_LOG_FILE=/tmp/v2raya.log \
    -v /etc/v2raya:/etc/v2raya \
    mzz2017/v2raya:$Latest_version
    
  4. 查看状态
    docker container stats v2raya
    
  5. 游览器使用 ip + 端口 2017 访问

2.3、更新 v2rayA

  1. 获取最新镜像
    docker pull mzz2017/v2raya
    
  2. 停止并删除 v2raya 容器
    停止 v2raya 容器
    docker container stop v2raya
    删除 v2raya 容器
    docker container rm v2raya
  3. 运行新版本
    # run v2raya 
    docker run -d \
    --restart=always \
    --privileged \
    --network=host \
    --name v2raya \
    -e V2RAYA_LOG_FILE=/tmp/v2raya.log \
    -v /lib/modules:/lib/modules:ro \
    -v /etc/resolv.conf:/etc/resolv.conf \
    -v /etc/v2raya:/etc/v2raya \
    mzz2017/v2raya