添加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