为程序/进程分配 IP

为程序/进程分配 IP

我需要为 Linux 服务器上运行的不同进程(主要是 PHP 和 Ruby 程序)分配不同的 IP 地址。它们将向各种服务器进行查询,包括连接到同一外部服务器的进程应具有不同 IP 的情况。

如何实现这一点?

任何选项(系统范围、或 PHP/Ruby 特定、使用代理服务器等)都适合我。

答案1

一些选择:

  • 最简单的方法可能是:在 POSTROUTING 中使用“所有者”iptables 模块的 NAT 规则。如果您使用自己的用户名运行每个进程,则可以为每个用户设置使用特定 IP 的规则。
  • 在容器(例如 LXC 或 Virtuozzo)内运行每个进程。
  • 为您的应用程序创建一个连接包装器脚本,以便将每个连接绑定到某个 IP。

答案2

如果内核允许,您还可以使用网络命名空间。如下所述http://blog.scottlowe.org/2013/09/04/introducing-linux-network-namespaces/

答案3

最后,我解决了我的具体情况,运行 nginx 作为反向代理,只能从本地主机使用,使用代理绑定指示。

从我的脚本中我应该查询类似http://localhost/nginx-proxy-ip-N/https://api.example.com/?q=123

相关内容