海外用户的国内在线音乐服务使用指南
Outline
- 背景
- 获得免费代理地址
- 在网易云音乐PC客户端中使用代理
- 在chrome中使用代理
- 在OSX中使用系统全局代理
背景
这篇指南其实说白了就是一个翻墙教程。众所周知,由于版权所限,海外用户是无法自由使用国内大部分的在线流媒体服务的,包括网易云音乐,QQ音乐,豆瓣FM,以及包括优酷土豆,B站,搜狐视频等一些涉及到正版视频的在线服务。这篇指南的起因是因为这篇blog。博主给了一些方法,主要是基于JS脚本,但是适用范围有限,而且评论里面也出现各种人反馈问题,我才发现原来对很多人来说这是个问题。不过,
如果你只是想使用网易云音乐的话,强烈建议购买会员包。每月8元,真的不贵。而且更加安全,省事,且道德正确。
如果你不在意话费时间和精力,或者确实有其他需求,请继续阅读。
在线服务对海外用户的判断基本上都是基于IP,所以只要代理一下就没问题了。不过**使用免费代理有很严重的安全隐患,请在知晓其安全威胁的前提下使用。**
获得免费代理地址
这里推荐使用prox-list.org。
通过搜索可以找到很多国内的代理服务器,也可以看到各服务器的速度,使用的协议等。这里推荐使用端口为80的http服务,适用性比较广。但是再次强调:你的请求信息明文可能会被代理服务器获得,所以一定谨慎使用。
好我们拿到了一组(IP地址:端口)。下面我们看怎么使用。
在网易云音乐PC客户端中使用代理
最简单的是在网易云音乐客户端中使用了。之前Mac平台的客户端也可以直接使用,但最新版本中此功能消失,所以目前只限于PC平台。
- 点击客户端界面右上角齿轮进入设置界面
- 找到“工具”->“代理设置”。
- 选择“自定义代理”
- 服务器和端口填入刚找到的IP和端口(port)
- 由于我们使用的是免费代理,所以没有用户名密码。如果你通过其他途径拿到了自建代理服务器,根据使用的代理协议不同,也许会需要用户名密码。这里我们略过留空。
- 测试一下。如果提示代理可用,点击“确定”,重启客户端生效。
这里的测试比较有用,可以快速得知自己选中的代理是否可用。
在chrome中使用代理
推荐使用SwitchySharp插件。SwitchySharp的作者最近开发了一个新的代理控制插件,作者认为新作品更优秀,更可控,但是我个人认为SwitchySharp更简单易懂。
在插件的选项界面新建一个情景模式。这里我的模式叫“in”
可以看到这里有两个“手动”和“自动”配置方法。手动配置的意思是,你要自己设置代理地址,并且自己设置代理规则,哪些请求使用代理,哪些不使用代理。自动配置则是读取一个配置文件,不同的请求自动使用不同的代理。
手动配置
- 和网易云音乐的使用方法一样,我们这里填入刚才找到的IP和端口。并且选中“对所有协议均使用相同的代理服务器”。
- 保存
- 在“切换规则”中配置相关规则。以虾米为例
模式名称 | URL模式 | 匹配模式 | 情景模式 |
---|---|---|---|
随便 | *://*.xiami.com/* | 通配符 | in |
这里比较重要的是URL模式,你需要了解基本的通配符,以及要使用代理的URL写法。比较容易有问题的是网易云音乐的URL模式。虽然网易云音乐的 主页是music.163.com,但是对数据的请求都是xxx.126.net而不是xxx.163.com。所以正确的写法应该\*://\*.126.net/\*
- 保存
- 单击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文件。
- 复制这段代码,把里面的IP和地址替换为你自己的代理服务器,然后保存为proxy.pac。
- 在“情景模式”中选择“自动配置”
- “导入PAC文件”,导入proxy.pac
如果你有自己的服务器,或者自己电脑搭建了本地web服务器,也可以吧PAC文件上传到服务器上,这里直接填入pac文件的访问地址即可。这里不赘述了。
- 单击插件图标,选择“in”。
如之前所说,这里选择了“in”,是说所有的请求都会使用“in”的代理配置,也就是会使用PAC文件的配置。
注意:如果你使用了自动代理,就不要使用“自动切换模式”。
如此这般,你就可以使用chrome使用这些在线流媒体服务了。
在OSX中使用系统全局代理
这里我们需要使用到刚才的PAC文件。
- 打开网络偏好设置
- 高级
- 代理
- 这里选中自动代理配置,填入pac文件的访问地址。
这里需要说明的是,如果你要使用类似chrome的自动代理配置,你需要一个pac文件的访问地址。可以开启Mac的apache迅速搭建本地 web服务来做到,但是不在本文的说明范围,请自行谷歌。如果你没有开启,则跳过此步骤,但这意味着你所有的请求,包括任意联网的客户端的网络请求,都会 经过代理。
这会有严重的安全隐患,所以十分不建议如此使用。
- 选中web代理(http)和安全web代理(https),并在中都填入刚才的代理服务器地址和端口。
这里比较令我费解的是,虽然我们使用了pac配置文件,但是系统似乎并不会使用其中的代理地址,必须在下面http和https中再配置一遍好服务器地址才能正常使用。也许是我的个例。
这样一来,Mac平台的虾米和网易云音乐客户端也可以正常使用了。
最后再啰嗦几句。
- 请一定在知晓免费代理的安全隐患的前提下使用次方案。
- 免费代理的地址会经常抽风/失效,如果发现代理不通畅,比如通过PC端的网易云客户端测试代理地址不再可用,可以去proxy-list找找别的地址。
- SwitchyPac的使用方法如果不太清楚,去Google,网上大把大把的中文教程。
以上。
========更新======
写了个自动获取IP更新PAC文件的脚本。