如何在Linux/Unix上使用curl命令和代理用户名/密码
时间:2020-01-09 10:42:11 来源:igfitidea点击:
我的系统管理员为我提供了以下代理详细信息:IP: 202.54.1.1 Port: 3128 Username: foo Password: bar
设置与Google Chrome和Firefox浏览器完美配合。
如何与curl命令一起使用?
如何告诉curl命令使用Google Chrome浏览器中的代理设置?
许多Linux和Unix命令行工具,例如curl命令,wget命令,lynx命令等。
使用名为http_proxy,https_proxy,ftp_proxy的环境变量来查找代理详细信息。
它允许您通过带有或者不带有用户名/密码的代理服务器连接基于文本的会话和应用程序。
他的页面显示了如何使用PROXY服务器使用cURL cli执行HTTP/HTTPS请求。
带有代理语法的Unix和Linux curl命令
语法为:
## Set the proxy address of your uni/company/vpn network ## export http_proxy=http://your-ip-address:port/ ## http_proxy with username and password export http_proxy=http://user:password@your-proxy-ip-address:port/ ## HTTPS version ## export https_proxy=https://your-ip-address:port/ export https_proxy=https://user:password@your-proxy-ip-address:port/
另一个选项是将-x选项传递给curl命令。
要使用指定的代理:
curl -x <[protocol://][user:password@]proxyhost[:port]> url --proxy <[protocol://][user:password@]proxyhost[:port]> url --proxy http://user:password@Your-Ip-Here:Port url -x http://user:password@Your-Ip-Here:Port url
Linux将curl命令与代理一起使用
首先设置http_proxy:
## proxy server, 192.54.1.1, port: 3128, user: foo, password: bar ## export http_proxy=http://foo:[email protected]:3128/ export https_proxy=$http_proxy ## Use the curl command ## curl -I https://www.theitroad.local curl -v -I https://www.theitroad.local
输出示例:
* Rebuilt URL to: www.theitroad.local/ * Trying 192.54.1.1... * Connected to 1192.54.1.1 (192.54.1.1) port 3128 (#0) * Proxy auth using Basic with user 'foo' > HEAD HTTP://www.theitroad.local/ HTTP/1.1 > Host: www.theitroad.local > Proxy-Authorization: Basic x9VuUml2xm0vdg93MtIz > User-Agent: curl/7.43.0 > Accept: */* > Proxy-Connection: Keep-Alive > < HTTP/1.1 200 OK HTTP/1.1 200 OK < Server: nginx Server: nginx < Date: Sun, 17 Jan 2015 11:49:21 GMT Date: Sun, 17 Jan 2015 11:49:21 GMT < Content-Type: text/html; charset=UTF-8 Content-Type: text/html; charset=UTF-8 < Vary: Accept-Encoding Vary: Accept-Encoding < X-Whom: Dyno-l1-com-cyber X-Whom: Dyno-l1-com-cyber < Vary: Cookie Vary: Cookie < Link: <http://www.theitroad.local/wp-json/>; rel="https://api.w.org/" Link: <http://www.theitroad.local/wp-json/>; rel="https://api.w.org/" < X-Frame-Options: SAMEORIGIN X-Frame-Options: SAMEORIGIN < X-Content-Type-Options: nosniff X-Content-Type-Options: nosniff < X-XSS-Protection: 1; mode=block X-XSS-Protection: 1; mode=block < X-Cache: MISS from server1 X-Cache: MISS from server1 < X-Cache-Lookup: MISS from server1:3128 X-Cache-Lookup: MISS from server1:3128 < Connection: keep-alive Connection: keep-alive < * Connection #0 to host 10.12.249.194 left intact
在此示例中,我正在下载pdf文件:
$ export http_proxy="Hyman:[email protected]:3128/" $ curl -v -O http://dl.theitroad.local/pdfdownloads/b8bf71be9da19d3feeee27a0a6960cb3/569b7f08/cms/631.pdf
或者使用-x选项:
curl -x 'http://Hyman:[email protected]:3128' -v -O https://dl.theitroad.local/pdfdownloads/b8bf71be9da19d3feeee27a0a6960cb3/569b7f08/cms/631.pdf
输出示例:
实际卷曲
如何在Unix上的curl中使用指定的代理服务器
$ curl -x http://prox_server_vpn:3128/ -I https://www.theitroad.local/faq/howto-nginx-customizing-404-403-error-page/
如何使用socks协议?
语法相同:
curl -x socks5://[user:password@]proxyhost[:port]/ url curl --socks5 192.168.1.254:3099 https://www.theitroad.local/
如何配置和设置curl以永久使用代理连接?
使用文本编辑器(例如vim)更新/编辑~/.curlrc文件:
$ vi ~/.curlrc
追加以下内容:
proxy = server1.theitroad.local:3128 proxy-user = "foo:bar"
保存并关闭文件。
另一个选择是在~/.bashrc文件中创建bash shell别名:
## alias for curl command ## set proxy-server and port, the syntax is ## alias curl="curl -x {your_proxy_host}:{proxy_port}" alias curl="curl -x server1.theitroad.local:3128"
请记住,可以使用protocol://前缀指定代理字符串,以指定其他代理协议。
使用socks4://,socks4a://,socks5://或者socks5h://来请求要使用的特定SOCKS版本。
未指定协议,http://和所有其他协议都将被视为HTTP代理。
如果未在代理字符串中指定端口号,则假定该端口号为1080。
-x选项将覆盖将代理设置为使用的现有环境变量。
如果有环境变量设置代理,则可以将代理设置为来覆盖它。