Mac玩转shadowsock
安装 shadowsock
- GUI 界面上的 shadowsock ,一般有普通版还有 NG 版本,可以在 github 里面搜索,地址敏感不发。不要两个都安装,端口会被抢用。新的 mac 安装 NG 版本,旧的mac用旧版本的。
还有通过命令行安装。
brew install shadowsocks-libev # 启动服务 brew services start shadowsocks-libev # 或者先前台跑一次程序 /usr/local/opt/shadowsocks-libev/bin/ss-local -c /usr/local/etc/shadowsocks-libev.json #设置自启动 ln -sfv /usr/local/opt/shadowsocks-libev/homebrew.mxcl.shadowsocks-libev.plist ~/Library/LaunchAgents #查看端口占用情况 lsof -i -P | grep -i "listen"
配置文件的书写
/usr/local/etc/shadowsocks-libev.json
1 { 2 "server":"", 3 "server_port":, 4 "local_address":"0.0.0.0", 5 "local_port":1080, 6 "password":"", 7 "timeout":300, 8 "method":"aes-256-cfb" 9 }
其中的 local_address 我填写的是 0.0.0.0 表示局域网点的所有机子都可以通过1080这个端口代理,其他的数据自己填写
其他虚拟机、局域网的电脑、手机通过 shadowsock 上网
- 虚拟机:ubuntu 通过网络,网络代理填写相应的 ip 和端口就可以。
- 手机(iphone):在你 wifi 上,最后有一个使用代理,填写相应的 ip 还有端口即可。
- 浏览器:firefox 通过使用 Foxyproxy Standard, chrome 使用 SwitchyOmega,代理上不了的时候先通过 github 下再插件,然后配置上网。
Mac 开机启动的文件
- 普通应用一般存放的目录
~/Library/LaunchAgents
- Mac OSX的当前用户成功登录后启动的程序,该类别的启动项配置文件存放在
~/Library/Preferences/com.apple.loginitems.plist
,所以只针当前用户. 推荐放入的地方
以上三个目录为系统推荐放置的路径,是当登录之后启动的进程
~/Library/LaunchDaemons /Library/LaunchDaemons /System/Library/LaunchDaemons
放置在以上三个目录,则启动为守护进程,为系统启动后立即启动的进程
删除启动项的方法
1.通过launchctl load xxx.plist或launchctl unload xxx.plist命令添加和删除指定启动项;
2.直接创建、修改、删除相关目录下面的plist文件。
privoxy安装(用于终端科学上网)
参考:http://www.cashqian.net/blog/001486989831982332565298e4942a2bb8f56b08f9d2475000
https://sebastianblade.com/share-macos-shadowsocks-proxy-to-other-device/
安装 brew install privoxy
打开配置文件/usr/local/etc/privoxy/config
加入下面这两项配置项listen-address 0.0.0.0:8118 forward-socks5 / localhost:1080 .
因为没有安装在系统目录内,所以启动的时候需要打全路径。
sudo /usr/local/sbin/privoxy /usr/local/etc/privoxy/config
查看是否启动成功
netstat -na | grep 8118
或者
lsof -i -P | grep -i "listen"
看到有类似如下信息就表示启动成功了
tcp4 0 0 *.8118 *.* LISTEN
开启自启动
ln -sfv /usr/local/opt/privoxy/*.plist ~/Library/LaunchAgents
启动
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.privoxy.plist
privoxy使用
在命令行终端中输入如下命令后,该终端即可科学上网了。
export http_proxy='http://localhost:8118' export https_proxy='http://localhost:8118'
他的原理是讲socks5代理转化成http代理给命令行终端使用。
如果不想用了取消即可
unset http_proxy unset https_proxy
如果关闭终端窗口,功能就会失效,如果需要代理一直生效,则可以把上述两行代码添加到
~/.bash_profile
文件最后。(如果你是使用 zsh 那么就是 .zshrc)vim ~/.bash_profile
export http_proxy='http://localhost:8118' export https_proxy='http://localhost:8118'
使配置立即生效
source ~/.bash_profile
还可以在 ~/.bash_profile 里加入开关函数,使用起来更方便
function proxy_off(){ unset http_proxy unset https_proxy echo -e "已关闭代理" } function proxy_on() { export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" export http_proxy="http://127.0.0.1:8118" export https_proxy=$http_proxy echo -e "已开启代理" }
个人博客原文地址:http://biyongyao.com/archives/233