有没有办法通过 OpenVPN 或 PPTP 等 VPN 执行 cURL 请求?
我知道我可以使用代理,但 VPN 不同。
编辑: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 中使用它。工作了一个款待。
cURL 仅使用操作系统的网络堆栈,本身不实现 TCP(或较低级别的协议)。
因此,当操作系统配置为通过虚拟适配器路由网络通信时,它可以正常工作,无论该适配器是如何实现的。