Dns

單個程序的埠路由/DNS

  • August 2, 2014

背景

Flickr 已經關閉了它的 http api,只留下了一個 https 的 api。我最喜歡的上傳器(在 wine 下執行的官方 Flickr Uploadr 2.5 版)不再維護,所以這個更改破壞了它。

我目前的解決方案是設置一個反向代理伺服器來轉換http://www.flickr.comhttps://www.flickr.com修復我的 DNS,以便將www.flickr.com流量轉發到這個代理伺服器。

這可行,但顯然我不希望我的所有 flickr 流量都流向代理,而只是來自上傳者的流量。

問題

我可以僅將來自該應用程序的流量(定向到 www.flickr.com)發送到我的反向代理嗎?

補充問題

有沒有更簡單的方法來實現這一點?例如,在沒有代理伺服器的情況下http://www.flickr.com直接轉發。https://www.flickr.com

解決方案

令人尷尬的是,該應用程序本身有一個代理設置,所以我所要做的就是將其設置為指向我的代理伺服器。或者,下面 Giles 的回答顯示瞭如何為單個 Unix 應用程序和所有 Wine 應用程序設置代理。

單獨的 DNS 對您沒有幫助:它可以將您的客戶端指向另一台機器,但該機器必須在埠 80 上提供預期的 Flickr 內容。

您需要的是一個代理,它通過 HTTP 接收 HTTP 請求並使用 HTTPS 重新發送它們。將您的上傳者指向此代理;代理是發出 DNS 請求的人,而不是客戶端,所以你根本不需要擺弄 DNS。

Apache with mod_proxyandmod_ssl是一個簡單的,如果重量級的,這樣的代理。我現在想不出現成的輕量級解決方案。修改 PythonSimpleHTTPServer可能是另一種解決方案。

要將 Wine 應用程序指向代理,請參閱Wine FAQ §7.18 “如何配置代理?”。有兩種解決方案:

  • 通常的 unix 解決方案:設置環境變數http_proxy,例如(如果您的代理正在偵聽埠 8070):
export http_proxy=http://localhost:8070/
wine 'c:/Program Files/Flickr Uploader/Flickr Uploader.exe'
  • Wine 方法:設置[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] ProxyEnable系統資料庫項(有關語法,請參閱 Wine 常見問題解答)。

引用自:https://unix.stackexchange.com/questions/139987