shadowsocks on Mac OS X
下载 download
github release 下载地址:
- Mac 新版 客户端:https://github.com/shadowsocks/ShadowsocksX-NG/releases/
- Mac 旧版 客户端:https://github.com/shadowsocks/shadowsocks-iOS/releases/
旧版 2.6.3
版本下载:ShadowsocksX-2.6.3.dmg
旧版没法更新 PAC 文件列表 (GFWList) 手动解决 方法请参考 issue 212 :
https://github.com/shadowsocks/shadowsocks-iOS/issues/212
MD5 hash
请牢记 XcodeGhost 教训
打开 终端 应用,使用 md5
命令校验下载文件的 MD5 哈希值:
$ md5 Downloads/ShadowsocksX-2.6.3.dmg
MD5 (Downloads/ShadowsocksX-2.6.3.dmg) = c3406e8d4a5009efaa74d3a37b53fed8
HOWTO
- 运行 ShadowsocksX
- 配置 代理服务器
- 连接 代理服务器
- 开启 系统代理
- 测试 科学上网
- 从
GFWList
更新 PAC 文件
【运行】ShadowsocksX
运行 ShadowsocksX 后,会在 menubar 显示 「纸飞机」 图标
默认图标为 灰色 表示 「系统代理」 未启动
【编辑】代理服务器
点击 「纸飞机」 选择 「服务器」 菜单,然后点击 【打开服务器设定】 选项:
弹出 「服务器设定」 窗口:
根据 服务端 配置,填写对应的 客户端 配置:
shadowsocks 服务端配置 | mac 客户端对应配置项 |
---|---|
"server":"45.67.89.10" |
服务器 IP 地址 |
"server_port":37210 |
服务器 端口 |
"password":"V_VL_Fuck_GFW" |
服务器 密码 |
"method":"chacha20-ietf-poly1305" |
加密方案 |
【连接】代理服务器
选中 「服务器」 菜单创建的代理服务器配置,出现 对号 「√」 表示与代理服务器建立连接
成功与代理服务器建立连接后,便会创建 「SOCKS5 代理」 使用 lsof -Pn -i4|grep LISTEN
命令可以查看端口
【开启】系统代理
点击 「主菜单」 第二行 【打开 shadowsocks】 启用 「系统代理」:
- 第一行:系统代理 运行 状态,显示 「关闭」 状态
- 第二行:系统代理 运行 开关,默认 系统代理 没有启动( 图标为 灰色 )
「系统代理」 启动前后 「主菜单」 第一行 代理状态 和 第二行 运行开关 选项变化:
菜单 | 启动代理前 | 启动代理后 |
---|---|---|
menubar 图标颜色 | 灰色 | 黑色 |
第一行:系统代理状态 | Shadowsocks: 关闭 | Shadowsocks: 打开 |
第二行:代理开关 | 打开 Shadowsocks | 关闭 Shadowsocks |
「系统代理」 启动前:
「系统代理」 启动后:
系统代理 启动后 menubar 的 「纸飞机」 图标也变为 黑色:
系统代理 vs SOCK5 代理
「系统代理」 与 「SOCKS5 代理」 区别:
系统代理
- shadowsocks 创建的 「系统代理」 将自动接管浏览器的访问 全部请求
- 浏览器默认不需要任何设置,也无需安装 代理插件 (Firefox 除外)
- 如果浏览器安装了代理插件,需要 禁用 代理插件或将代理插件设置为 使用系统代理
SOCKS5 代理
- 若不 【启用系统代理】 shadowsocks 成功连接代理服务器后,仅创建了 「SOCKS5 代理」
- 浏览器需要安装 代理插件 并设置 shadowsocks 创建的 SOCKS5 代理端口,才能科学上网
【测试】科学上网
如果 系统代理 运行成功,就可以访问 google 。如果失败,请检查 「服务器配置」 是否正确:
【更新】PAC 文件
最后在主菜单中点击 「从 GFWList 更新 PAC 文件」 更新翻墙列表:
SOCKS5 代理
Mac 下 shadowsocks 客户端启用的端口:
$ lsof -iTCP -sTCP:LISTEN -n -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
privoxy 526 i 3u IPv4 0xa3a011e7 0t0 TCP 127.0.0.1:1087 (LISTEN) ## 系统代理
ss-local 537 i 5u IPv4 0xa322b3d7 0t0 TCP 127.0.0.1:1086 (LISTEN)
Shadowsoc 759 i 4u IPv4 0xa3f1dadf 0t0 TCP *:8090 (LISTEN)
Shadowsoc 759 i 9u IPv4 0xa3a5aff7 0t0 TCP 127.0.0.1:1080 (LISTEN) ## socks5 端口
使用 curl --socks5 127.0.0.1:1080 http://cip.cc
命令确认 SOCKS5 代理是否正常可用:
$ curl --socks5 127.0.0.1:1080 http://cip.cc ## 指定 socks5 代理参数
IP : 45.67.89.10
地址 : 美国 加利福尼亚
数据二 : 美国 | 洛杉矶
URL : http://www.cip.cc/45.67.89.10
$ curl http://cip.cc
IP : 111.20.83.57
地址 : 中国 北京
数据二 : 北京市 | 联通
URL : http://www.cip.cc/111.20.83.57
终端 启动 chrome 指定 SOCKS5 代理参数:
open -a "Google Chrome" --args \
--proxy-server="socks5://127.0.0.1:1080" \
--host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost"
然后就可以在应用商店下载 Proxy SwitchyOmega 插件
本地端口
旧版 ShadowsocksX 创建的 「SOCKS5 代理」端口 默认是 1080
:
$ grep 127 ~/.ShadowsocksX/gfwlist.js
var proxy = "SOCKS5 127.0.0.1:1080; SOCKS 127.0.0.1:1080; DIRECT;";
新版 ShadowsocksX-NG 创建的 「SOCKS5 代理」端口 默认改成 1086
升级后别忘了修改代理插件对应的端口:
$ cat "/Users/yourname/Library/Application Support/ShadowsocksX-NG/ss-local-config.json"
{
"method" : "chacha20-ietf-poly1305",
"server" : "IP",
"password" : "...",
"local_address" : "127.0.0.1",
"server_port" : ...,
"auth" : false,
"timeout" : 60,
"local_port" : 1086
}
也可以自行修改 ~/.ShadowsocksX/gfwlist.js
配置文件,自定义 「SOCKS5 代理」端口