在GCP上创建一个多IP代理



我使用GCP为Web爬网程序创建一个多IP代理。

我已经创建了VPC和带有多个nic的新实例。

我的配置squid如下(部分(:

http_port 10000
http_port 10001
acl port1 myport 10000
acl port2 myport 10001
tcp_outgoing_address 10.170.0.4 port1
tcp_outgoing_address 10.0.0.2 port2

重新启动squid后,我可以访问端口10000上的代理(默认为nic0(但我无法访问端口10001(nic1,默认(

我可以在控制台中ping我的nic1 ip地址10.0.0.2,但不能ping nic1外部ip。

如何配置NIC以响应公共IP上的ping?

有两种方法可以在一个VM中使用多个外部IP。

1.艰难的道路

这种方法(您尝试过(稍微复杂一些

根据设计,如果您将多个接口连接到单个VM,则只有第一个接口(NIC0(配置了到Internet的路由。您必须为每个额外的接口配置单独的路由表(请参阅配置策略路由(。

对于谷歌支持的图像,当您需要辅助网络时与任何IP通信的接口(nic0以外的接口(地址不是该辅助的主子网范围的本地地址接口的关联子网,您需要将策略路由配置到确保出口数据包将通过正确的接口离开。在这种情况下,必须为每个配置一个单独的路由表使用策略路由的网络接口。

此外,您必须为每个NIC创建单独的VPC网络,如果您想使用两个以上的网络,则需要有一台具有更多CPU的机器(这是另一个限制(。

通常,以下规则适用于n1-标准-x、n1-高成员-x、,n1-highcpu-x、f1 micro、g1小型和自定义虚拟机:

用于VM<=的2个网络接口2vCPU每个vCPU 1个网络接口VM>2vCPU,每个VM 最多有8个网络接口

最后一步是向GCP防火墙添加适当的规则,允许&从虚拟机中取出。

正如你所看到的,这是可以做到的,但有一些步骤,而且你仍然被限制在一个虚拟机上只有8个NIC。

2.简单的方法

我个人会尝试这种更简单的方法——不指定VM类型(甚至可以是micro(。

您可以使用协议转发规则。

休耕步骤(我使用了gcloud实用程序(。

  • 您需要有一个虚拟机(连接一个公共IP(。如果从头开始配置不需要太多工作,您可以使用现有的,也可以创建一个新的。如果不使用gcloud compute instances create vm2 --tags=tag1创建
  • 然后创建一个防火墙规则,允许流量到您的VM:gcloud compute firewall-rules create allow80 --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=tag1
  • 为VM创建目标实例:gcloud compute target-instances create tar1 --instance vm2
  • 最后创建转发规则本身:gcloud compute forwarding-rules create forward1 --ip-protocol TCP --ports 80 --target-instance tar1

我使用了";网络标签";在此示例中,以简化以下任何防火墙规则和转发规则的应用。如果您不清楚,请查看文档

当你运行gcloud compute forwarding-rules list时,你应该得到

$ gcloud compute forwarding-rules list
NAME      REGION        IP_ADDRESS     IP_PROTOCOL  TARGET
forward1  europe-west3  34.107.72.88   ICMP         europe-west3-c/targetInstances/pf-target-instance
forward2  europe-west3  35.246.227.80  ICMP         europe-west3-c/targetInstances/pf-target-instance
forward3  europe-west3  35.198.70.64   ICMP         europe-west3-c/targetInstances/pf-target-instance

每个转发规则都需要自己唯一的公共IP-当你按照描述创建一个时,就会为它分配一个新的临时公共IP。你可以预先保留一些静态IP,然后将它们分配给新创建的转发规则。

您可以在控制台中找到转发规则:网络服务>负载平衡>高级>转发规则在此特定示例中,由于target-instance的使用,您无法使用控制台创建转发规则。控制台只允许创建将其定向到target-pool的规则

在这种情况下,您必须使用gcloud utility

最新更新