一招搞定Mac终端(Terminal)代理:通过bash_profile配置开关实现Terminal代理切换

MacOS 操作系统中,默认情况下,终端命令行不会通过代理进行网络连接。这导致在应用软件研发过程中,许多需要通过命令行下载安装的软件或依赖包无法成功安装。经常出现Failed to connect to xxx port 443 after 75329 ms: Couldn't connect to server错误提醒。

错误提醒

如果您需要让 Mac终端命令行走代理,可以按照以下步骤进行设置:

一、配置bash_profile文件

  • 首先:在当前用户根目录找到(新建)一个文件名为 .bash_profile文件,然后输入以下代码:
function proxy_off(){
        unset http_proxy
        unset https_proxy
        unset ftp_proxy
        unset rsync_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:7890"
        export https_proxy=$http_proxy
        export ftp_proxy=$http_proxy
        export rsync_proxy=$http_proxy
        export HTTP_PROXY=$http_proxy
        export HTTPS_PROXY=$http_proxy
        export FTP_PROXY=$http_proxy
        export RSYNC_PROXY=$http_proxy
        echo -e "已开启代理"
}

函数中的 http_proxy="http://127.0.0.1:7890"就是你代理的端口和IP,比方说我用的代理,默认端口就是7890。

  • 然后:
    当让终端走代理的时候,输入: source ~/.bash_profile proxy_on
    当想关闭代理的时候,输入:source ~/.bash_profile proxy_off

二、实操

首先,打开终端,输入:

source  ~/.bash_profile
proxy_on

让MacOS终端走代理

然后,测试是否开启成功:

curl www.google.com

测试是否开启成功

当安装相应软件后,关闭代理,输入:

source  ~/.bash_profile
proxy_off #或者直接关闭终端窗口
### 如何在 MacOS配置和使用代理服务器 #### 使用图形界面配置网络代理 对于大多数用户来说,最简单的方法是在系统偏好设置中更改网络代理设置。 - 打开 **系统偏好设置** -> **网络** - 选择当前使用的连接方式(Wi-Fi 或者以太网),点击 **高级...** - 切换到 **代理** 标签页,在这里可以选择不同的代理类型并输入相应的地址和端口[^1] 这种全局性的代理设置适用于大部分应用程序,但对于某些特定的应用程序可能不起作用,因为它们可能会忽略系统的代理设置而采用自身的代理机制。 #### 终端命令行工具 `networksetup` 配置 HTTP(S) 代理 如果希望通过命令行来快速切换代理状态,则可以利用内置的 `networksetup` 工具: ```bash sudo networksetup -setwebproxy Wi-Fi 127.0.0.1 8080 sudo networksetup -setsecurewebproxy Wi-Fi 127.0.0.1 8080 ``` 上述指令会为 Wi-Fi 接入服务开启HTTP 和 HTTPS 协议对应的 Web Proxy (http/https),其中 IP 地址应替换为目标代理服务器的实际IP地址;端口号也需相应调整。要取消这些设置只需执行带有 `-remove` 参数版本的相同命令即可[^3]。 #### 安装 Squid 实现本地缓存加速 当需要更复杂的控制时,比如想要实现基于规则的内容过滤或是提高访问速度的话,可以在 Mac OS X 中部署 squid 这样的开源软件包作为个人代理服务器。安装完成后编辑 `/usr/local/etc/squid.conf` 文件加入 DNS nameservers 条目指向所期望查询的目标名称解析器[^2]: ```conf dns_nameservers 8.8.8.8 8.8.4.4 ``` 这一步骤确保了即使主机本身处于严格受限环境下也能正常获取外部资源的位置信息从而顺利转发请求给真正的目标站点。 #### 自动脚本简化操作流程 为了进一步方便日常使用中的频繁变更需求,还可以编写简单的 shell 函数放入 `.zshrc` 或其他初始化文件里以便随时调用: ```bash function proxy_on() { export http_proxy=http://127.0.0.1:8080/ export https_proxy=$http_proxy } function proxy_off() { unset http_proxy https_proxy all_proxy } ``` 这样只需要运行 `proxy_on` 就能立即激活环境变量形式定义好的代理通道;相反地,只要发出 `proxy_off` 命令就能立刻恢复直连模式下的工作状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bjxiaxueliang

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值