Linux curl命令使用代理、以及代理种类介绍
共 5813字,需浏览 12分钟
· 2024-04-12
有时出于个人隐私的原因,我们希望隐藏自己的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代理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
2、Linux curl命令设置socks代理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
四、测试代理的隐匿度:
1、测试前准备:
测试前,我们先在网站根目录也一个php页面“test.php”,用于输出http服务器接收到的访客IP地址信息,"test.php"测试页的代码如下:
1 2 3 4 5 6 7 8 9 |
|
保存好"test.php"后,然后我们通过不用代理,和使用透明代理、匿名代理、高匿名代理、SOCKS分别去访问,看页面输出的内容结果。
2、测试使用不同代理输出结果:
①. 通过linux curl不使用代理访问:
[ ]
Array
(
[114.112.104.126 ] =>
)
可以看出,http服务器获取到的"REMOTE_ADDR"IP地址为"114.112.104.126",此IP地址就是客户端lcurl的真实IP地址。
②. 通过linux curl命令使用http透明代理访问:
[ ]
Array
(
[1.1 ThunderVPN (squid/3.3.8) ] =>
[114.112.104.126 ] =>
[259200 ] => max-age=
[ ] => keep-alive
[37.139.9.11 ] =>
)
可以看出REMOTE_ADDR字段变成了代理服务器的IP地址,同时真实IP地址也能从HTTP_X_FORWARDED_FOR字段获取到,还多了一个“HTTP_VIA”字段,可以看出出代理并不能隐藏真实IP,而且也会让http服务器自动浏览器端使用了代理。
③. 通过linux curl命令使用http匿名代理访问:
[ ]
Array
(
[ ] => Keep-Alive
[60.21.209.114 ] =>
)
从上面可以看出,REMOTE_ADDR字段变成了代理服务器的IP地址,而且在响应不包含原来的真实IP地址,但是多了HTTP_PROXY_CONNECTION,能判断出使用了代理,得出结论此浏览器客户端使用了匿名代理。
④. 通过linux curl命令使用http高匿名代理访问:
[ ]
Array
(
[114.232.1.13 ] =>
)
这次我们惊奇的发现,REMOTE_ADDR同样变成了代理的IP地址,同时不留下任何残留证据证明使用了代理,可以得出结论,这就是传说中的高匿名代理。
④. 通过linux curl命令使用socks5代理访问:
[ ]
Array
(
[180.96.54.198 ] =>
)
可以看出此SOCKS5代理也是高匿名代理。
链接:https://www.cnblogs.com/panxuejun/p/10574038.html
(版权归原作者所有,侵删)