Index / Mac

Mac 终端设置代理,设置一键开启和取消

原文:https://ichochy.com/posts/mac/20231125.html

终端配置代理

这里以macOS为例,使用的是zsh,对应的用户配置文件就是~/.zshrc

导入环境变量

将下面信息写入到~/.zshrc文件中
分别导入 http_proxy、https_proxy、sockes_proxy 三个环竟变量

export http_proxy="http://127.0.0.1/8888"
export https_proxy="http://127.0.0.1/8888"
export socks_proxy="socks://127.0.0.1/8885"

注:根据自己的代理地址配置

加载配置文件

在终端中运行 source ~/.zshrc,加载配置文件,让其配置生效

引起注意,说三遍……
运行 `source` 加载配置文件  
运行 `source` 加载配置文件  
运行 `source` 加载配置文件  
……

查看环境变量

在终端中运行 env ,查看导入的环境变量是否生效

TERM_PROGRAM=Apple_Terminal
SHELL=/bin/zsh
USER=iChochy
HOME=/Users/iChochy
http_proxy=http://127.0.0.1/8888
https_proxy=http://127.0.0.1/8888
socks_proxy=socks://127.0.0.1/8885
……

可以看到 http_proxy、https_proxy、sockes_proxy 已经生效了。

测试

通过 curl 来作测,查看网络访问的情况

curl -vI https://ichochy.com
* Uses proxy env variable HTTP_PROXY == 'http://127.0.0.1:8888'
*   Trying 127.0.0.1:8888...
* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
> HEAD http://ichochy.com/ HTTP/1.1
> Host: ichochy.com
> User-Agent: curl/8.1.2
> Accept: */*
> Proxy-Connection: Keep-Alive
……

可以看到 Trying 127.0.0.1:8888... 通过代理访问网络

注:curl 参数 v 显示请求详情,I 只显示请求头信息

通过命令添加、删除代理

~/.zshrc 中设置别名命令

# 通过 alias 定义别名命令
alias add_proxy='export ALL_PROXY=http://127.0.0.1:8888'
alias un_proxy='unset ALL_PROXY'

运行 source ~/.zshrc 加载配置文件
执行 add_proxy 命令添加代理
执行 un_proxy 命令删除代理

引起注意,说三遍……
运行 `source` 加载配置文件  
运行 `source` 加载配置文件  
运行 `source` 加载配置文件  
……

注:ALL_PROXY 所有网络代理

通过 ip 来查看当前的外网 IP

~/.zshrc 中通过 alias 定义命令 ip

# 通过 alias 定义命令 `ip`
alias ip="curl ipinfo.io"

运行 source ~/.zshrc 加载配置文件
执行 ip 命令查询外网 IP

# ip
{
  "ip": "8.8.8.8",
  "city": "sh",
  "region": "sh",
  "country": "CN",
  "loc": "88,55",
  "org": "CHINANET",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}% 

查询IP信息的网站

https://bgp.he.net
https://ipinfo.io
https://ip-api.com
https://whoer.net