shadowsocks设置为:
- 打开
shadowsocks
- 自动代理模式
- 服务器(香港阿里云)
以zsh作为说明
添加如下代理配置:
# proxy list
alias proxy='export all_proxy=socks5://127.0.0.1:1080'
alias unproxy='unset all_proxy'
:wq保存退出
使用proxy前先查看下当前的ip地址:
➜ ~ curl ip.cn
当前 IP:112.64.xxx.xx 来自:上海市 联通
或者
~ curl cip.cc
IP : 140.206.97.42
地址 : 中国 上海
数据二 : 上海市 | 联通
URL : http://www.cip.cc/140.206.97.42
执行:
➜ ~ proxy
➜ ~ curl ip.cn
当前 IP:47.89.xx.xxx 来自:香港特别行政区 阿里云
如果ip.cn不能用,可以换个类似的站点查询
~ curl cip.cc
IP : 45.78.47.19
地址 : 美国 加利福尼亚
数据二 : 美国 | 加利福尼亚州洛杉矶市 IT7 Networks
URL : http://www.cip.cc/45.78.47.19
没问题,终端走了代理,brew update顺畅了- -
如果不需要走代理,执行:
➜ ~ unproxy
➜ ~ curl ip.cn
当前 IP:112.64.xxx.xx 来自:上海市 联通
部分网络用curl cip.cc命令获取到的是国内网络运营商的IP,可以直接curl google.com测试是否代理成功。
设置代理成功:
➜ ~ curl google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
没有设置代理:
➜ ~ curl google.com
curl: (52) Empty reply from server
proxychains-ng
➜ ~ brew install proxychains-ng
Updating Homebrew...
由于OSX升级后的SIP限制,在proxychains.conf文件中设置ss的socks5代理,无效了。解决办法是在重启后,在Recovery mode下关闭SIP,但对于强迫症来说,不能忍(安全问题)。详见
rofl0r/proxychains-ng/issues/78
➜ ~ proxychains4 curl ip.cn
[proxychains] config file found: /usr/local/Cellar/proxychains-ng/4.12/etc/proxychains.conf
[proxychains] preloading /usr/local/Cellar/proxychains-ng/4.12/lib/libproxychains4.dylib
当前 IP:112.64.xxx.xx 来自:上海市 联通
配置文件/usr/local/Cellar/proxychains-ng/4.12/etc/proxychains.conf:
111 [ProxyList]
112 # add proxy here ...
113 # meanwile
114 # defaults set to "tor"
115 #socks4 127.0.0.1 9050
116 socks5 127.0.0.1 1080
更新2017.07.21
osx下使用brew安装google-chrome时:
% brew cask install google-chrome
==> Satisfying dependencies
==> Downloading https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
curl: (6) Could not resolve host: dl.google.com
Error: Download failed on Cask 'google-chrome' with message: Download failed: https://dl.google.com/chrome/mac/stable/GGRO/googlechrome.dmg
Error: Install incomplete.
通过设置terminal的http代理解决:
% export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;
更新:
我们可以在shadowsocks server端查看日志:
sudo tail -f /var/log/shadowsocks.log
日志如下图:

用其中一条日志做说明:
2019-08-22 17:02:14 INFO connecting mtalk.google.com:5228 from 58.247.150.247:61603
含义是:时间戳 日志级别 connecting 连接的目标服务器URL地址 from 客户端地址:端口
客户端地址就是我本机了,通过本机启动的shadowsocks客户端连接到shadowsocks服务端。
查看本机外网IP:
☁ quick-start [master] ⚡ curl ip.gs
Current IP / 当前 IP: 58.247.150.247
ISP / 运营商: ChinaUnicom
City / 城市: Shanghai Shanghai
Country / 国家: China
IP.GS is now IP.SB, please visit https://ip.sb/ for more information. / IP.GS 已更改为 IP.SB ,请访问 https://ip.sb/ 获取更详细 IP 信息!
Please join Telegram group https://t.me/sbfans if you have any issues. / 如有问题,请加入 Telegram 群 https://t.me/sbfans
/\_/\
=( °w° )=
) ( //
(__ __)//
Current IP: 58.247.150.247,和shadowsocks服务端日志打印出来的客户端地址一致
问题:为什么terminal终端不能使用系统代理(WIFI网络设置中的HTTP,SOCKS代理设置)?
答:https://apple.stackexchange.com/questions/333672/proxy-is-configured-correctly-i-guess-appstore-and-safari-work-fine-but-net
问题:为什么设置了http_proxy等环境变量,git, curl等命令行工具可以魔法上网了?
答:git,wget, curl,brew等cli,甚至GCP提供的gcloud sdk内部都会读取http_proxy, https_proxy, all_proxy等系统环境变量:
仅仅是应用程序运行时环境变量,没有魔法。比如Node.js应用程序,可以使用process.env.http_proxy来读取程序运行时环境变量。其他语言比如Go, Java, Python, PHP都有各自的内置标准库API或全局变量(比如Node.js的process)来读取系统环境变量。git, wget, curl, brew, gcloud和我们自己写的应用程序一样,没什么特殊的。
node
Welcome to Node.js v14.16.0.
Type ".help" for more information.
> process.env.http_proxy
'http://127.0.0.1:7890'
参考:

shadowsocks设置为:shadowsocks以
zsh作为说明添加如下代理配置:
:wq保存退出使用
proxy前先查看下当前的ip地址:➜ ~ curl ip.cn 当前 IP:112.64.xxx.xx 来自:上海市 联通或者
执行:
如果ip.cn不能用,可以换个类似的站点查询
没问题,终端走了代理,
brew update顺畅了- -如果不需要走代理,执行:
部分网络用
curl cip.cc命令获取到的是国内网络运营商的IP,可以直接curl google.com测试是否代理成功。设置代理成功:
没有设置代理:
➜ ~ curl google.com curl: (52) Empty reply from serverproxychains-ng
➜ ~ brew install proxychains-ng Updating Homebrew...由于
OSX升级后的SIP限制,在proxychains.conf文件中设置ss的socks5代理,无效了。解决办法是在重启后,在Recovery mode下关闭SIP,但对于强迫症来说,不能忍(安全问题)。详见rofl0r/proxychains-ng/issues/78
配置文件
/usr/local/Cellar/proxychains-ng/4.12/etc/proxychains.conf:更新2017.07.21
osx下使用brew安装google-chrome时:通过设置
terminal的http代理解决:更新:
我们可以在shadowsocks server端查看日志:
日志如下图:
用其中一条日志做说明:
含义是:时间戳 日志级别 connecting 连接的目标服务器URL地址 from 客户端地址:端口
客户端地址就是我本机了,通过本机启动的shadowsocks客户端连接到shadowsocks服务端。
查看本机外网IP:
Current IP: 58.247.150.247,和shadowsocks服务端日志打印出来的客户端地址一致
问题:为什么terminal终端不能使用系统代理(WIFI网络设置中的HTTP,SOCKS代理设置)?
答:https://apple.stackexchange.com/questions/333672/proxy-is-configured-correctly-i-guess-appstore-and-safari-work-fine-but-net
问题:为什么设置了
http_proxy等环境变量,git, curl等命令行工具可以魔法上网了?答:git,wget, curl,brew等cli,甚至GCP提供的gcloud sdk内部都会读取
http_proxy,https_proxy,all_proxy等系统环境变量:仅仅是应用程序运行时环境变量,没有魔法。比如Node.js应用程序,可以使用
process.env.http_proxy来读取程序运行时环境变量。其他语言比如Go, Java, Python, PHP都有各自的内置标准库API或全局变量(比如Node.js的process)来读取系统环境变量。git, wget, curl, brew, gcloud和我们自己写的应用程序一样,没什么特殊的。参考: