socks5 & http代理汇总
目录
日常工作中总有一些代码库、官方源是在国外的,要么完全访问不了,要么下载速度几kb/s。所以学会使用各种代理乃是重中之重……
首先假设我们已经通过ss部署了一个socks5代理( 127.0.0.1:1080)。
Git设置代理
在 git clone 时,有时候速度真是让人难以忍受,而通过代理可以大大提高下载速度。
设置全局代理,这里不必设置https.proxy, 文档中并没有该参数: https://git-scm.com/docs/git-config#git-config-httpproxy:
git config --global http.proxy socks5://127.0.0.1:1080
或者,只针对 https://github.com 设置代理:
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
如果使用ssh协议可能无法使用代理,因此我们将 ssh 替代为 https:
git config --global url.https://github.com/.insteadOf git://github.com/
执行完上面,可以查看 ~/.gitconfig 的配置:
[http "https://github.com"] proxy = socks5://127.0.0.1:1080 [http] proxy = socks5://127.0.0.1:1080 [url "https://github.com/"] insteadOf = git://github.com/
也可以取消代理:
git config --global --unset http.proxy
对于 socks5 和 socks5h 的区别:
- socks5h: the hostname is resolved by the SOCKS server (also known as CURLPROXY_SOCKS5_HOSTNAME type);
- socks5: the hostname is resolved locally;
Shell设置代理
如果我们在运行其它命令也需要使用代理,如果 apt、go get 等,该怎么做呢?
tsocks
安装tsocks:
sudo apt install tsocks
配置一下 tsocks 使用 socks5 代理, /etc/tsocks.conf:
# 直接连接不使用代理,192.168.0.*
local = 192.168.0.0/255.255.255.0
# 针对特殊地址配置
path {
reaches = 150.0.0.0/255.255.0.0
server = 10.1.7.25
server_type = 5
default_user = user
default_pass = pass
}
# 默认配置
server = 127.0.0.1
server_type = 5
server_port = 1080
通过tsocks走代理:
sudo tsocks apt update
proxychains
安装 proxychains:
sudo apt install proxychains
稍微配置一下 /etc/proxychains.conf:
strict_chain
proxy_dns
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 1080
在命令行前加上 proxychains 让程序走 socks5 代理:
sudo proxychains apt install xxx
proxychains git clone git@github.com:xxx/xxx.git
Socks转为http代理
尽管通过上面的方式,我们已经解决了大部分的代理问题。但是仍有某些特殊场景下,我们只能使用http代理。因此,我们需要将 socks5 代理转换为 http 代理。
这里我们将通过 privoxy 这个软件来实现该功能,首先安装一下:
sudo apt install privoxy
然后进行一些必要的配置 /etc/privoxy/config:
user-manual /usr/share/doc/privoxy/user-manual confdir /etc/privoxy logdir /var/log/privoxy filterfile default.filter logfile logfile actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. actionsfile default.action # Main actions file actionsfile user.action # User customizations # 设置监听端口 listen-address localhost:8118 toggle 1 enable-remote-toggle 0 enable-remote-http-toggle 0 enable-edit-actions 0 enforce-blocks 0 buffer-limit 4096 enable-proxy-authentication-forwarding 0 forwarded-connect-retries 0 accept-intercepted-requests 0 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 5 tolerate-pipelining 1 socket-timeout 300 # 限制访问权限 permit-access src_addr[:port][/src_masklen] [dst_addr[:port][/dst_masklen]] # 连接socks5代理,注意最后的 . 不能漏了 # 示例: forward-socks5 target_pattern socks_proxy[:port] http_parent[:port] forward-socks5 / 127.0.0.1:1080 .
重启一下privoxy:
sudo service privoxy restart
shell使用http代理
我们可以为 shell 设置 http 代理:
export http_proxy=http://127.0.0.1:8118 export https_proxy=http://127.0.0.1:8118
评论