CURL 仅以 root 身份运行

CURL 仅以 root 身份运行

我在 Ubuntu 10.04 上安装,不知何故 curl 停止与我的用户一起工作。我总是收到:curl:(7) 无法连接到主机。它只能以 root 身份工作。有人能帮帮我吗?

答案1

我检查了curl google.comstrace 日志而关键的一行肯定是409:

connect(3, {sa_family=AF_INET, sin_port=htons(9999), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)

如果我(为了测试)启动curl http://localhost:1357,我会进入 strace:

connect(3, {sa_family=AF_INET, sin_port=htons(1357), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)

因此,由于某些奇怪的原因,google.comcurl 尝试连接到而不是localhost:9999

您能否发帖:

  • /etc/hosts
  • /etc/nsswitch.conf
  • ~/.bashrc
  • /etc/host.conf
  • /etc/gai.conf
  • 输出ldd /usr/bin/curl
  • 输出env

答案2

也许一个用户正在使用代理,而另一个用户没有。查看您的用户或 root 是否定义了http_proxyHTTP_PROXY环境变量。

还要查看 root 是否有一个.curlrc文件,其中包含使其工作的选项,或者您的用户是否有一个.curlrc使其不工作的选项。

答案3

我在想,也许出于某种原因,curl 需要的某些库现在只能由 root 访问。您可以尝试以下方法:

sudo apt-get purge curl libcurl3
sudo apt-get install curl

如果这不能解决问题:

strace curl http://site.com/file.txt &> curl.log

并将输出发布到 pastebin.com 或其他地方。

相关内容