【发布时间】:2012-01-21 20:12:46
【问题描述】:
我们向 linux (debian) 机器添加了第二个 IP 地址,以便为新的 Apache vhost 实施第二个 SSL 证书。
我们的ifconfig 现在看起来像这样:
eth0 Link encap:Ethernet Hardware Adresse 00:0c:29:1b:ab:6c
inet Adresse:999.999.999.39 Bcast:999.999.999.63 Maske:255.255.255.192
inet6-Adresse: (...)/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:219336884 errors:0 dropped:0 overruns:0 frame:0
TX packets:223169420 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:1971307659 (1.8 GiB) TX bytes:713489565 (680.4 MiB)
eth0:1 Link encap:Ethernet Hardware Adresse (...)
inet Adresse:999.999.999.40 Bcast:999.999.999.63 Maske:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
问题:所有传出流量(MySQL 到外部数据库服务器的连接,来自 postfix 的传出 SMTP 连接)现在似乎通过 eth0:1 离开,因此第二个(新)IP 999.999.999.40。
我们如何强制所有传出流量通过 eth0,IP 地址 999.999.999.39 离开?
路线输出:
[n1 ~ #] route
Kernel-IP-Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
localnet * 255.255.255.192 U 0 0 0 eth0
10.10.10.0 * 255.255.255.0 U 0 0 0 eth1
default gateway4.XXX 0.0.0.0 UG 0 0 0 eth0
default gateway4.XXX 0.0.0.0 UG 0 0 0 eth0
找到解决方案:
感谢您的提示,ip route 是可行的方法,现在它可以正常工作了。
ip rule add from 999.999.999.39 table t1
ip rule add from 999.999.999.40 table t2
ip route del default via 999.999.999.1
ip route add default 999.999.999.1 dev eth0 table t1
ip route flush cache
【问题讨论】:
-
你能追加
ip route的输出吗? -
eth0:1 实际上不是一个接口(你被 ifconfig 开玩笑了——别再使用它了)。
-
我没听错吧?您有一台具有多个 IP 的服务器。你有多个虚拟主机的 Apache。看起来,我也有类似的问题。你能看看我的情况吗?如果相同,则可以恢复由您的解决方案命令进行的更改? serverfault.com/questions/511793/…