查看: 468|回复: 1
打印 上一主题 下一主题

解决Dropbox无法实时更新的问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-21 18:12:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文背景是,中国到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连接检查更新,这样做的缺点显而易见。

解决方法:最近用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             127.0.0.1:19842
forward          .dropbox.com:443         .
注意好多地方有半角的.号,不要弄丢了。
3,启动privoxy,将dropbox的代理设置为HTTP 127.0.0.1:8118,就OK了。
如果有疑问可以留言讨论,如果有关于软件的其他用法的问题请另行google。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 鲜花鲜花 鸡蛋鸡蛋
2#
发表于 2011-3-21 22:07:21 | 只看该作者
不懂.......
您需要登录后才可以回帖 登录 | 注册  用百度帐号登录

本版积分规则