【转载】macOS terminal走代理流量的解决方法

文章参考:

设置mac终端走代理
mac terminal利用privoxy使用代理服务
Make shadowsocks work in Mac terminal through proxychains
Using Shadowsocks with Command Line Tools
macport安装

综合上文与个人使用实测,使用方法如下:

安装privoxy将socks5代理转化成http代理给命令行终端使用

如果未曾安装,先在AppStore下载安装Xcode并打开完成基础包的下载,然后打开terminal,输入命令:xcode-select --install根据提示完成安装。然后输入sudo xcodebuild -license进行证书允许操作,一路空格最后输入agree。然后在这个地址https://www.macports.org/install.php里进行相应版本的macport的下载,安装完成后使用以下命令完成环境变量的配置。

1
2
cd ~/
vi .bash_profile
然后粘贴以下内容,esc然后:wq即可
1
2
export PATH=/opt/local/bin:$PATH
export PATH=/opt/local/sbin:$PATH

最后执行

1
sudo port install privoxy

安装后发现/opt/local/sbin/opt/local/etc中多了privoxy

配置

执行
1
sudo vi /opt/local/etc/privoxy/config
在文件末尾写入
1
2
listen-address 0.0.0.0:8118
forward-socks5 / localhost:1080 .
其中0.0.0.0代码监听任意ip,8118走http协议
1080需要改成你自己配置的代理端口号

使用

1
2
3
sudo /opt/local/sbin/privoxy /opt/local/etc/privoxy/config
export http_proxy='http://localhost:8118'
export https_proxy='http://localhost:8118'
或者
1
echo "yourpassword" | sudo -S /opt/local/sbin/privoxy /opt/local/etc/privoxy/config && export http_proxy='http://localhost:8118'  && export https_proxy='http://localhost:8118'
也可以将下面的文件直接写成脚本文件,使用时直接调用,其中yourpassword换成你机子的root密码
1
2
3
echo "yourpassword" | sudo -S /opt/local/sbin/privoxy /opt/local/etc/privoxy/config
export http_proxy='http://localhost:8118'
export https_proxy='http://localhost:8118'

不过,通过配置代理是不能影响ping命令的。大家都知道ping命令是直接使用icmp协议来检测网址是否可达的。而我们配置的代理是直接配置了http代理。

Http是应用层协议,icmp是网络层协议,所以我们是、配置了应用层协议,是不会影响网络层协议的,也就解释了设置http代理以后在终端还是ping不通Google。

如果需要查看terminal是否走代理流量,可以使用curl cip.cc命令查看反馈的IP

发表评论

电子邮件地址不会被公开。 必填项已用*标注

滚动到顶部