我正在使用 Debian 6 - 64 位,这就是我的 /etc/network/interfaces 文件的样子
auto eth0
iface eth0 inet static
address PrimaryIP
gateway X.X.X.X
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address SecondaryIP
gateway X.X.X.X
netmask 255.255.255.0
auto lo
iface lo inet loopback
对于我的大多数进程/脚本,我需要在主 IP 和辅助 IP 之间切换,所以很多时候我在上述文件中将 PrimaryIP 与 SecondaryIP 交换(反之亦然)并重新启动接口以更改主 IP 系统正在运行.
我面临的一个问题是,尽管系统的主 IP 已在上述文件中设置并且在网络重新启动后可以正常工作,但会话/ssh IP 仍然是辅助 IP。因此,在系统使用 PrimaryIP 的情况下,我在 SSH 会话中执行的任何操作仍然作为 SecondaryIP 执行。
注意:我也尝试使用这两个 IP 登录,但会话仍被锁定到辅助 IP,尽管 cronjobs 等任何系统命令都作为主要执行。
您需要将查询绑定到适当的接口。例如。对于卷曲:
curl --interface eth0:1 .....
如果您运行的命令不允许您绑定到 IP/接口,那么您就是 SOOL ...
或者使用 SOCKS 之类的东西来强制服务器使用特定的 IP。
经过几天的工作,我终于找到了自己问题的答案。
设置辅助接口的正确方法是不包括“网关”选项。