我有一个 AWS 实例,其中多个虚拟网络接口都具有不同的弹性 IP。由于我从这台机器上爬取,因此 IP 经常被阻止。通过所有这些接口分发传出流量将阻止它,因为它们都映射到不同的弹性 IP。
eth0 Link encap:Ethernet HWaddr 0A:E6:A3:DD:F1:E0
inet addr:10.0.0.120 Bcast:10.0.0.127 Mask:255.255.255.128
inet6 addr: fe80::8e6:a3ff:fedd:f1e0/64 Scope:Link
eth0:0 Link encap:Ethernet HWaddr 0A:E6:A3:DD:F1:E0
inet addr:10.0.0.122 Bcast:10.0.0.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth0:1 Link encap:Ethernet HWaddr 0A:E6:A3:DD:F1:E0
inet addr:10.0.0.18 Bcast:10.0.0.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Run Code Online (Sandbox Code Playgroud)
我想以循环方式从所有网络接口发送我的传出流量。由于这些是虚拟接口,我无法使用iproute2包来实现这一点。有人可以告诉我如何实现这一目标吗?
您可以使用该iproute2套件来实现此目的。将源 IP 分配给接口别名这一事实对此问题没有影响。
假设您的默认网关是 10.0.0.1
ip route del default
ip route add default via 10.0.0.1 dev eth0 src 10.0.0.122
Run Code Online (Sandbox Code Playgroud)
就是这样。只需用第二行替换默认路由,替换10.0.0.122为您想要路由流量的源 IP。
如果您想同时使用所有 IP,只需为它们分配特定的子网即可:
ip route add 64.0.0.0/2 via 10.0.0.1 dev eth0 src 10.0.0.122
ip route add 128.0.0.0/2 via 10.0.0.1 dev eth0 src 10.0.0.18
Run Code Online (Sandbox Code Playgroud)
这将使任何出站流量能够64.0.0.0 - 127.255.255.255使用10.0.0.122和128.0.0.0 - 191.255.255.255使用10.0.0.18。所有其他流量将使用默认值10.0.0.120
IP 分配给接口别名 (eth0:0) 的事实绝对没有影响。IProute2(或者实际上是内核)并不关心。
是的,我在我的家庭网络上尝试过,效果很好。
| 归档时间: |
|
| 查看次数: |
3014 次 |
| 最近记录: |