curl使用技巧

/ 0评 / 0

添加socks

--socks4 <host[:port]>

--socks4a <host[:port]>
socks4a是socks4的扩展,主要增加了域名解析,其余相同。
--socks4a参数指定使用代理服务器解析域名,其余使用方法相同。    //暂时未测试是否支持域名解析

--socks5 <host[:port]>

--socks5-hostname <host[:port]>
基本同–socks5参数,但是此参数指定使用代理服务器解析域名,而不是本地解析。而–socks5是使用本地域名解析

 

-v 显示通信过程

-A 指定User-Agent

 

以下遇到的问题是在一台具有ipv6的机器上面使用socks5代理测试访问,当指定socks5访问始终失败,因为本地解析的地址都是v6,代理服务器不支持,所以不能访问,当加上--socks5-hostname参数远程解析域名或者禁用本地ipv6都可以解决

curl -v -A 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36' --socks5 x.x.x.x:3420 -sL "https://www.google.com"

* SOCKS5 communication to www.google.com:443
* SOCKS5 connect to IPv6 2404:6800:4004:80d::2004 (locally resolved)  本地解析成ipv6 导致socks5不能连接   socks5服务端没有ipv6

 

通过 --socks5-hostname 使用代理服务器解析域名

curl -v -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' --socks5-hostname x.x.x.x:3420 -sL "https://www.google.com"

* SOCKS5 communication to www.google.com:443
* SOCKS5 request granted.

 

也可禁用本地ipv6

编辑/etc/sysctl.conf 

添加

net.ipv6.conf.all.disable_ipv6 =1
net.ipv6.conf.default.disable_ipv6 =1
net.ipv6.conf.lo.disable_ipv6 =1

 

sysctl -p

发表评论

邮箱地址不会被公开。 必填项已用*标注