解決Dropbox無法實時更新的問題

  本文背景是,中國到dropbox的http連接會被重置,但是https連接不受影響。如果背景改變了,則本文失效。本文主題是讓dropbox客戶端的http請求經socks代理訪問dropbox服務器,而https請求不經代理直接訪問,用這種方法來解決Dropbox客戶端目前無法實時更新的問題。

  現象:在國內的多個電腦客戶端使用同一個Dropbox帳號登錄,實現協同辦公等操作,但是一台電腦更新文件後,無法實時同步到其他電腦客戶端。而在國外的網絡環境沒有這種現象。

  原因:目前在國內,dropbox被關鍵字屏蔽( Wildcard: .dropbox.com),但是客戶端還能正常使用,因為客戶端和服務器之間使用的是https加密傳輸。但只有一處是沒有使用https的,就是stork47.dropbox.com(筆者是這個地址,其他地方可能不一樣)。這個服務器負責將服務器端(或其他客戶端)發生的文件更新通知到其他客戶端(筆者猜的,但應該差不多),然後其他客戶端才會發起https請求去和服務器同步這些文件。實際中,是客戶端每60秒向stork47.dropbox.com查詢一次,看是否有文件需要更新。因為該請求沒有使用https連接,導致連接一直被RESET,所以某台客戶端的更新無法實時反映到其他客戶端。

  因為一般人可能沒有這個需求,所以沒多少人關注這個課題。像我以前也只是在家里和公司同步一些文件而已,沒有實時更新的必要。有強烈需求的人,就設置讓客戶端全程走代理,可以解決上述問題,缺點是文件的更新速度受代理服務器速度的影響,大多數情況下沒有直接連接的速度快。還有一部分人當需要更新時,直接重啟客戶端(甚至為此寫了個腳本),因為客戶端只在啟動時才使用https連接檢查更新,這樣做的缺點顯而易見。

解決Dropbox無法實時更新的問題

  解決方法:最近用privoxy,發現它可以做到分流http和https,於是試驗了一下,果然可以分流dropbox的客戶端請求了。就是前面說的,讓http 請求走代理,而https請求不走。這樣即滿足了實時更新的需求,又兼顧了更新速度,可謂智能代理了。 privoxy還有不少替代方案筆者沒有試過的,比如polipo之類。以下是操作步驟。

  1,需要準備的東西:dropbox客戶端、代理軟件、privoxy。該方案應該與平台無關,但是筆者只在windows 7下試驗過。

  2,打開privoxy的配置文件config.txt,在最後面添加這幾行:

#   for dropbox: http –> SOCKS Proxy(19841 ), https –> direct
 forward-socks5   .dropbox.com             127.0.0.1 :19841 .
 forward          .dropbox.com:443         .

  注意將19841修改為你自己的代理軟件的端口。如果你的代理軟件不是socks類型的,那麼就不是加上面的幾行,而是加這幾行:

#   for dropbox: http –> HTTP Proxy(19842 ), https –> direct
 forward          .dropbox.com       &nbsp ;     127.0.0.1:19842
 forward          .dropbox.com:443   &nbsp ;     .

  注意好多地方有半角的.號,不要弄丟了。

  3,啟動privoxy,將dropbox的代理設置為HTTP 127.0.0.1:8118,就OK了。

  如果有疑問可以留言討論,如果有關於軟件的其他用法的問題請另行google。

  來源:讀者投稿,原文鏈接

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,文章转自月光博客

Comments are closed.