1. 背景
为了测试本地的代理是否生效可用,一般的情况是通过浏览器SwitchyOmega插件配置后来进行测试目标网络的连通性。虽然安装成本不高,但是还是有一些成本,如果能通过CURL命令来验收整体的成本将会更低,本文将重点介绍如何在CURL侧进行代理的联通性测试。
2. 如何操作
通过man curl查看相关的使用参数,可以使用-x或是–proxy命令,可以使用http、https和socks5模式进行请求的代理,具体使用操作如下:
- curl -x socks5://<代理地址>:<代理端口> https://www.baidu.com
- curl -x http://<代理地址>:<代理端口> https://www.baidu.com
- curl -x https://<代理地址>:<代理端口> https://www.baidu.com
实际操作如下,通过-v参数输出请求协商过程:
- curl -v --proxy http://127.0.0.1:8001 https://www.baidu.com
- curl -v --proxy socks5://127.0.0.1:1080 https://www.baidu.com
3. 常态化配置
上述代理每次使用curl命令均使用配置代理参数,如何能够常态化的添加其配置,其实是可以将代理参数配置在系统的环境变量中,具体在终端下执行以下指令:
- export http_proxy=“http://<代理地址>:<代理端口>”
- export https_proxy=“http://<代理地址>:<代理端口>”
- export ALL_PROXY=socks5://<代理地址>:<代理端口>"
将如上命令执行后,使用curl执行命令时将自动附加proxy参数,执行结果如下:
但是如上配置仅限单次终端窗口,窗口关闭后相关环境变量还是会恢复至原始值,如果需要长期持久化的配置终端环境变量需要在终端的配置文件中添加相关的环境变量配置,如下配置为bash的情况下配置如下,终端如果为其它终端类型请自行配置:
// 打开配置文件
vi ~/.bashrc
export http_proxy="http://<代理地址>:<代理端口>"
export https_proxy="http://<代理地址>:<代理端口>"
export ALL_PROXY=socks5://<代理地址>:<代理端口>"
// 重载配置文件
source ~/.bashrc
4. 常见问题
- 如何删除环境变量,如果是在终端export配置直接执行如下命令即可,如果在bashrc配置的话需要在配置文件中移除并重新加载 source ~/.bashrc
- unset ALL_PROXY 移除全代理
- unset HTTP_PROXY 移除HTTP代理
- unset HTTPS_PROXY 移除HTTPS代理
- 本地如何查看代理的出口IP地址:curl -x socks5://127.0.0.1:1080 https://ipinfo.io/ip
- 访问过程中如何避免DNS污染问题,如何将DNS解析通过socks5代理:curl -v --socks5-hostname 127.0.0.1:1080 https://www.facebook.com