如何运行 5 个使用不同 eth 接口的 php 进程?

如何运行 5 个使用不同 eth 接口的 php 进程?

我使用 cron 运行日常脚本,该脚本必须运行 5 个 php-cli 进程。我需要它们使用单​​独的接口。

我有 5 个设备,eth0、eth1、eth2、eth3、eth4。

我如何调用 php 来确保它只使用其中一个?

它在 Centos 6.6 上运行

答案1

以下是来自的相关文章堆栈溢出

您需要使用如下函数调用来设置接口名称或 IP 地址。

curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");

答案2

为什么在每种情况下都要使用不同的接口?除非您正在对接口进行基准测试,并且出于某种原因想要在 php 中执行此操作,否则可能有更好的解决方案。

libcurl 确实实现了这种功能,但我不确定 php 是否绑定了它。如果没有,您可以直接curl通过 shell 调用使用该命令。从手册页

   --interface <name>
          Perform an operation using a specified interface. You can  enter
          interface  name,  IP address or host name. An example could look
          like:

           curl --interface eth0:1 http://www.netscape.com/

(哇,netscape.com,是吗?很久没有人看过那个手册页了)。

相关内容