Linux
為多 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
如果有人知道如何確保源 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”。列表中的其他一些規則可能優先於預設路由。您可能需要刪除該規則,或創建稍有不同的規則。
- 通過 ip 命令完成的所有更改僅在下次重新啟動之前有效。這個答案永久添加源策略路由規則解釋瞭如何使其持久化。
總之,您可以將需要執行的 ip route 命令作為“up”或“post-up”行添加到 /etc/network/interfaces。您可以添加相應的“向下”行來刪除路線。