本地正常但OVH VPS上Curl无法完成SOCKS5代理连接求助
问题背景
本地执行以下curl命令可正常通过SOCKS5代理获取IP(IP已打码):
curl -x socks5://x.x.x.x:1080 --proxy-user anon:anon -L https://ip.me x.x.x.x
但在OVH VPS上执行完全相同的命令时,报错:
curl -x socks5://x.x.x.x:1080 --proxy-user anon:anon -L https://ip.me curl: (97) Can't complete SOCKS5 connection to ip.me. (2)
已排查信息:
- 服务器上执行
nmap -p 1080 x.x.x.x,显示代理端口开放且服务为SOCKS - 尝试
dpkg-reconfigure curl无效 - 从源码编译curl后问题依旧
- 其他机器连接该代理正常,仅OVH VPS存在此问题
- proxychains配合wget可正常通过代理,但curl仍报错
可行解决思路
- 强制curl使用IPv4
部分OVH VPS默认优先IPv6,若代理不支持IPv6会导致连接失败,命令后加-4参数:
curl -4 -x socks5://x.x.x.x:1080 --proxy-user anon:anon -L https://ip.me
- 切换为socks5h代理模式
socks5模式下本地会先解析域名,而socks5h会让代理处理DNS解析,避免本地DNS配置问题:
curl -x socks5h://x.x.x.x:1080 --proxy-user anon:anon -L https://ip.me
检查VPS出站防火墙规则
OVH自带的后台防火墙或VPS本地iptables/ufw可能限制了SOCKS流量,检查并放行到代理IP 1080端口的出站请求。直接用IP访问目标站点
先通过nslookup获取ip.me的实际IP:
nslookup ip.me
然后用IP替代域名执行curl:
curl -x socks5://x.x.x.x:1080 --proxy-user anon:anon -L http://[ip.me的IP]
如果成功,说明问题出在DNS解析,用socks5h即可解决。
- 确认curl编译时开启SOCKS支持
源码编译curl时,必须添加--enable-socks参数,否则可能存在功能缺失:
./configure --enable-socks make && make install
内容的提问来源于stack exchange,提问作者lolc
相关产品推荐
相关产品推荐

