MENU

通过docker实现UnblockNeteaseMusic

2019 年 10 月 30 日 • Docker

说在前面的话

  • 这是一个借助网易云音乐客户端作为工具框架,到其他平台寻找音源并在网易云音乐客户端中播放的优秀实现。
  • 实现逻辑简单讲,就是客户端->国内主机->真实音源的过程,这个过程会用到反代,通过Caddy简单实现。
  • 客户端交互过程通过代理,默认只提供HTTP,通过gost将HTTP代理转换SS,供其他代理客户端使用,实现无缝分流。
  • 用docker实现的好处,创建两个文件,一条命令即可启动服务,简单明了。

申请域名并指向国内主机IP

非本文关键配置,详细过程不赘述,假设域名为domain.com

安装docker和docker-compose

yum install docker
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
systemctl enable docker.service (开机自动启动docker)
systemctl start docker.service (启动)

创建文件:docker-compose.yml

version: '3.6'
services:
  caddy:
    container_name: caddy
    image: abiosoft/caddy
    restart: always
    volumes:
    - ./Caddyfile:/etc/Caddyfile:ro
    - ./caddyCertificates:/root/.caddy
    environment:
    - ACME_AGREE=true
    ports:
    - "443:443"
  unblockneteasemusic:
    image: nondanee/unblockneteasemusic
    restart: always
    environment:
      NODE_ENV: production
    ports:
      - 8080:8080
    command: ['-s', '-p', '8080', '-e', 'https://domain.com']

创建文件:Caddyfile

domain.com {
  gzip
  tls admin@domain.com
  proxy / unblockneteasemusic:8080
  # write log to stdout for docker
  log stdout
  errors stdout
}

更新容器并后台启动

docker-compose pull && docker-compose up -d

使用gost将http转为ss

  1. 首先查看docker的IP地址,假设地址为172.18.0.1。

    ip addr show docker0

  2. 下载gost:https://github.com/ginuerzh/gost/releases
  3. 启动gost,假设ss加密算法为chacha-poly1305,密码v2rayss,端口1888。转发至本机(docker)的HTTP代理地址。

    ./gost -L=ss2://AEAD_CHACHA20_POLY1305:v2rayss@:1888 -F=http://172.18.0.1:8080

  4. 后台启动,如果上面启动后,ss测试没有问题可以正常解锁,那可以改为后台执行,避免进程被杀掉。如下所示,将command替换为上面的命令即可。

    nohup command >/dev/null 2>&1 &

使用方法

  • HTTP:IP地址:8080(干扰严重,不推荐)
  • SS:IP地址:1888(推荐)
最后编辑于: 2019 年 11 月 01 日