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

在多 IP 主机上指定出站连接的 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

目前它使用 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

如果有人知道如何确保在出站 TCP 连接上使用源 IP 地址 192.168.0.2,我将不胜感激。 /编辑 2

答案1

更新默认值:

ip route change default via 81.169.180.1 src 81.169.180.51

检查配置:

ip route list

答案2

bindbn 的回答很好,但我发现了一些复杂情况。

1) 您应该检查 bindbn 所说的“ip 路由列表”。列表中的某些其他规则可能优先于默认路由。您可能需要删除该规则,或者创建略有不同的规则。

2) 通过 ip 命令所做的所有更改仅在下次重启前有效。此答案永久添加源策略路由规则解释如何使其持久。

总之,您可以将需要运行的 ip route 命令作为“up”或“post-up”行添加到 /etc/network/interfaces。您可以添加相应的“down”行来删除该路由。

答案3

尝试改变

 allow-hotplug eth0

 auto eth0

这应该会强制首先启动您的物理接口。您可能需要或不需要更改 eth0:0 的 allow-hotplug 条目。

答案4

10年过去了,iproute2已经出现,然而相关的答案
https://unix.stackexchange.com/a/611945/214557

相关内容