我们在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与外部数据库服务器的连接,从后缀传出的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
最佳答案
我认为您必须使用route命令来告诉系统如何路由数据包。
就像是 :
route add -net APACHE_VHOST_IP netmask 255.255.255.0 dev eth0:1
强制将目的地为APACHE_VHOST_IP的数据包使用eth0:1接口(interface)。
和
route add -net MYSQL_SERVER_IP netmask 255.255.255.0 dev eth0
强制MYSQL_SERVER_IP目标中的数据包使用eth0接口(interface)。
关于linux - 将传出流量绑定(bind)到eth0而不是eth0 :1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8531835/