将 cURL 与 NordVPN SOCKS5 代理结合使用

将 cURL 与 NordVPN SOCKS5 代理结合使用

我正在尝试使用 cURL 实用程序通过 NordVPN SOCKS5 代理获取网页,但没有任何运气。我希望以下命令行能够工作。

curl -v -x "socks5://<username>:<password>@se.socks.nordhold.net:1080" -4 http://google.com

但是,这会返回以下内容。

*   Trying 185.236.42.56:1080...
* SOCKS5 connect to IPv6 2a00:1450:4009:815::200e:80 (locally resolved)
* Can't complete SOCKS5 connection to google.com. (4)
* Closing connection 0
curl: (97) Can't complete SOCKS5 connection to google.com. (4)

cURL 连接到 NordVPN 运营的 SOCKS5 代理是否需要一些特殊配置?

客户支持告诉我

我们改变了用户连接到socks5的方式,以减少socks5被用于恶意目的(例如网络扫描/代理/撞库攻击)的机会。

...但他们无法提供有关如何使用 cURL 的任何建议。我只能说,其他一些软件似乎能够毫无问题地使用 NordVPN SOCKS5 代理。

答案1

注意:我自己刚刚解决了这个问题。 (因为经常会在完整拼写出来后不久发生!)如果其他人搜索此内容,我想我应该发布对我有用的内容,而不是仅仅删除问题。

事实证明,这里有两个问题在起作用。主要的一个是与 macOS 捆绑的 cURL 版本(/usr/bin/curl)是未构建 SOCKS5 支持。我也安装了 cURL 的 Homebrew 版本,它确实支持 SOCKS5,但它是“仅桶”(未在系统可以看到的地方进行符号链接)。将 Homebrew 版本的 cURL 放入 my 中PATH意味着我原来问题的 IPv4 请求可以工作。

socks5h此外,当我使用URL 方案(而不仅仅是)时socks5,IPv6 请求也能正常工作。这确保了主机名解析是在远程而不是本地完成的。

curl -v -x "socks5h://<username>:<password>@se.socks.nordhold.net:1080" -L http://google.com

相关内容