前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux curl命令使用代理、以及代理种类介绍

Linux curl命令使用代理、以及代理种类介绍

作者头像
IT工作者
发布于 2021-12-20 10:26:23
发布于 2021-12-20 10:26:23
6.1K00
代码可运行
举报
文章被收录于专栏:程序技术知识程序技术知识
运行总次数:0
代码可运行

 有时出于个人隐私的原因,我们希望隐藏自己的IP,让http服务器无法记录我们访问过它,这时我们可以使用代理服务器。   代理服务器(Proxy Server)是工作在浏览器与http服务器之间的一个服务应用,所有经过代理服务器的http请求,都会被转发到对应的http服务器上。   当然,除了http可以使用代理外,https、ftp、RTSP、pop3等协议同样可以使用代理访问,不过本文介绍的是支持http、https协议访问的代理。

一、代理服务器分类:

  我们比较常用、支持http(s)协议代理主要分为两大类:http代理socks代理,见下表:

大类

小类

子类

描述

http代理

http代理 https代理

透明代理

http服务器知道浏览器端使用了代理,并能获取浏览器端原始IP;

匿名代理

http服务器知道浏览器端使用了代理,但无法获取浏览器端原始IP;

高匿名代理

http服务器不知道浏览器端使用了代理,且无法获取浏览器端原始IP;

SOCKS代理

SOCKS4

被称为全能代 理,支持http 和其他协议

只支持TCP应用;

SOCKS4A

支持TCP应用;支持服务器端域名解析;

SOCKS5

支持TCP和UDP应用;支持服务器端域名解析; 支持多种身份验证;支持IPV6;

二、Linux curl命令代理设置参数:

  linux curl命令可以使用下面参数设置http(s)代理、socks代理,已经设置它们的用户名、密码以及认证方式:

参数

用法

-x host:port -x [protocol://[user:pwd@]host[:port] --proxy [protocol://[user:pwd@]host[:port]

使用HTTP代理访问;如果未指定端口,默认使用8080端口; protocol默认为http_proxy,其他可能的值包括: http_proxy、HTTPS_PROXY、socks4、socks4a、socks5; 如: --proxy 8.8.8.8:8080; -x "http_proxy://aiezu:123@aiezu.com:80"

--socks4 <host[:port]> --socks4a <host[:port]> --socks5 <host[:port]>

使用SOCKS4代理; 使用SOCKS4A代理; 使用SOCKS5代理; 此参数会覆盖“-x”参数;

--proxy-anyauth --proxy-basic --proxy-diges --proxy-negotiate --proxy-ntlm

代理认证方式,参考: --anyauth --basic --diges --negotiate --ntlm

-U <user:password> --proxy-user <user:password>

设置代理的用户名和密码;

三、Linux curl命令设置代理举例:

1、linux curl命令设置http代理:

# 指定http代理IP和端口 curl -x 113.185.19.192:80 http://aiezu.com/test.php curl --proxy 113.185.19.192:80 http://aiezu.com/test.php #指定为http代理 curl -x http_proxy://113.185.19.192:80 http://aiezu.com/test.php #指定为https代理 curl -x HTTPS_PROXY://113.185.19.192:80 http://aiezu.com/test.php #指定代理用户名和密码,basic认证方式 curl -x aiezu:123456@113.185.19.192:80 http://aiezu.com/test.php curl -x 113.185.19.192:80 -U aiezu:123456 http://aiezu.com/test.php curl -x 113.185.19.192:80 --proxy-user aiezu:123456 http://aiezu.com/test.php #指定代理用户名和密码,ntlm认证方式 curl -x 113.185.19.192:80 -U aiezu:123456 --proxy-ntlm http://aiezu.com/test.php #指定代理协议、用户名和密码,basic认证方式 curl -x http_proxy://aiezu:123456@113.185.19.192:80 http://aiezu.com/test.php

2、Linux curl命令设置socks代理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#使用socks4代理,无需认证方式

curl --socks4 122.192.32.76:7280 http://aiezu.com/test.php

curl -x socks4://122.192.32.76:7280 http://aiezu.com/test.php



#使用socks4a代理,无需认证方式

curl --socks4a 122.192.32.76:7280 http://aiezu.com/test.php

curl -x socks4a://122.192.32.76:7280 http://aiezu.com/test.php


#使用socks5代理,basic认证方式

curl --socks5 122.192.32.76:7280 -U aiezu:123456 http://aiezu.com/test.php

curl -x socks5://aiezu:123456@122.192.32.76:7280 http://aiezu.com/test.php



#使用socks5代理,basic认证方式,ntlm认证方式

curl -x socks5://aiezu:123456@122.192.32.76:7280 --proxy-ntlm http://aiezu.com/test.php

四、测试代理的隐匿度:

1、测试前准备:

  测试前,我们先在网站根目录也一个php页面“test.php”,用于输出http服务器接收到的访客IP地址信息,"test.php"测试页的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

$array = array('HTTP_USER_AGENT', 'HTTP_HOST', 'HTTP_ACCEPT', 'PATH', 'SERVER_SIGNATURE', 'SERVER_SOFTWARE', 'SERVER_NAME', 'SERVER_ADDR', 'SERVER_PORT', 
'DOCUMENT_ROOT', 'SERVER_ADMIN', 'SCRIPT_FILENAME', 'REMOTE_PORT', 'GATEWAY_INTERFACE', 'SERVER_PROTOCOL', 'REQUEST_METHOD', 'QUERY_STRING', 'REQUEST_URI', 'SCRIPT_NAME', 'PHP_SELF', 'REQUEST_TIME');

//  将 $_SERVER 数组赋予 $srv数组;

$srv = $_SERVER;

// 释放掉 $srv中不相关的键

foreach($array as $name ) {

    unset($srv[ $name ]);

}

print_r($srv);

  保存好"test.php"后,然后我们通过不用代理,和使用透明代理、匿名代理、高匿名代理、SOCKS分别去访问,看页面输出的内容结果。

2、测试使用不同代理输出结果:

  ①. 通过linux curl不使用代理访问:

[root@aiezu.com ~]# curl http://aiezu.com/test.php Array ( [REMOTE_ADDR] => 114.112.104.126 )

  可以看出,http服务器获取到的"REMOTE_ADDR"IP地址为"114.112.104.126",此IP地址就是客户端lcurl的真实IP地址。   ②. 通过linux curl命令使用http透明代理访问:

[root@aiezu.com ~]# curl -x 37.139.9.11:80 http://aiezu.com/test.php Array ( [HTTP_VIA] => 1.1 ThunderVPN (squid/3.3.8) [HTTP_X_FORWARDED_FOR] => 114.112.104.126 [HTTP_CACHE_CONTROL] => max-age=259200 [HTTP_CONNECTION] => keep-alive [REMOTE_ADDR] => 37.139.9.11 )

  可以看出REMOTE_ADDR字段变成了代理服务器的IP地址,同时真实IP地址也能从HTTP_X_FORWARDED_FOR字段获取到,还多了一个“HTTP_VIA”字段,可以看出出代理并不能隐藏真实IP,而且也会让http服务器自动浏览器端使用了代理。   ③. 通过linux curl命令使用http匿名代理访问:

[root@aiezu.com ~]# curl -x 60.21.209.114:8080 http://aiezu.com/test.php Array ( [HTTP_PROXY_CONNECTION] => Keep-Alive [REMOTE_ADDR] => 60.21.209.114 )

  从上面可以看出,REMOTE_ADDR字段变成了代理服务器的IP地址,而且在响应不包含原来的真实IP地址,但是多了HTTP_PROXY_CONNECTION,能判断出使用了代理,得出结论此浏览器客户端使用了匿名代理。   ④. 通过linux curl命令使用http高匿名代理访问:

[root@aiezu.com ~]# curl -x 114.232.1.13:8088 http://aiezu.com/test.php Array ( [REMOTE_ADDR] => 114.232.1.13 )

  这次我们惊奇的发现,REMOTE_ADDR同样变成了代理的IP地址,同时不留下任何残留证据证明使用了代理,可以得出结论,这就是传说中的高匿名代理。   ④. 通过linux curl命令使用socks5代理访问:

[root@aiezu.com ~]# curl --socks5 122.192.32.76:7280 http://aiezu.com/test.php Array ( [REMOTE_ADDR] => 180.96.54.198 )

  可以看出此SOCKS5代理也是高匿名代理。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何配合代理使用cURL?
本文将分步骤介绍如何配合代理服务器使用cURL或curl。从安装到设置代理的各种选项,面面俱到。
用户7850017
2021/05/18
3.4K0
如何配合代理使用cURL?
Linux curl命令最全详解
curl是一个非常实用的、用来与服务器之间传输数据的工具;支持的协议包括 (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP),curl设计为无用户交互下完成工作;curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传…。
全栈程序员站长
2022/09/19
4.2K0
Linux curl命令最全详解
curl命令使用
一、curl常用命令 这个命令我在linux下用的多一些,windows也可以,可以说是一款很强大的http命令行工具,支持上传、下载等操作,非常莱斯的工具。 1、get请求:并返回resp curl https://www.gaojs.com.cn # 测试请求是否可达:显示一次http通信的整个过程,包括端口连接和http request头信息 curl -v https://www.gaojs.com.cn 2、post请求 # post请求 curl -X -POST https://w
懿曲折扇情
2022/08/24
4.8K0
curl命令使用
curl命令
curl是一个命令行工具,用于使用任何受支持的协议HTTP、FTP、IMAP、POP3、SCP、SFTP、SMTP、TFTP、TELNET、LDAP或FILE向网络服务器传输数据或从网络服务器传输数据,其被设计成无需用户交互即可工作,因此非常适合在shell脚本中使用,该软件提供代理支持、用户身份验证、FTP上传、HTTP posting、SSL连接、cookie、文件断点传输、metalink等功能。
WindRunnerMax
2022/05/06
9.4K0
Linux curl 命令模拟 POST/GET 请求
curl 支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
阳光岛主
2019/02/18
5.8K0
Python等十多种编程语言使用代理示例
米扑代理示例(mimvp-proxy-demo)聚合了多种编程语言使用代理IP,由北京米扑科技有限公司(mimvp.com)原创分享。
阳光岛主
2019/02/18
1.6K0
Python等十多种编程语言使用代理示例
Shell curl 和 wget 使用代理IP
Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget
阳光岛主
2019/02/18
1.5K0
Shell curl 和 wget 使用代理IP
Linux 命令(136)—— curl 命令
curl 命令是一个利用 URL 规则在 Shell 终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。
恋喵大鲤鱼
2020/03/09
3.7K0
【linux命令讲解大全】147.curl命令:命令行文件传输工具(上)
curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
全栈若城
2024/03/02
4760
linux curl 测试域名劫持
-v 参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。
葫芦
2019/05/24
10.3K0
windows下使用curl命令 && 常用curl命令
什么是curl命令? curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 如何在win
Java学习123
2018/05/16
5.1K0
curl 命令详解
转载于: https://www.cnblogs.com/guixiaoming/p/8507268.html
全栈程序员站长
2022/09/07
5870
介绍几个socks5代理IP工具
Socks5代理IP是什么?很多小伙伴对于这个都不是很熟悉,下面小编将给大家具体介绍下socks5是什么,并介绍几个socks5代理工具。
互联网的鱼
2023/04/23
9.7K0
linux curl命令详解_curl详解
curl(CommandLine Uniform Resource Locator),即在命令行中利用URL进行数据或者文件传输。
全栈程序员站长
2022/11/01
16.7K0
windows环境下 curl 安装和使用
一、curl 安装 curl下载地址:https://curl.haxx.se/download.html,如下图所示: 下载完成后,解压。 二、配置环境变量 在系统高级环境变量中,配置
Java学习123
2018/05/16
2.1K0
curl命令调试接口「建议收藏」
大家好,很快就过年了,在这里先祝各位新年快乐,阖家欢乐!现在我们切入主题,在我们平时开发接口完成后,需要上线联调接口,而接口往往和业务逻辑精密联系,想要调试接口,就需要将业务测一遍,那么有没有更好的办法使得调试更简单?
全栈程序员站长
2022/08/01
2K0
Linux系列之学会使用CURL命令进行URL测试
curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;curl命令作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。
SmileNicky
2022/05/07
2.2K0
Linux系列之学会使用CURL命令进行URL测试
Linux curl命令详解
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。
shaonbean
2019/05/26
9.2K0
curl命令参数以及curl监控web是否OK自动重启应用脚本示例
[先上curl监控web自动重启脚本(这个一个接口调用,只考虑返回码200的情况)]
明哥的运维笔记
2019/01/30
8860
Linux系列之学会使用CURL命令
curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;curl命令作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。
SmileNicky
2020/07/21
1.4K0
相关推荐
如何配合代理使用cURL?
更多 >
LV.2
美团美团技术学院
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验