作为用户查找不正确,但作为根查找正确

作为用户查找不正确,但作为根查找正确

我有一台运行 Mavericks 的新 OSX 机器,在访问 ruby​​gems.org 时遇到了一个有趣的情况。

作为普通用户:

  $ curl http://rubygems.org|head                
  curl: (7) Failed connect to rubygems.org|head:8080; Connection refused

但是使用 sudo:

   $ sudo curl http://rubygems.org |head 
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                           Dload  Upload   Total   Spent    Left  Speed
    100  9181    0  9181    0     0   6847      0 --:--:--  0:00:01 --:--:--  6851
  <!DOCTYPE html>    
  <html lang="en">
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <meta name="google-site-verification" content="AuesbWQ9MCDMmC1lbDlw25RJzyqWOcDYpuaCjgPxEZY" />
   <link rel="apple-touch-icon" href="/touch-icon-iphone.png" />
   <link rel="apple-touch-icon" sizes="72x72" href="/touch-icon-ipad.png" />
   <link rel="apple-touch-icon" sizes="114x114" href="/touch-icon-iphone4.png" />
   <link rel="fluid-icon" href="/fluid-icon.png"/>
   <link rel="search" type="application/opensearchdescription+xml" title="RubyGems.org" href="/opensearch.xml">

我以前从未见过这种情况——为什么它会以用户身份转到 8080?我该如何修复这个问题?

答案1

也许在用户的环境中配置了代理服务器?我首先运行“set|grep 8080”来查看是否有任何变量包含 8080。此外,bash 似乎无法识别管道字符,因为 curl 似乎将 |head 视为主机名的一部分。这种情况可以重复吗?即使管道周围有空格,这种情况是否也会发生(不,这应该不是必要的,但如果它改变了错误,可能会有所启发)。原始命令是否是从某个东西复制而来,以至于管道实际上可能是其他非 ASCII 字符?

相关内容