將 apt 流量從專用網路通過公共隧道傳輸到 Internet
我在以下配置下有 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/4ssh -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.conf
“tsocks
包裝器”程序將轉換 apt 中的正常 http 連接以使用 ssh 提供的 socks 代理。這樣您就不會對sources.list 進行任何更改。