Linux

為多 IP 主機上的出站連接指定 IP 地址

  • September 29, 2020

我的一台伺服器(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

如果有人知道如何確保源 ip-address 192.168.0.2 用於出站 tcp 連接,我將不勝感激。 /編輯 2

更新預設值:

ip route change default via 81.169.180.1 src 81.169.180.51

檢查配置:

ip route list

bindbn 的答案很好,但我發現了一些並發症。

1)您應該按照 bindbn 的說明檢查“ip route list”。列表中的其他一些規則可能優先於預設路由。您可能需要刪除該規則,或創建稍有不同的規則。

  1. 通過 ip 命令完成的所有更改僅在下次重新啟動之前有效。這個答案永久添加源策略路由規則解釋瞭如何使其持久化。

總之,您可以將需要執行的 ip route 命令作為“up”或“post-up”行添加到 /etc/network/interfaces。您可以添加相應的“向下”行來刪除路線。

引用自:https://serverfault.com/questions/182550