linux shell走socks5代理

现在linux系统下代理的方案一般是主机socks5代理+浏览器设置http(s)本地代理,但是如果我想让shell中的命令,比如git clone,wget,curl也走代理呢?
对于git clone很简单,只要导出环境变量
export https_proxy="socks5://127.0.0.1:1080"
测试一下
git clone https://github.com/multimodallearning/pytorch-mask-rcnn/archive/master.zip
当然也可以把这行命令写到$HOME/.bashrc文件中,这样每次打开新的shell窗口都会自动执行这行命令

对于wget,由于不支持sock5机制,所以直接按照上面的方法会报错
比如export之后,运行
wget https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data_downloader.zip
报错解析代理服务器 URL socks5://127.0.0.1:1080 时发生错误:不支持的协议类型 “socks5”。
我们可以使用一个叫tsocks的工具,它能为wget提供socks5的支持
先安装sudo apt install tsocks
tscoks的配置文件在/etc/tscoks.conf中,
最后几行修改为(具体视情况而定)
server = 127.0.0.1 server_type = 5 server_port = 1080
最后,我们在wget前面加上tsocks就可以使用代理了,再测试一下(注意取消之前export的设置)
tsocks wget https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data_downloader.zip
bingo!

参考:https://whatbox.ca/wiki/tsocks
http://manpages.ubuntu.com/manpages/xenial/man8/tsocks.8.html

你可能感兴趣的:(linux shell走socks5代理)