我有一台有 128 个 IP(静态外部 IP 86.xx.xx.16)的 Ubuntu 服务器,我想通过不同的 IP 抓取页面。网关是 xx.xxx.xxx.1,主 IP 是 xx.xxx.xxx.16,其他 128 个 IP 是 xx.xxx.xxx.129/255。我在 /etc/network/interfaces 中尝试了此配置,但没有用。如果我删除别名 eth0:0 和 eth0:1 的网关,它就会起作用。我认为这是路由问题。
auto lo
iface lo inet loopback
auto eth0
auto eth0:0
auto eth0:1
iface eth0 inet static
address xx.xxx.xxx.16
netmask 255.255.255.128
gateway xx.xxx.xxx.1
iface eth0:0 inet static
address xx.xxx.xxx.129
netmask 255.255.255.128
gateway xx.xxx.xxx.1
iface eth0:1 inet static
address xx.xxx.xxx.130
netmask 255.255.255.128
gateway xx.xxx.xxx.1
另外,请告诉我如何“重置”我在网络和路由方面所做的所有更改。
更新:
我删除了网关,现在一切正常。我可以通过所有 128 个 IP 访问该网站。
但是当我尝试将 php 中的套接字连接绑定到特定 IP 时,我没有得到任何答案。
socket_bind($sock, "xx.xxx.xx.xxx");
socket_connect($sock, 'google.com', 80);
我尝试使用嗅探器查看数据包,并且我看到从绑定 IP 发送到 google.com 的数据包,但是无法建立“连接”。
我对“route”命令一无所知,但我感觉这是解决方案。
答案1
它不起作用,因为它只有一个接口和一个网关...除非你想做一些流量共享/平衡/......应该只有一个默认网关。
你想要的是将你用来“爬行网页”的任何程序绑定到所需的 IP 地址。
只需将网关保留在 eth0 上并将其从 eth0:X 中删除就可以了......
答案2
问题解决了。我的 ISP 重新路由了 IP,现在可以正常工作了。
答案3
有更新时只需编辑您的问题,除非该更新实际上是答案。您应该删除此答案。我已将其移至问题中。
-凯尔