nondanee / UnblockNeteaseMusic

Revive unavailable songs for Netease Cloud Music
MIT License
17.44k stars 2.51k forks source link

全端通用方案搭建教程 #527

Closed Jkkoi closed 4 years ago

Jkkoi commented 4 years ago

本教程有巨大缺陷,只适合远古版本用户使用

Jkkoi commented 4 years ago

概述/说明

仅限学习使用,看到后请在24小时内忘掉 (保命)

⚠️ 特别说明 如果你的网络运营商存在 DNS 劫持的行为(表现为你照着这个教程做但是最后还是无效),则需要使用 853 端口来做DNS 加密

辣(z)鸡(z)移动

程序安装

安装 Docker

为方便操作和简化命令,本教程使用 Docker 来省略安装环境步骤

适用与绝大多数常见发行版

一条命令快速解决

curl -s https://get.docker.com | sudo sh

各种稀奇古怪的发行版

参见 官方文档 (英文)

安装 UnblockNeteaseMusic

一行命令搞定

docker run --restart=always --name unmusic -d -p 80:80 -p 443:443 nondanee/unblockneteasemusic -p 80:443 -s

安装 SSL (https) 证书 点击下载安装

备用地址(反代官方地址)

证书为软件作者发布的证书,原 issus ,与本人无关

安装 AdguardHome

docker run --name adguardhome -v /root/AdguardHome/workdir:/opt/adguardhome/work -v /root/AdguardHome/confdir:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 61080:80/tcp -p 61443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d adguard/adguardhome

安装完成后打开 http://<你的服务器 IP>:3000/ 设置密码 点击下面地球可以改成中文

然后进入 设置 - DNS 设置

toDNSSetting

如图填写后应用

DNSSetting

转到 DNS 重写

toDNSrewrite

如图添加 DNS 重写

addDNSrewrite

将你设备的 DNS 改为你服务器的 IP就可以愉快的使用了



**Enjoy it**




常见问题

Docker 下载慢/半天安装不完

国内网络环境就那样,忍忍吧

完全按照教程做的,但还是没有解锁音乐

兄弟你的 DNS 被运营商劫持了,解决方法见 DNS 加密

服务器在国外,用不了

在国外的服务器只能选 kuwo, joox, youtube 三种音源

各种报错

搜素引擎是我们的好盆友

附加说明

DNS加密

首先你需要一个域名,收费免费均可

FreeSSL 申请一张证书,同样免费收费均可,教程(来自 FreeSSL)

申请完成后浏览器会自动下载一个压缩包(用它的软件的话会自动下载到软件)里面有 full_chain.pemprivate.key 两个文件

·刚点击申请的时候也会下载一个压缩包,但是只会有 private.key 是没有用的·

进入 设置 - 加密设置

DNSencrypt

如图填写

DNSencryptSetting1

DNSencryptSetting2

full_chain.pem 文件里的内容粘贴到 证书 中 将 private.key 文件里的内容粘贴到 私钥

保存配置

下面是各个平台使用加密 DNS 的方法,来自 AdguardHome

  • DNS 隐私
    • DNS-over-TLS: 使用 tls://<你的域名>:853 字符串。
    • DNS-over-HTTPS: 使用 https://<你的域名>:61443/dns-query 字符串。

请注意,加密的 DNS 协议仅适用于 Android 9。所以您需要为其他操作系统上安装额外的软件。

  • Android
    • Android 9 原生支持 DNS-over-TLS。 要进行配置,请转到 设置 → 网络和互联网 → 高级 → 私有 DNS,然后在那里输入您的域名。
    • AdGuard for Android 支持 DNS-over-HTTPS 和 DNS-over-TLS。
    • Intra 为 Android 提供了 DNS-over-HTTPS 的支持。
  • iOS
    • DNSCloak 支持 DNS-over-HTTPS ,但为了设置使用您自己的服务器,您需要为了它生成一个 DNS Stamp 。 -AdGuard for iOS 支持 DNS-over-HTTPS 和 DNS-over-TLS。
  • 其他实施方案
    • AdGuard Home 本身可以作为任何平台上的安全 DNS 客户端。
    • dnsproxy 支持所有已知的安全 DNS 协议。
    • dnscrypt-proxy 支持 DNS-over-HTTPS。
    • Mozilla Firefox 支持 DNS-over-HTTPS。

版权声明

本文档中引用的任何其它服务商标、商标和商标名称归各自所有者所有。

fengzhao commented 4 years ago

ios如何食用啊?

joshuawm commented 4 years ago

AdGuard Home这个对于不想搭建或者延迟比较大的 可以试试nextDNS作为替代

Jkkoi commented 4 years ago

AdGuard Home这个对于不想搭建或者延迟比较大的 可以试试nextDNS作为替代

谢谢推荐,我是先用的 AdGuard Home 除广告再知道本项目的,所以不太清楚其他自建 DNS 的程序怎么样

Jkkoi commented 4 years ago

ios如何食用啊?

Let me 🔎 Google that for you: 🔎 苹果修改 DNS

joshuawm commented 4 years ago

AdGuard Home这个对于不想搭建或者延迟比较大的 可以试试nextDNS作为替代

谢谢推荐,我是先用的 AdGuard Home 除广告再知道本项目的,所以不太清楚其他自建 DNS 的程序怎么样

nextdns不是自建,像adguard home那種 他是一個dns服務,支持dns rewrite這樣就免去搭建adguard home的麻煩 不過我回覆完後試了一下,看他的log並沒有走我的rewrite規則 可能我沒安裝ca證書的關係吧 或許你可以試一下 可能我裝的時候哪裡出錯了 或者跟別的dns衝突也有可能 簡單註冊帳號 在高級吧 最下面有dns rewrite

Jkkoi commented 4 years ago

AdGuard Home这个对于不想搭建或者延迟比较大的 可以试试nextDNS作为替代

谢谢推荐,我是先用的 AdGuard Home 除广告再知道本项目的,所以不太清楚其他自建 DNS 的程序怎么样

nextdns不是自建,像adguard home那種 他是一個dns服務,支持dns rewrite這樣就免去搭建adguard home的麻煩 不過我回覆完後試了一下,看他的log並沒有走我的rewrite規則 可能我沒安裝ca證書的關係吧 或許你可以試一下 可能我裝的時候哪裡出錯了 或者跟別的dns衝突也有可能 簡單註冊帳號 在高級吧 最下面有dns rewrite

DNS 和证书没关系 nextdns 是一个应用? https://nextdns.io/ 那估计是你的配置有问题

没有 log 一般情况 下为 配置有误 或者运营商做了 DNS 劫持,请求根本没到你的服务器

joshuawm commented 4 years ago

AdGuard Home这个对于不想搭建或者延迟比较大的 可以试试nextDNS作为替代

谢谢推荐,我是先用的 AdGuard Home 除广告再知道本项目的,所以不太清楚其他自建 DNS 的程序怎么样

nextdns不是自建,像adguard home那種 他是一個dns服務,支持dns rewrite這樣就免去搭建adguard home的麻煩 不過我回覆完後試了一下,看他的log並沒有走我的rewrite規則 可能我沒安裝ca證書的關係吧 或許你可以試一下 可能我裝的時候哪裡出錯了 或者跟別的dns衝突也有可能 簡單註冊帳號 在高級吧 最下面有dns rewrite

DNS 和证书没关系 nextdns 是一个应用? https://nextdns.io/ 那估计是你的配置有问题

~没有 log 一般情况 下为 配置有误 或者运营商做了 DNS 劫持,请求根本没到你的服务器~

Nextdns是一个dns服务提供商,它支持客制化,可以在上面配置去广告规则等 Adguard Home 的基本功能他都有 avatar

我之前是在国内的机器docker装unblockneteasemusic过 然后rewrite到国内机 结果不行 后来看到另一篇issue中提到v2ray的配合方法,于是在一台香港的机器做了,但是我没使用原issue中的ss,而是ws tls。当然也失败了 由于用的docker,我也不会查看作为docker的unblock的log 算了 不折腾了 网易不是我的主力 也就偶尔想起拿他看评论罢了

Jkkoi commented 4 years ago

AdGuard Home这个对于不想搭建或者延迟比较大的 可以试试nextDNS作为替代

谢谢推荐,我是先用的 AdGuard Home 除广告再知道本项目的,所以不太清楚其他自建 DNS 的程序怎么样

nextdns不是自建,像adguard home那種 他是一個dns服務,支持dns rewrite這樣就免去搭建adguard home的麻煩 不過我回覆完後試了一下,看他的log並沒有走我的rewrite規則 可能我沒安裝ca證書的關係吧 或許你可以試一下 可能我裝的時候哪裡出錯了 或者跟別的dns衝突也有可能 簡單註冊帳號 在高級吧 最下面有dns rewrite

DNS 和证书没关系 nextdns 是一个应用? https://nextdns.io/ 那估计是你的配置有问题 ~没有 log 一般情况 下为 配置有误 或者运营商做了 DNS 劫持,请求根本没到你的服务器~

Nextdns是一个dns服务提供商,它支持客制化,可以在上面配置去广告规则等 Adguard Home 的基本功能他都有 avatar

我之前是在国内的机器docker装unblockneteasemusic过 然后rewrite到国内机 结果不行 后来看到另一篇issue中提到v2ray的配合方法,于是在一台香港的机器做了,但是我没使用原issue中的ss,而是ws tls。当然也失败了 由于用的docker,我也不会查看作为docker的unblock的log 算了 不折腾了 网易不是我的主力 也就偶尔想起拿他看评论罢了

你可以浏览器打开 music.163.com 如果提示证书不正确\你的自签名证书\本仓库里的证书,才说明 rewrite 生效了

Chrome 在这里查看 image

Potterli20 commented 4 years ago

无法生效怎么办,我用TLS的

Jkkoi commented 4 years ago

无法生效怎么办,我用TLS的

没看懂你想表达什么

Potterli20 commented 4 years ago

无法生效怎么办,我用TLS的

没看懂你想表达什么

就是没有生效云解锁,我叫弄一个大佬弄也是无法生效,我建议你不要用容器去测试,你可以试试实机安装

Jkkoi commented 4 years ago

无法生效怎么办,我用TLS的

没看懂你想表达什么

就是没有生效云解锁,我叫弄一个大佬弄也是无法生效,我建议你不要用容器去测试,你可以试试实机安装

自己检查哪步没有做或者报错

谁告诉你 Docker 只能用于测试环境的?

不想用 Docker 就自己装 NodeJS 环境

Potterli20 commented 4 years ago

无法生效怎么办,我用TLS的

没看懂你想表达什么

就是没有生效云解锁,我叫弄一个大佬弄也是无法生效,我建议你不要用容器去测试,你可以试试实机安装

自己检查哪步没有做或者报错

谁告诉你 Docker 只能用于测试环境的?

不想用 Docker 就自己装 NodeJS 环境

都试过,也安装完,我建议你去试一下实机安装别用容器去安装,这是我的建议,容易是可以,但是你想一下实机安装

Jkkoi commented 4 years ago

无法生效怎么办,我用TLS的

没看懂你想表达什么

就是没有生效云解锁,我叫弄一个大佬弄也是无法生效,我建议你不要用容器去测试,你可以试试实机安装

自己检查哪步没有做或者报错 谁告诉你 Docker 只能用于测试环境的? 不想用 Docker 就自己装 NodeJS 环境

都试过,也安装完,我建议你去试一下实机安装别用容器去安装,这是我的建议,容易是可以,但是你想一下实机安装

原因?

lulu1199 commented 4 years ago

此方法能不能在外网4g状态下使用?

Jkkoi commented 4 years ago

此方法能不能在外网4g状态下使用?

能改 DNS 就行 但鉴于 运营商 DNS 抢答,只有安卓 9 及以上版本可以原生实现,其他系统需要安装第三方软件

7enChan commented 4 years ago

用另外的方案实现的DNS转发,现在Mac上可以用,但iOS和Android上用不了。另外确认一下,CA证书是在DNS服务器和终端设备上都安装吗?

Jkkoi commented 4 years ago

用另外的方案实现的DNS转发,现在Mac上可以用,但iOS和Android上用不了。另外确认一下,CA证书是在DNS服务器和终端设备上都安装吗?

你可以在手机上用支持查看证书的浏览器(如 chrome ),查看是否为自签证书

如果不是的话,说明你手机拿到的 IP 地址还是官方的

需要在每个终端上都安装根证书,我这边 play 版测试直接安装为用户证书也可使用

nondanee commented 4 years ago

终端上要装

安卓 6.3 之前的版本安装为用户证书就行了;之后的版本装了也不会信任的,和不装效果一样,就不用装了 https://github.com/nondanee/UnblockNeteaseMusic/issues/30#issuecomment-472538422

用浏览器看的话不太准吧,网易云有 httpdns 防止劫持的,也不一定按你配的 dns 解析

7enChan commented 4 years ago

终端上要装

安卓 6.3 之前的版本安装为用户证书就行了;之后的版本装了也不会信任的,和不装效果一样,就不用装了 #30 (comment)

用浏览器看的话不太准吧,网易云有 httpdns 防止劫持的,也不一定按你配的 dns 解析

Android上装了旧版本,可以正常使用了。我是通过wireguard连回家里的软路由,这样同时可以FQ和使用网易云了,只是iOS上还是不行,通过浏览器解析证书确实装上了,但还是灰的。

Jkkoi commented 4 years ago

终端上要装

安卓 6.3 之前的版本安装为用户证书就行了;之后的版本装了也不会信任的,和不装效果一样,就不用装了 https://github.com/nondanee/UnblockNeteaseMusic/issues/30#issuecomment-472538422

用浏览器看的话不太准吧,网易云有 httpdns 防止劫持的,也不一定按你配的 dns 解析

氦,看来还是有很多问题 我的安卓网易云还是 version 4.3.1

我先关了 issue 修改吧,不误导大家了

Jieoz commented 3 years ago

此方法能不能在外网4g状态下使用?

能改 DNS 就行 但鉴于 运营商 DNS 抢答,只有安卓 9 及以上版本可以原生实现,其他系统需要安装第三方软件

安卓9的私有dns改成自建的永远都是无法连接,阿里的dns就可以是什么问题啊大佬,ssl配置上也没有用