У меня новый OSX-компьютер под управлением Mavericks, и у меня есть интересная ситуация на rubygems.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 ответ1

1

Возможно, в среде пользователя настроен прокси-сервер? Я бы начал с запуска "set | grep 8080", чтобы посмотреть, содержит ли какая-либо переменная 8080. Также кажется, что символ канала не был распознан bash, так как curl, похоже, видит | head как часть имени хоста. Это повторяется? Происходит ли это даже при наличии пространства вокруг трубы (нет, в этом нет необходимости, но если оно изменит ошибку, оно может загореться). Была ли оригинальная команда скопирована из чего-то такого, что канал мог фактически быть другим не-ascii символом?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .