今天遇到一个奇怪的事情,curl无法访问http/https url地址,但是postman可以调用,浏览器也可以访问。如下所示:
仔细看了下curl -v的返回值,发现请求的是本地IP和端口,推测可能有http代理进程干扰。于是,顺藤摸瓜,查询下是否有进程占用这个端口,使用命令如下:
$ netstat -a | grep 8123
结果如下所示:
确实是有进程占用这个端口,使用lsof命令看下占用这个端口的进程信息,命令为:
$ lsof -i:8123
查找到占用8123的进程,kill掉这个进程,发现还是不好使。
于是,推测可能是设置了http proxy代理,查看了下环境变量,发现确实设置了http proxy代理,如下所示:
注释掉这几个行后,再试了下,发现就好使了,如下所示:
问题虽小,排查起来,也花了不少时间。记录下来,希望对大家有帮助。