虚拟机debian、ubuntu配置sock/socks5h/http/https代理
首先开启代理软件,打开允许局域网连接。
然后编辑用户变量
nano ~/.bashrc
添加以下代码
# set proxy
function proxy_set() {
export MY_PROXY=socks5h://192.168.10.1:10810
#err write export no_proxy="localhost,127.0.0.0/8,::1/128,.local,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12"
export no_proxy=${no_proxy},$(echo 192.168.{7..20}.{1..255} | sed 's/ /,/g')
export http_proxy=${MY_PROXY}
export HTTP_PROXY=${http_proxy}
export https_proxy=${MY_PROXY}
export HTTPS_PROXY=${https_proxy}
export all_proxy=${ALL_PROXY}
export ALL_PROXY=${MY_PROXY}
export FTP_PROXY=${MY_PROXY}
echo "proxy set! =${http_proxy}"
}
# unset proxy
function proxy_unset() {
unset no_proxy
unset http_proxy HTTP_PROXY https_proxy HTTPS_PROXY
unset all_proxy ALL_PROXY FTP_PROXY
echo "proxy unset@ <=${http_proxy}"
}
# enabled
proxy_set
然后刷新启用变量
source ~/.bashrc
以后可以在终端直接敲 proxy_ 然后tab补全调用命令
~$ proxy_
proxy_set proxy_unset
理想的写法是"localhost, 127.0.0.0/8, ::1/128, .local, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12"
但是强大的Linux不支持子网写法。
然后就能使用代理了。
注意不能写在其他脚本里调用,因为父进程不一样。
而且那个no_proxy列表不能太长,不然解析不了...
注:
- socks5h:// 代表域名解析DNS也走代理服务器
- no_proxy 表示不走代理的地址,一般设置内网地址
环境变量 | curl | git | apt-get | wget | 备注 |
http_proxy | Y | Y | Y | Y | |
https_proxy | Y | Y | ? | Y | |
ftp_proxy | Y | Y | Y | N | |
all_proxy | Y | Y | N | Y | |
no_proxy | Y | Y | N | Y |