Curl、Wget 等命令 Uses proxy env variable https_proxy 如何解决
今天阿里云那些短信服务等居然全都用不了了。看了一下日志相当诡异:
响应体居然是自己后端的 resp。然后测试了一下发现
curl \ wget 等命令全都用不了了。
* Uses proxy env variable https_proxy == 'http://127.0.0.1:8080'
* CONNECT phase completed!
* Received HTTP code 501 from proxy after CONNECT
可以看到请求被代理到本地的8080了,所以导致失败了。
大家可以用 lsof -i 查看一下这个端口是什么。
lsof -i:8080
我这个端口很显然是Java的后端。
现在开始检查系统代理:
排查系统代理
使用 grep 搜索全局代理环境变量:
grep -R "HTTP_PROXY" /etc/profile /etc/environment ~/.bashrc ~/.bash_profile /etc/bash.bashrc
说明 系统全局设置了 HTTP_PROXY 和 HTTPS_PROXY 。可以看到是/etc/environment文件配置的这个proxy
解决方案
1,临时清理
在当前shell执行:
unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY no_proxy NO_PROXY
验证一下:
echo $HTTP_PROXY
echo $HTTPS_PROXY
输出应为空。
然后再去curl一下 应该就可以正常响应了。
2,永久更新
修改上面找到的配置文件:/etc/environment
直接全注释或者全删了。比如这样:
注意,这个需要重启一下服务器才能生效:
reboot
就OK了