Homebrew 装软件失败

发现问题

都说什么 M4 单核性能很强,一提到单核性能我就想起了 Minecraft 只吃单核性能,所以想着测试一下这个游戏在 M4 上的运行表现。

首先当然是要安装 Java 了。

打开终端用 brew 来安装 jdk,结果出现了一堆报错。

报错内容无非就是无法访问到 formulae.brew.sh 罢了。

因为此前那啥都是装在路由器里的,所以用 brew 的官方源没有出现过什么网络问题,这次是用的别的 Wi-Fi,出现这种网络报错也不是什么新鲜事。

电脑本地开了个那啥,浏览器可以正常访问那啥了,但终端 brew 仍然无法正常搜索到 jdk,尝试 ping 那啥,结果超时。

那啥开了全局也不行(理论上是行了的,但我不知道为什么我开全局不行),总之感觉就像终端窗口跟系统不在一台电脑上似的。

于是打开了搜索引擎,开始了折腾。

解决办法

为什么终端无法使用那啥,网上说法挺多的,我摘选了两段:

可以确定的是在mac下(其实win也是不会)使用那啥后不管是开全局还是按照规则在终端都不会生效,但是关于原因众说纷纭,大家都比较认可的理由是那啥类软件默认是代理socket5,而终端是http。

链接1

终端使用的网络配置与系统的全局那啥设置是分开的。

链接2

上面摘选的出处链接里已经写清楚解决办法了。

但我这里还是贴出我实测有用的方式,参考自:链接3

首先第一步是找到那啥软件的 http 端口或“混合”端口,不同的软件设置项也不一样,就不细写了,我这里是 7890。

然后确定本机 ip,理所当然是 127.0.0.1。

那么组合起来就是 127.0.0.1:7890

接下来进入终端,在当前用户目录下的 .zshrc 中添加如下内容:

https_proxy=http://127.0.0.1:7890
http_proxy=http://127.0.0.1:7890
all_proxy=socks5://127.0.0.1:7890

里面的 127.0.0.1:7890 就是上面找到的 http 地址了。

如果没有 .zshrc 就先创建一个,但还是需要确认用的 shell 是什么,输入 echo $SHELL 查看,macOS 一般来讲默认是 /bin/zsh ,除非主动更改了。如果不是 zsh,是 bash 的话,就写进 .bashrc

然后 source 一下:source ~/.zshrc 就行了。

执行 curl ipinfo.io 可以看到 IP 地址变了。

要关闭就在 .zshrc 里把那三行注释掉,然后 source ~/.zshrc 。为什么会需要关闭呢?主要是如果那啥被关了的话,你的终端就连不上网了……

两个更好的办法

如果觉得改配置文件麻烦的话,有两个更简单的办法。

1.临时使用

如果端口变了,或者那啥关掉了,是不是还得重新改 .zshrc 文件呢?这很麻烦。

其实 macOS 上的那啥自带一个“复制终端代理命令”的选项的,在那啥的主界面按快捷键 command+c 就行了,然后你就会得到类似这样一个命令:

export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

然后在终端执行,就能临时生效了。终端关闭后就会失效,防止出现我上面说的那啥被关掉了,导致终端连不上网的问题。

2.TUN 模式

这个模式在那啥软件里一般叫“TUN 模式”或者“全局模式”,只要开启了这个模式,那啥软件就会创建一个或者几个虚拟网卡,然后整个系统的流量都会从这些虚拟网卡进出,所以也就包括了终端的流量。

这样做整等于是让那啥软件接管了整个系统的出入流量,用这个模式比较简单粗暴,我听说很多 Linux 用户都是这么干的。

终端和系统的网络是分开的,这件事我还真没想到,不知道 Windows 系统是不是也是这样,没留意过。

这篇文章只是个记录,没有写得很详细,不知道以后遇到这种问题的时候再翻看这篇文章还看不看得懂。


Homebrew 装软件失败
https://vi.diipx.com/2025/homebrew-timeout
作者
晚空
发布于
2025年06月30日
许可协议