【问题标题】:cURL through OpenVPN or PPTPcURL 通过 OpenVPN 或 PPTP
【发布时间】:2013-07-27 03:53:24
【问题描述】:

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

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

【问题讨论】:

  • 我认为 cURL 在高于 openvpn 或 PPTP 的 OSI 级别中“有效”。

标签: php curl


【解决方案1】:

编辑:2013 年 7 月

我收到了几封电子邮件,因此我将其全部打包成一篇博文: http://www.georgiecasey.com/2013/07/26/how-to-use-overplay-and-other-vpns-as-a-curl-proxy/


是的,但首先您必须在单独的界面上设置 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 中使用它。辛苦了。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 好吧,cURL 会忽略我在 Mac os Sierra 上的代理设置,除非我明确使用 -x arg
    猜你喜欢
    • 1970-01-01
    • 2020-04-18
    • 2012-01-19
    • 2017-06-29
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    相关资源
    最近更新 更多