Networking

debian:標準傳出IP/路由

  • April 30, 2012

在 debian 擠壓伺服器上,我在 eth0 上獲得了 2 個 IP(eth0 和 eth0:1)。當打開 TCP 連接時,伺服器預設使用 eth0:1 IP。但是我希望它使用主(eth0)IP,因為我希望另一個僅用於(監聽)守護程序。

#/etc/network/interfaces
   auto eth0
   iface eth0 inet static
           address 92.xxx.xxx.92
           netmask 255.255.255.192
           network 92.xxx.xxx.64
           broadcast 93.xxx.xxx.127
           gateway 92.xxx.xxx.65

   auto eth0:1
   iface eth0:1 inet static
           address 108.xxx.xxx.146
           netmask 255.255.255.192
           gateway 108.xxx.xxx.129

#ip route show
   108.xxx.xxx.128/26 dev eth0  proto kernel  scope link  src 108.xxx.xxx.146
   92.xxx.xxx.64/26 dev eth0  proto kernel  scope link  src 92.xxx.xxx.92
   default via 108.xxx.xxx.129 dev eth0  src 108.xxx.xxx.146
   default via 92.xxx.xxx.65 dev eth0

我該怎麼做才能讓 debian 使用 92. IP 進行傳出連接?當然,另一個應該仍然有效。

您幾乎可以肯定在您的網路配置中只有一個 gateway參數(基本上,如果您不知道為什麼需要兩個參數,那麼您不需要)。該gateway參數指定您機器的預設網關——應該發送沒有更具體路由的流量的路由器。在大多數網路上,只有一個路由器符合該標準,即使您可能有多個其他(更具體的)路由用於其他網路。

如果由於某些原因您確實需要 2 個不同的 IP 網路同時工作,您應該ip rule在 Linux 上使用。

比如說,兩個 IP 網路 «A» 和 «B» 在同一個 NIC 上。«A» 是主要的,即,當從框中 ping 一些主機時,您希望使用 «A» IP 參數,因此您只將 «A» 的預設網關放入(主)路由表中. 如果您需要來自«B»的回復以使用«B»的預設網關,那麼您可以通過以下方式管理它:

  • ip rule add from B_Network/Mask lookup table B_table pref 20000
  • ip route add default via B_gw table B_table

B_table 應該首先定義/etc/iproute2/rt_tables。有關詳細資訊,請參閱LARTC

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