curl 挂代理过程遇到的一个小坑

Posted by benjamingao on February 28, 2019

curl 挂代理过程遇到的一个小坑

前提

  • 本机地址:127.0.0.1
  • 本地 socks5 端口:1086,本地 http 端口:1087
  • 系统:macOS 10.13.0
  • curl 版本:7.54.0 (x86_64-apple-darwin17.0)
➜  Documents curl -V
curl 7.54.0 (x86_64-apple-darwin17.0) libcurl/7.54.0 LibreSSL/2.0.20 zlib/1.2.11 nghttp2/1.24.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy

上面是我本机的,你自己的看好,做好对应即可。在谷歌找了一下,没发现准确的说清楚怎么挂代理的,很多都不能用,我也不知道为什么,能用我也不至于写这篇文章了。

本人不熟悉命令行,其实命令 curl --help 里都写了。

临时代理

临时代理格式

➜  ~ curl -x 代理地址 网址
  • 代理地址:需要写清楚到底是 socks5 还是 http,非常重要,如果不写,默认 http

具体例子

socks5

➜  ~ curl -x socks5://127.0.0.1:1086 cip.cc
IP	: 5X.1XX.1XX.1XX
地址	: 中国  香港

数据二	: 香港 

数据三	: 中国香港香港

http

➜  ~ curl -x http://127.0.0.1:1087 cip.cc
IP	: 5X.1XX.1XX.1XX
地址	: 中国  香港

数据二	: 香港 

数据三	: 中国香港香港

永久代理

用户目录下创建 .curlrc(文件名就是这个) 文件,文件内容:

socks5

proxy="socks5://127.0.0.1:1086"

http

proxy="http://127.0.0.1:1087"
  • 注意协议与端口的匹配

参考链接

https://www.tylinux.com/2016/08/30/live-under-console-on-macOS/