Dropbox是最早提供的云存储服务,也是最好的云存储服务。最大的优势是跨操作系统和跨硬件平台,不论是Windows, Mac 还是Linux,都能够无缝使用,Android和iOS系统也不在话下。
虽然苹果系有iCloud提供云存储同步,但是目前我使用的体验远不如Dropbox,即使在MacOS平台,文件不一致问题让我非常头疼。更何况,我的工作需要跨Linux/MacOS,使得Dropbox成为更优选择。
本文是安装XUbuntu之后,重新部署Dropbox客户端同步文件的笔记,实际上也是如何在China使用Dropbox的一个快速指南。
- 首先必须有一个海外的VPS,最小规格的Linux就可以,只需要运行SSH服务就满足要求。
- 确保自己的个人帐号能够通过ssh登录(最好使用密钥登录,例如Amazon的AWS即强制使用较为安全的密钥登录)
- 登录服务器,执行以下命令开启iptables的NAT模式(
MASQUERADE
)
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.conf
sudo sysctl -p
- 在需要运行Dropbox客户端执行以下ssh命令,实现连接到服务器的动态端口转发
格式:
ssh -D local_port username@server_ip
举例,以下开启本地端口8888,使用帐号zhangsan
连接到服务器 myvps.xyz.com
的动态端口转发
ssh -D 8888 [email protected]
此时,本地端口8888
就是一个socks5的代理端口,设置Firefox的网络采用代理服务器,就设置socks5方式,127.0.0.1
端口8888
。注意,浏览器的DNS查询也必须走socks5端口。
参考How to Use SSH Tunneling to Access Restricted Servers and Browse Securely
Dropbox官方提同的deb软件包实际上依赖gnome图形环境,对于轻量级的桌面Xfce或者LXQt等,需要安装大量的依赖软件包。不过,实际上,我们只需要使用基本的文件同步功能,并不需要和文件管理器紧密绑定。所以可以直接使用Dropbox提供的Headless模式,即在命令行启动服务,甚至可以运行在远程没有桌面的服务器上。
- 安装Dropbox
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
在墙内无法直接下载文件,可以通过设置socks5代理的Firefox下载文件,然后在用户目录下解压缩
- 下载Dropbox Python脚本,然后重命名成可执行文件
sudo cp dropbox.py /usr/bin/dropbox
sudo chmod 755 /usr/bin/dropbox
- 运行Dropbox
screen -S dropbox -dm ~/.dropbox-dist/dropboxd
dropbox proxy manual socks5 127.0.0.1 8888
第2行命令是为了设置Dropbox使用本地socks5代理
此时会弹出浏览器要求登录验证,验证正确后就可以开始文件同步。