Memcached
Memcached 監聽選定的介面
我正在一個 Debian 伺服器上設置 Memcached,它有兩個介面 - eth0(公共)和 eth1(私有)。
我希望 Memcached 監聽 eth1 和 lo(環回),這樣即使私有網路出現故障,也可以訪問它,但不能訪問 eth0(公共)。
從 memcached 的手冊頁中,我了解到該
-l
選項只能採用一個 IP 地址。我想過使用 UNIX 套接字進行本地連接,但手冊頁說-s
要監聽的 Unix 套接字路徑(禁用網路支持)。
我知道的唯一其他方法是使用 IPTables 阻止通過 eth0 的連接。有沒有其他不使用防火牆的解決方案?
它不像列出一個介面並獲取其所有綁定地址那樣方便,並且需要知道與介面綁定的所有地址,但是可以做到。(請注意,您不能只列出一些介面,正如您所發現的那樣——單個介面、所有介面或 IP 列表。)
該
-l
選項可以採用介面、INADDR_ANY(表示所有介面上的所有地址)或以逗號分隔的 IP 地址列表。IP 地址可能有一個可選的埠規範。所以,例如memcached -l 127.0.0.1:11211,127.0.0.1:11212,10.1.2.3
memcached 將僅在埠 11211 和 11212 上的 127.0.0.1 上偵聽 lo0 以及由
-p
或設置的任何埠上的地址 10.1.2.3 (無論它是哪個介面)-U
。您需要知道/擁有所有要綁定的地址。這可能是 IP 列表之間的一個很大差距
lo0
(因為 memcached 的預設內部資源限制不允許綁定到該介面上的 ~2^24 地址)