为多 IP 主机上的出站连接指定 IP 地址

Hen*_*ann 19 linux routing ip

我的一台服务器(Debian 5.0.6)在同一接口上有两个公共 IP 地址。这过去几个月运行良好,但突然间它使用“错误的”IP 地址进行传出连接。这是一个问题,因为反向查找将不匹配,因此电子邮件会获得垃圾邮件点。

eth0      Link encap:Ethernet  Hardware Adresse 00:1b:21:14:8e:9c  
          inet Adresse:81.169.180.51  Bcast:81.169.180.51  Maske:255.255.255.255
          inet6-Adresse: fe80::21b:21ff:fe14:8e9c/64 Gültigkeitsbereich:Verbindung

eth0:0    Link encap:Ethernet  Hardware Adresse 00:1b:21:14:8e:9c  
          inet Adresse:85.214.157.120  Bcast:85.214.157.120  Maske:255.255.255.255


Kernel-IP-Routentabelle
Destination     Router          Genmask         Flags Metric Ref    Use Iface
81.169.180.1    0.0.0.0         255.255.255.255 UH    0      0        0 eth0
0.0.0.0         81.169.180.1    0.0.0.0         UG    0      0        0 eth0
Run Code Online (Sandbox Code Playgroud)

目前它使用 85.214.157.120 进行出站连接。如何让它使用 81.169.180.51?

编辑:255.255.255.255 的网络掩码与托管公司的文档和 DHCP 响应一致。多次调用 /etc/init.d/networking restart 最终会得到正确的出站连接 ip 地址。但这显然不是一个稳定的解决方案。/编辑

编辑 2:为了确保主机路由与我的问题无关,我设置了一个本地测试网络:

eth0      inet Adresse:192.168.0.2  Bcast:192.168.0.255  Maske:255.255.255.0
eth0:0    inet Adresse:192.168.0.3  Bcast:192.168.0.255  Maske:255.255.255.0

192.168.0.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0        192.168.0.1     0.0.0.0         UG    0      0        0 eth0
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何确保在出站 tcp 连接上使用源 ip-address 192.168.0.2,我将不胜感激。 /编辑 2

bin*_*dbn 26

更新默认值:

ip route change default via 81.169.180.1 src 81.169.180.51
Run Code Online (Sandbox Code Playgroud)

检查配置:

ip route list
Run Code Online (Sandbox Code Playgroud)