在mac中,如何在terminal中可以做到访问google
前提是已经使用proxy可以在浏览器中访问google
首先查看当前的位置信息
1 | ➜ ~ curl cip.cc |
在配置文件中添加两行proxy的配置,
vim ~/.zshrc
vim ~/.bash_profile
1 | export http_proxy=socks5://127.0.0.1:1080 # 配置http 代理访问 |
或者
1 | export http_proxy=http://127.0.0.1:1087 |
检验是否配置成功
1 | ➜ ~ env | grep -i proxy |
临时取消配置
1 | ➜ ~ unset http_proxy |
查看修改后的位置信息
1 | ➜ ~ curl cip.cc |
终端可以访问Google,但终端无法ping的通Google
1 | ➜ ~ ping www.google.com |
原因是上层模型依赖下层模型
ping
命令使用的ICMP
协议,作用在OSI模型第3层——网络层(IP层)而SOCKS作用在OSI模型的第5层——会话层
HTTP、FTP、SMTP作用在OSI模型第7层——网络层
ss支持的代理协议是socks(5 会话层)和http(7 应用层),最终都依赖于TCP(4 传输层)和IP协议(3 网络层),发送tcp数据包,但并不能代理第3层——网络层
不过在这里可以换一个工具httping
安装
1 | brew install httping |
使用
1 | ➜ ~ httping -x 127.0.0.1:1087 -g google.com |
同理,Telnet协议是TCP/IP协议族中的一员,所以telnet也无法访问google