如何确保代理在 macOS iterm 中正常工作

如何确保代理在 macOS iterm 中正常工作

.zshrc现在我像这样设置代理:

alias proxy='export all_proxy=socks5://127.0.0.1:7890'

env在终端中使用命令进行检查,显示代理环境值,如下所示:

all_proxy=socks5://127.0.0.1:7890

但是当我使用此命令在 iTerm 中获取一些数据时,显示如下错误:

➜  ~ curl https://google.com
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to google.com:443

当我使用谷歌浏览器访问相同的网址时,它工作正常。我不知道哪里出了问题。如何检查代理是否有效?当我使用此命令检查 7890 端口时,显示如下输出:

➜  ~ lsof -i:7890
COMMAND     PID           USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google      680 xiaoqiangjiang   23u  IPv4 0x46cd4f2ea35741d7      0t0  TCP localhost:53183->localhost:7890 (ESTABLISHED)
Google      680 xiaoqiangjiang   25u  IPv4 0x46cd4f2ea3463747      0t0  TCP localhost:64063->localhost:7890 (ESTABLISHED)
Google      680 xiaoqiangjiang   26u  IPv4 0x46cd4f2ea346cc67      0t0  TCP localhost:64087->localhost:7890 (ESTABLISHED)
Google      680 xiaoqiangjiang   27u  IPv4 0x46cd4f2ea347b747      0t0  TCP localhost:64114->localhost:7890 (ESTABLISHED)
Google      680 xiaoqiangjiang   28u  IPv4 0x46cd4f2ea3516cb7      0t0  TCP localhost:64209->localhost:7890 (ESTABLISHED)

为什么iTerm中的curl命令不起作用?我尝试了这个命令,有效:

➜  react-admin git:(umi) curl -x socks5://127.0.0.1:7890 https://baidu.com
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>bfe/1.0.8.18</center>
</body>
</html>

我检查了ISP IP:113.97.201.136,它是代理服务器IP。这是详细日志:

➜  Downloads curl -x socks5://127.0.0.1:7890 https://google.com -v
*   Trying 127.0.0.1:7890...
* SOCKS5 connect to IPv4 8.7.198.46:443 (locally resolved)
* SOCKS5 request granted.
* Connected to 127.0.0.1 (127.0.0.1) port 7890 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to google.com:443
* Closing connection 0
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to google.com:443

答案1

抱歉,如果我在这里回答而不是发表评论,但我的声誉不够高,无法发表评论(今天加入)。但我不明白你在做什么。您正在定义一个别名,因此当您键入时,proxy您正在进行导出,以便让curl 使用它...但您没有说是否在您键入代理的实际curl 命令之前。除此之外,将其写入您的~/.curlrc:不是更好吗?

 proxy = "socks5://127.0.0.1:7890"

或者如果您确实想在您的 中使用别名~/.zshrc

alias curl="curl -x socks5://127.0.0.1:7890"

我想在您自己的解决方案中您缺少引号:

all_proxy=socks5://127.0.0.1:7890

应该

 all_proxy="socks5://127.0.0.1:7890"

因此

alias proxy = 'export all_proxy="socks5://127.0.0.1:7890"'

这应该是我无法发布的评论,因为信誉度较低 --> 该curl -x socks5://命令之所以有效,是因为您告诉curl 使用代理:它与我告诉您放入的别名相同~/.zshrc

相关内容