Apt

將 apt 流量從專用網路通過公共隧道傳輸到 Internet

  • August 5, 2012

我在以下配置下有 4 台伺服器:

伺服器 1 和 3(分別為 Web 伺服器、郵件伺服器): NIC1:公共網路,連接到 Internet

NIC2:專用網路,伺服器之間的通信。

伺服器 2 和 4(數據庫和備份伺服器):

NIC:專用網路,伺服器之間的通信。

我正在嘗試找到一種方法來將來自伺服器 2 和 4 的 apt(only) 流量通過連接在公共網路上的兩台伺服器之一路由到網際網路,這樣我就不必將這兩台伺服器連接到公共網路只是為了方便。有沒有辦法做到這一點?

非常感謝。

使用安裝在伺服器 1 或 3 上的代理伺服器,配置為允許sources.list從專用網路伺服器連接到站點。作為獎勵,如果您使用像 squid 這樣的記憶體代理,或者approx您將使用更少的頻寬來下載伺服器通用的包。

對於像 squid 這樣的正常網路代理,您可以$http_proxy在執行 apt 之前設置環境變數,或者編輯您的apt.conf文件(如果您使用 Debian 擠壓,看起來配置被拆分為不同的文件/etc/apt/apt.conf.d/,添加一個新文件)和放

Acquire::http::Proxy "http://user:pass@yourproxyaddress:proxyport";

如果您使用的是 ftp 鏡像和支持 ftp 的代理,請將 http 替換為 ftp。

如果您使用 approx,那麼您編輯客戶端sources.list以指向您的 approx 伺服器而不是原始鏡像,而不是在您的 shell 或 apt.conf 中設置代理。

如果您不想安裝代理,可以使用 ssh 的埠轉發以下幾種方式之一:

1:更改伺服器 2/4 的 sources.list 以http://localhost:8080/用於鏡像。如果您有多個鏡像主機,則需要為每個主機選擇不同的埠(例如 8081)。GatewayPorts在server2/4 上,啟用sshd_config 然後,使用 ssh 從伺服器 1 到伺服器 2/4

ssh -R 127.0.0.1:8080:http.us.debian.org:80 server2

-R 127.0.0.1:8081:security.debian.org:80如果有多個鏡像要通過隧道連接,請使用多個 -R 命令(例如)。只要此 ssh 連接保持打開狀態,您就可以使用 apt。

2:使用 ssh 的“動態”SOCKS 代理並tsocks為 apt-get 提供 SOCKS 支持。為此,您必須使用 ssh 從 server2 到 server1 “向後”

ssh -D 8080 server1

在一個終端中,然後在另一個終端中執行tsocks apt-get update等。您將在其中設置伺服器和埠資訊,/etc/tsocks.conftsocks包裝器”程序將轉換 apt 中的正常 http 連接以使用 ssh 提供的 socks 代理。這樣您就不會對sources.list 進行任何更改。

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