我的大學有三個代理伺服器,它們都連接到三個不同的服務提供者。在不同的時刻,不同的代理提供不同的速度(取決於在該時刻使用該代理的使用者數量)。我覺得在不同時刻更改瀏覽器(或任何其他網頁應用程式)中的代理伺服器配置非常耗時。我想編寫一個腳本,它可以透過進行某種測試來動態更改我的所有網路應用程式在不同時刻使用的代理伺服器。
我無法從它開始。有人可以給我一些想法,以便我可以實施它。
答案1
答案2
若要從單點設定代理,您可以設定使用 iptables 規則進行目標位址重寫的路由器,例如
iptables -t nat -A PREROUTING -p tcp -d VIRTUAL_PROXY_IP --dport 80 -j NETMAP --to CURRENT_PROXY_IP
所有應用程式和瀏覽器都會使用 VIRTUAL_PROXY_IP 作為代理,您需要透過這個特殊的路由器進行路由。您可以根據需要變更規則以變更 CURRENT_PROXY_IP。
這種方法的優點是設定速度快且易於管理。缺點是,某些開啟會話的使用者可能會受到一些幹擾(取決於會話類型和上游代理的類型)。您還必須編寫自己的腳本來更改代理,或手動更改。
sr_ 的評論建議的更好的解決方案是設定負載平衡器。考慮 LVS 或HA代理
答案3
假設您使用的是魷魚共享相同可見名稱的兩個兄弟代理似乎對我有用。我分別設定了 2 個名稱為 proxy1 和 proxy2 的伺服器。可見的主機名稱是 proxy。此時您要做的就是在 dns 中為名稱 proxy 建立一條 A 記錄,並使用 proxy1 和 proxy1 的 IP 位址。只要在您的squid.conf 中將它們設為兄弟姐妹即可。看看這裡http://horms.net/projects/redundant_linux_paper/lated/squid/hierarchies/concepts.html
答案4
簡單的解決方案
在本機主機檔案中為代理伺服器設定主機別名,例如
192.168.1.1 chosenproxy #192.168.1.2 chosenproxy #192.168.1.3 chosenproxy
現在將所有應用程式配置為使用此別名http://chosenproxy:8080
然後要嘗試不同的伺服器,只需編輯主機檔案中的 IP 位址即可。
可管理的連接埠解決方案
如果您還需要更改端口,請使用輕量級代理程式之一,例如 polipo。 Polipo 預設在連接埠 8123 上運行,因此將每個應用程式設定為透過本機運行的 polipo 進行連接,例如使用下列設定http://localhost:8123
然後,若要嘗試不同的代理伺服器,請變更 polipo 設定檔 ( /etc/polipo/config
) 以指定正確的父代理伺服器和連接埠號,然後重新啟動 polipo 以啟動變更。