.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
。