Contents

海外用户的国内在线音乐服务使用指南

Outline

  • 背景
  • 获得免费代理地址
  • 在网易云音乐PC客户端中使用代理
  • 在chrome中使用代理
  • 在OSX中使用系统全局代理

背景

这篇指南其实说白了就是一个翻墙教程。众所周知,由于版权所限,海外用户是无法自由使用国内大部分的在线流媒体服务的,包括网易云音乐,QQ音乐,豆瓣FM,以及包括优酷土豆,B站,搜狐视频等一些涉及到正版视频的在线服务。这篇指南的起因是因为这篇blog。博主给了一些方法,主要是基于JS脚本,但是适用范围有限,而且评论里面也出现各种人反馈问题,我才发现原来对很多人来说这是个问题。不过,

如果你只是想使用网易云音乐的话,强烈建议购买会员包。每月8元,真的不贵。而且更加安全,省事,且道德正确。

如果你不在意话费时间和精力,或者确实有其他需求,请继续阅读。
在线服务对海外用户的判断基本上都是基于IP,所以只要代理一下就没问题了。不过**使用免费代理有很严重的安全隐患,请在知晓其安全威胁的前提下使用。**

获得免费代理地址

这里推荐使用prox-list.org
https://i1.wp.com/ww1.sinaimg.cn/large/6f7d1cdfgw1eyeoavioojj20jl042t9j.jpg
通过搜索可以找到很多国内的代理服务器,也可以看到各服务器的速度,使用的协议等。这里推荐使用端口为80的http服务,适用性比较广。但是再次强调:你的请求信息明文可能会被代理服务器获得,所以一定谨慎使用。
好我们拿到了一组(IP地址:端口)。下面我们看怎么使用。

在网易云音乐PC客户端中使用代理

最简单的是在网易云音乐客户端中使用了。之前Mac平台的客户端也可以直接使用,但最新版本中此功能消失,所以目前只限于PC平台。

  1. 点击客户端界面右上角齿轮进入设置界面
  2. 找到“工具”->“代理设置”。
  3. 选择“自定义代理”
  4. 服务器和端口填入刚找到的IP和端口(port)
  5. 由于我们使用的是免费代理,所以没有用户名密码。如果你通过其他途径拿到了自建代理服务器,根据使用的代理协议不同,也许会需要用户名密码。这里我们略过留空。
  6. 测试一下。如果提示代理可用,点击“确定”,重启客户端生效。

这里的测试比较有用,可以快速得知自己选中的代理是否可用。

在chrome中使用代理

推荐使用SwitchySharp插件。SwitchySharp的作者最近开发了一个新的代理控制插件,作者认为新作品更优秀,更可控,但是我个人认为SwitchySharp更简单易懂。
在插件的选项界面新建一个情景模式。这里我的模式叫“in”
https://i2.wp.com/ww3.sinaimg.cn/large/6f7d1cdfgw1eyeopoqeyoj20lo0cvgnc.jpg
可以看到这里有两个“手动”和“自动”配置方法。手动配置的意思是,你要自己设置代理地址,并且自己设置代理规则,哪些请求使用代理,哪些不使用代理。自动配置则是读取一个配置文件,不同的请求自动使用不同的代理。

手动配置

  1. 和网易云音乐的使用方法一样,我们这里填入刚才找到的IP和端口。并且选中“对所有协议均使用相同的代理服务器”。
  2. 保存
  3. 在“切换规则”中配置相关规则。以虾米为例
模式名称 URL模式 匹配模式 情景模式
随便 *://*.xiami.com/* 通配符 in

这里比较重要的是URL模式,你需要了解基本的通配符,以及要使用代理的URL写法。比较容易有问题的是网易云音乐的URL模式。虽然网易云音乐的 主页是music.163.com,但是对数据的请求都是xxx.126.net而不是xxx.163.com。所以正确的写法应该\*://\*.126.net/\*

  1. 保存
  2. 单击SwitchySharp插件图标,选择“自动切换模式”。

这里如果你选择“in”,那么所以的请求都会使用代理,因此你就无法使用油管了。使用“自动切换模式”会根据你的切换规则决定是否使用代理,以及使用什么情景模式。

自动模式

这里我直接贴一下我写好的代理配置文件。

function regExpMatch(url, pattern) {    try { return new RegExp(pattern).test(url); } catch(ex) { return false; }    }
    function FindProxyForURL(url, host) {
    if (shExpMatch(url, "*://*.xiami.com/*") || shExpMatch(url, "*://xiami.com/*")) return 'PROXY 27.46.22.113:8888';
    if (shExpMatch(url, "*://*.163.com/*") || shExpMatch(url, "*://163.com/*")) return 'PROXY 27.46.22.113:8888';
    if (shExpMatch(url, "*://*.youku.com/*") || shExpMatch(url, "*://youku.com/*")) return 'PROXY 27.46.22.113:8888';
    if (shExpMatch(url, "*://*.tudou.com/*") || shExpMatch(url, "*://tudou.com/*")) return 'PROXY 27.46.22.113:8888';
    if (shExpMatch(url, "*://*.bilibili.com/*") || shExpMatch(url, "*://bilibili.com/*")) return 'PROXY 27.46.22.113:8888';
    if (shExpMatch(url, "*://*.126.net/*") || shExpMatch(url, "*://126.net/*")) return 'PROXY 27.46.22.113:8888';
    return 'DIRECT';
}

这里面包括了对虾米音乐,网易云音乐,优酷土豆,和bilibili的代理配置。你也可以通过SwitchySharp插件的“导入/导出”功能,根据你的“切换规则”配置导出PAC文件。

  1. 复制这段代码,把里面的IP和地址替换为你自己的代理服务器,然后保存为proxy.pac。
  2. 在“情景模式”中选择“自动配置”
  3. “导入PAC文件”,导入proxy.pac

如果你有自己的服务器,或者自己电脑搭建了本地web服务器,也可以吧PAC文件上传到服务器上,这里直接填入pac文件的访问地址即可。这里不赘述了。

  1. 单击插件图标,选择“in”。
    如之前所说,这里选择了“in”,是说所有的请求都会使用“in”的代理配置,也就是会使用PAC文件的配置。

注意:如果你使用了自动代理,就不要使用“自动切换模式”
如此这般,你就可以使用chrome使用这些在线流媒体服务了。

在OSX中使用系统全局代理

这里我们需要使用到刚才的PAC文件。

  1. 打开网络偏好设置
  2. 高级
  3. 代理
  4. 这里选中自动代理配置,填入pac文件的访问地址。

这里需要说明的是,如果你要使用类似chrome的自动代理配置,你需要一个pac文件的访问地址。可以开启Mac的apache迅速搭建本地 web服务来做到,但是不在本文的说明范围,请自行谷歌。如果你没有开启,则跳过此步骤,但这意味着你所有的请求,包括任意联网的客户端的网络请求,都会 经过代理。
这会有严重的安全隐患,所以十分不建议如此使用。

  1. 选中web代理(http)和安全web代理(https),并在中都填入刚才的代理服务器地址和端口。

这里比较令我费解的是,虽然我们使用了pac配置文件,但是系统似乎并不会使用其中的代理地址,必须在下面http和https中再配置一遍好服务器地址才能正常使用。也许是我的个例。
这样一来,Mac平台的虾米和网易云音乐客户端也可以正常使用了。
最后再啰嗦几句。

  • 请一定在知晓免费代理的安全隐患的前提下使用次方案。
  • 免费代理的地址会经常抽风/失效,如果发现代理不通畅,比如通过PC端的网易云客户端测试代理地址不再可用,可以去proxy-list找找别的地址。
  • SwitchyPac的使用方法如果不太清楚,去Google,网上大把大把的中文教程。

以上。

========更新======

写了个自动获取IP更新PAC文件的脚本