11

有没有办法通过 OpenVPN 或 PPTP 等 VPN 执行 cURL 请求?

我知道我可以使用代理,但 VPN 不同。

4

2 回答 2

13

编辑:2013 年 7 月

我收到了几封电子邮件,所以我把它全部打包成一篇博文: http ://www.georgiecasey.com/2013/07/26/how-to-use-overplay-and-other-vpns-as-卷曲代理/


是的,但首先您必须在单独的界面上设置 VPN,这样您的整个服务器就不会使用 VPN。我不是 OpenVPN 专家,但我使用dev开关来指定 TUN/TAP 虚拟网络设备:dev proxy1. 有关 OpenVPN 手册页的更多信息。

然后在您的脚本中使用这行 PHP 代码。

curl_setopt($ch, CURLOPT_INTERFACE, "proxy1");

我这样做是为了可以使用overplay.net的所有 IP来抓取我服务器上的内容。这些 IP 经常更改,所以我有一个 cronjob 来提取 IP 的 zip 文件,为每个 IP 创建一个 OpenVPN 配置文件,启动每个 VPN 并将所有 IP 和接口名称放在数据库表中。然后我的脚本只是从数据库中提取随机接口名称并在 curl 中使用它。工作了一个款待。

于 2012-07-31T22:09:03.687 回答
7

cURL 仅使用操作系统的网络堆栈,本身不实现 TCP(或较低级别的协议)。

因此,当操作系统配置为通过虚拟适配器路由网络通信时,它可以正常工作,无论该适配器是如何实现的。

于 2012-04-08T12:45:56.027 回答