为了解决 Linux Mint/Ubuntu 下安装 Dropbox 的问题,而认识了 proxychains。proxychains 是 Linux 下的代理工具,他允许其他程序通过其代理上网,支持 HTTP, SOCKS4 和 SOCKS5 类型的代理服务器,并可配置多个代理方式。
一直使用的 Dropbox 因为其被屏蔽,所以安装及使用必须通过代理,而 Shadowsocks 作为天然的 socks5 代理成为了最佳选择,在安装 Dropbox(Linux) 之后,设置中可以设置 Socks5 代理。于是剩下的问题便是,如何安装 Dropbox 了。在 Dropbox 官网下载的安装程序会自动下载相关组件,但是因为没有走代理,几乎在直连的情况下无法成功。所以在解决这个问题的时候知道了 proxychains。在了解其作用之后,发现也可以利用其特性来达到在 Linux 终端下让任何命令走代理的目的。
安装 Proxychains
安装 proxychains 可以有很多方法,最简单的方式就是使用 apt
sudo apt install proxychains
如果想要使用最新版,也可以自己手动编译源码
# 安装
git clone https://github.com/rofl0r/proxychains-ng.git
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
sudo make install-config
配置
在安装完成之后,一般在 /etc/proxychains.conf
处会有默认配置文件,编辑该文件
sudo vim /etc/proxychains.conf
socks5 127.0.0.1 1080
# 开启本地 socks5 代理
然后使用
proxychains dropbox start -i
就可以启动 Dropbox 安装程序。安装成功之后使用设置中内置的代理即可。
或者使用
proxychains wget https://www.google.com
使用 curl ip.gs
来验证是否成功
$ curl ip.gs
当前 IP:124.xxx.xxx.xxx 来自:中国北京北京 电信
$ proxychains curl ip.gs
ProxyChains-3.1 (http://proxychains.sf.net)
|DNS-request| ip.gs
|S-chain|-<>-127.0.0.1:1080-<><>-4.2.2.2:53-<><>-OK
|DNS-response| ip.gs is 45.116.12.10
|S-chain|-<>-127.0.0.1:1080-<><>-45.116.12.10:80-<><>-OK
当前 IP:106.xxx.xxx.xxx 来自:日本东京都东京linode.com kddi.com
来现在任何内容
延伸
在配置完 proxychains 之后,在终端如果任何命令无法连接成功时,在其前加上 proxychains
就可以走代理方式来执行该命令。
在网上查阅的时候同样发现还有其他类似的工具,比如 polipo,这是一个 socks5 转 http 的代理,设置之后可以使用 export http_proxy=http://localhost:port
来让终端走代理。
polipo 的使用也非常简单
sudo apt-get install polipo
然后再修改其配置
sudo vim /etc/polipo/config
放置以下配置:
logSyslog = true
logFile = /var/log/polipo/polipo.log
proxy:socksParentProxy = "localhost:1080"
socksProxyType = socks5
启用 polipo
sudo /etc/init.d/polipo start
默认端口为 8123 使用即可。
不过需要注意的是 Polipo 作者已经在 GitHub 宣布项目不再更新。推荐还是使用 proxychains。