接口之間的單向橋樑

接口之間的單向橋樑

我目前正在嘗試將我的伺服器設定為基於容器,以限制所有程式的 RAM 和 CPU 使用率。我的問題是,我希望不同容器中的所有應用程式在不同連接埠上偵聽相同的 IP,但保持靈活性並讓其他容器具有特殊 IP 並具有對這些容器的完全存取權。其他 IP 的別名為 eth0(eth0:0、eth0:1 等)。

+----+ +----+ +----+
|IP 1| |IP 1| |IP 2| IP
|WEB | | TS | |GAME| Application
| 80 | |9987| |ALL | Port(s)
+----+ +----+ +----+
  |     |      |
  +-----+------+
        |
     +------+
     |SERVER|
     +--+---+ 
        |
    +---+----+
    |Internet|
    +--------+

我搜尋了很多,但找不到任何對我有幫助的東西。很抱歉,這是重複的,我找不到任何東西...也許是因為我搜尋了錯誤的關鍵字,或者因為這是不可能的...無論如何,感謝您的閱讀!

答案1

您正在尋找的技術稱為目標 NAT。在 Linux 系統上,這可以藉助 iptables 來完成。

由於您的問題沒有提供有關您計劃使用的容器技術的任何詳細信息,因此這取決於這些技術如何連接到本地網路和主機系統本身 - 通常使用容器的橋接介面和虛擬網路介面。

在這種情況下,您可以看看這裡: http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html#ss6.2

將目標位址更改為 5.6.7.8

iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8

將目標位址改為 5.6.7.8、5.6.7.9 或 5.6.7.10

iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10

將Web流量的目標位址更改為5.6.7.8,連接埠8080

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080

然後,您可以在主機伺服器上設定一些 iptables DNAT 規則,這些規則將重寫某些連接埠上的傳入封包或將某些 IP 位址重寫為橋接虛擬網路上的目標。

但是,您還必須設定一些來源 NAT 規則,以便來自這些容器的流量也發生更改,以符合這些容器應具有的外部世界的 IP 位址。

相關內容