我正在使用 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。因此,当系统使用主 IP 时,我在 SSH 会话中执行的任何操作仍作为次 IP 执行。
笔记:我也尝试过使用这两个 IP 登录,但会话仍然被锁定在辅助 IP,尽管任何系统命令(例如 cronjobs)都是作为主 IP 执行的。
答案1
您需要将查询绑定到适当的接口。例如对于 curl:
curl --接口 eth0:1.....
如果您运行的命令不允许您绑定到 IP/接口,那么您就没问题了...
或者使用 SOCKS 或其他方法强制服务器使用特定的 IP。
答案2
经过几天的努力,我终于找到了我自己问题的答案。
设置辅助接口的正确方法是不包括“网关”选项。
auto eth0:1
iface eth0:1 inet static
address SecondaryIP
netmask 255.255.255.0