最新消息:

Linux使用代理服务器

IT技术 ipcpu 518浏览 0评论

Linux使用代理服务器.md

零、概述

有时候,我们在Linux上需要访问github或者是google、k8s一些资源,是需要使用代理服务器的。如果是windows的话,有很多的软件可以实现全局的代理,但是Linux下没有类似的软件,这里总结了一下Linux下的一些用法。

一、curl 使用代理服务器

curl是Linux最常用的命令,使用方法如下:
方法一、curl命令行直接指定代理

# 参数是-x, --proxy [protocol://]host[:port]
curl -x "socks5h://172.28.9.46:10801" https://myip.ipip.net/

#如果不指定协议的话默认是HTTP协议
curl -x 172.28.9.46:10802 https://myip.ipip.net/

curl 7.21版本开始支持代理协议的指定,7.52版本开始支持https协议的代理。
方法二、配置文件(~/.curlrc)设置代理服务器

# cat ~/.curlrc
proxy = "socks5h://172.28.9.46:10801"

二、全局性代理配置

上面只介绍了curl命令,很多时候我们想要一个全局性代理,那么需要按照下面方法:
添加以下环境变量

export http_proxy=http://172.28.9.46:10802
export https_proxy=$http_proxy 
export ftp_proxy=$http_proxy
export rsync_proxy=$http_proxy 
export all_proxy=$http_proxy
export no_proxy=*.abc.com,10.*.*.*,192.168.*.*,*.local,localhost,127.0.0.1

这里需要解释下:

http_proxy:当访问的是HTTP协议时,使用代理服务器地址;
https_proxy:当访问的是HTTPS协议时,使用代理服务器地址;
ftp_proxy:当访问的是FTP协议时,使用代理服务器地址;
rsync_proxy:当访问的是rsync协议时,使用代理服务器地址;
all_proxy: 其他协议使用代理服务器地址
no_proxy:不使用代理的主机或IP。

例如

#仅设置访问http协议时使用代理
[root@s101.ipcpu.com ~]#export http_proxy=socks5h://172.28.9.46:10801
[root@s101.ipcpu.com ~]#
[root@s101.ipcpu.com ~]# curl http://ip.gs
149.129.129.152
[root@s101.ipcpu.com ~]# curl https://ip.gs
223.102.211.66
[root@s101.ipcpu.com ~]#
# 关闭代理设置
[root@s101.ipcpu.com ~]# unset http_proxy
[root@s101.ipcpu.com ~]# curl http://ip.gs
223.102.211.66

三、git客户端使用代理服务器

设置了全局代理,发现git好像不生效,因为git代理需要单独设置,方法如下:

export http_proxy=socks5h://172.28.9.46:10801
# 设置git代理

git config --global http.proxy $http_proxy
git config --global https.proxy $http_proxy
# 忽略证书错误
#git config --global http.sslverify false

# 取消git代理
git config --global --unset http.proxy
git config --global --unset https.proxy

git config --global --unset http.sslverify

四、关于协议和域名解析

HTTP、HTTPS、SOCKS5H都是远程代理服务器来进行域名解析。
SOCKS5是本地进行域名解析,/etc/hosts文件会生效。
SOCKS5H协议有些程序是不支持的,比如wget。

来自为知笔记(Wiz)

转载请注明:IPCPU-网络之路 » Linux使用代理服务器

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址