Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac Catalina|网易云2.3.1(828)|方法① (代理模式)|Proxifier|设置开机自启|摸索教程分享 #338

Closed
shuiRong opened this issue Dec 11, 2019 · 10 comments

Comments

@shuiRong
Copy link

shuiRong commented Dec 11, 2019

安装Node.js、下载项目、自签证书不介绍,看使用指南

Proxifier部分和这个几乎一样,可以参考这个。
但有区别! 因为我完全按照 @gqbre 的办法却没有搞定,或许从那之后又出现了新状况。

区别如下:

  1. 启动命令不同:node app.js -p 8080:8081(这里和作者 方法1 稍微不同,需注意。)
  2. 你新建的名叫NeteaseMusic 的 Proxifier Rule里的 Applications这一项,不用 @gqbre 提供的,你点击 Applications边框的右下角,然后选择网易云音乐,然后Yes,会添加进来一堆。(理由是可能因为系统版本和网易云版本的不同,这里面的东西会不同)

几个关键信息

  1. 不需要在系统网络设置的代理设置那边添加 ....proxy.pac,因为上面Proxifier就是在做这件事。
  2. 不需要修改DNS。因为我们是方法1,而不是方法2。

进阶|可选|将启动程序步骤设置成开机自启

思路是写一个shell脚本,脚本里是运行项目的命令,然后在系统设置开机时自动运行此shell脚本。下面是过程:

  1. 在作者项目目录下新建launch.sh文件,然后写下此脚本:
#!/bin/sh 
cd /Users/xxxxxx/UnblockNeteaseMusic # 这一行是cd到作者项目的目录,你那边肯定和我的路径不一样,不能照抄。
nohup node app.js -p 8080:8081 &  # 注意有个 -p 8080:8081
exit # 必须加上此命令,目的是正常退出当前shell。详情看这篇文章:https://www.cnblogs.com/allenblogs/archive/2011/05/19/2051136.html

你会注意到上面有个nohup命令,它是让命令行程序可以运行在后台的工具(因为一般在终端运行脚本时,得保持终端开启。关掉终端意味着结束脚本运行。但nohup让脚本可以在终端关闭后可以持续运行。)

P.S. 貌似OSX系统自带有nohup命令,无需安装。

  1. 赋予此脚本管理员权限:sudo chmod 777 launch.sh

  2. 打开系统设置、用户与群组、登录项:添加上面那个脚本进来。
    IMAGE 2019-12-13 12:52:54

  3. 右键此脚本文件,点击“显示简介”,设置“打开方式”为自己的终端程序(iTerm也行)。

  4. 重启测试。

最后,赞美作者!

遇到任何问题都请先在本issue下方寻找解决方案。

@nondanee
Copy link
Owner

咋关了啊 😅

@shuiRong
Copy link
Author

shuiRong commented Dec 12, 2019

@nondanee 因为我看你开着的issue都是Wiki类的,所以不想打乱你的队形,关了。

@shuiRong
Copy link
Author

补充信息:很奇怪,刚才失效了几分钟。即:我是用Proxifier转发请求时,网易云那边网络都打不开。Proxifier显示:
image
然后我不用Proxifier转发,而是按照作者教程说的在网络设置那边添加pac,就没问题。正在纳闷呢,Proxifier这边恢复正常了。
特此记录。

@nondanee
Copy link
Owner

@shuiRong
代理修改响应并没有设置 statusCode 为 400 的逻辑,应该就是网易云服务器给你返回了 400,你的账号被风控了一小下
可能是 hook.js 里 X-Real-IP 的问题,你可以改成任何一个国内 IP

@shuiRong
Copy link
Author

shuiRong commented Dec 13, 2019

@nondanee
X-Real-IP换过了,无效。
我很好奇为什么经过Proxifier就不行,不经过是可以的。我想知道经过Proxifier的请求详情,但Charles没抓到网易云客户端的包。有建议吗?谢谢

@gqbre
Copy link

gqbre commented Dec 13, 2019

@shuiRong Proxifier 选中网易云音乐后自动添加其他相关程序是 Proxifier 新增的 feature,对于我们要用到的功能,只需要添加 NeteaseMusic;com.apple.WebKit.Networking 这两个就行,而且前述 Proxifier 的自动添加并没有包含 com.apple.WebKit.Networking 这个程序

@shuiRong
Copy link
Author

@gqbre 谢谢提醒。我改了下。问题依旧...

@shuiRong
Copy link
Author

shuiRong commented Dec 14, 2019

问题解决了...很迷

  1. Proxifier设置Proxy那边,换了个端口,换成了8082;
  2. 启动程序的命令换成了:node app.js -p 8082:8081

P.S. 我换成8082端口的原因是,8080端口访问不到。我在浏览器打开http://127.0.0.1:8080/proxy.pac时,被定向成了http://cn.bing.com/proxy.pac。奇怪的问题。我排查过hosts和Proxifier,还有网络设置那边,搞不懂为什么。因此干脆换个端口,然后正常。

@shuiRong shuiRong changed the title Mac Catalina|网易云2.3.1(828)|方法① (代理模式)|Proxifier|摸索教程分享 Mac Catalina|网易云2.3.1(828)|方法① (代理模式)|Proxifier|设置开机自启|摸索教程分享 Dec 14, 2019
@gqbre
Copy link

gqbre commented Dec 16, 2019

今日测试网易云音乐 Mac 客户端更新
Proxifier 目标代理域名更新为:*.music.163.com;*.music.126.net;*.netease.com;
#22 (comment)

@lioliy
Copy link

lioliy commented Aug 24, 2020

@shuiRong
开机自启的方法:使用LaunchAgents
npx @nondanee/unblockneteasemusic -p 8080 -e http://music.163.com 为例

配置:

  • 创建文件

    ​ 位置:/Users/[用户名]/Library/LaunchAgents/

    ​ 文件名:com.nondanee.unblockneteasemusic.plist

    ​ 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.nondanee.unblockneteasemusic</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/local/bin/npx</string>
		<string>@nondanee/unblockneteasemusic</string>
		<string>-p</string>
		<string>8080:50000</string>
		<string>-e</string>
		<string>http://music.163.com</string>
	</array>
	<key>EnvironmentVariables</key>
	<dict>
		<key>PATH</key>
		<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
	</dict>
	<key>RunAtLoad</key>
	<true/>
	<key>KeepAlive</key>
	<true/>
</dict>
</plist>
  • 运行命令
    launchctl load /Users/[用户名]/Library/LaunchAgents/com.nondanee.unblockneteasemusic.plist

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants