'apt-get'은 프록시와 작동하지 않습니다


52

명령

sudo apt-get update

다음과 같은 오류가 발생합니다.

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

VirtualBox를 사용하여 Windows XP에 설치된 Ubuntu 10.10을 실행하고 있습니다. 인터넷 연결의 경우 인증과 함께 프록시 서버를 사용하고 있습니다. gnome-network-proxy도구 를 사용 하여 시스템 전체에서 프록시 설정을 설정 하려고했습니다 .

형식 /etc/environmenthttp_proxy변수 로 업데이트 된 후 http://my_proxy:port/인증 데이터가 없습니다.

Firefox에서 이것을 확인했습니다. 브라우저가 로그인과 암호를 물었고 모든 것이 잘 작동했습니다. 불행히도 apt-get의 경우는 아니 었습니다. 나는 또한 여기에 설명 된대로하려고했습니다 . 불행히도 작동하지 않습니다.

프록시가 Windows 도메인에 있다는 사실과 어떤 관련이 있습니까?

내 프록시 이름은 http-proxy 입니다. ' - '가 특별한 캐릭터입니까?


2
시스템-> 환경 설정-> 네트워크 프록시에서 글로벌 네트워크 프록시를 사용하고 설정을 전체적으로 적용 했습니까?
DemonWareXT

GUI 툴을 쉽게 사용할 수 있습니다. GrrProxy
Renae Lider

답변:


52

회사 네트워크의 경우 관리자가 프록시 형식을 다음 형식으로 지정했습니다.

http://[username]:[password]@[proxy-webaddress]:[port]

Windows 네트워크의 경우 사용자 이름은 다음과 같은 형식입니다.

[domain]\[username]

예를 들면 다음과 같습니다.

http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080

이 파일은 다음 새 파일에 추가되었습니다 (기본적으로 존재하지 않음).

gksudo gedit /etc/apt/apt.conf.d/01proxy

다음과 같은 텍스트가 추가되었습니다 :

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:password@askubuntu-proxy.com:8080";

익명 프록시를 사용하는 경우 로그인 자격 증명이 필요하지 않습니다.

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

파일을 저장 한 후 모든 것이 정상인지 확인하십시오.

sudo apt-get update

나중에 읽을 사람들에게 : 이것은 훈련되지 않은 눈에 대한 해킹처럼 보이지만 회사 대리에 순종하는 것은 매우 간단한 방법입니다.
macduff

1
이것은 완벽하게 작동합니다. 이전에 /etc/apt/apt.conf를 잘못된 획득 라인으로 설정하지 않은 경우. 나는 그 일을했고, 내가해야 할 일은 그 줄을 다시 삭제하는 것입니다.
허프만 건너 뛰기

우분투 12.10에서는 /etc/apt/apt.conf.d/01proxy에 대한 변경 사항을 /etc/apt/apt.conf에 복사하여 작동해야했습니다.
Stephen Niedzielski

이러한 편집으로도 12.04에서 작동하지 않을 수 있었지만 ntlmaps를 사용 및 구성하고 apt.conf 파일을 중간 프록시로 지정 하여이 작업을 수행 할 수있었습니다.
monkut

The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(물론 프록시 설정이 없으면 작동하지 않습니다 ...) 다행히도 sudo잘 작동합니다.
TED

13

"네트워크 프록시"애플릿에 입력 한 USERNAME 및 PASSWORD가 apt.conf 파일에 저장되지 않는 것으로 나타났습니다. /etc/apt/apt.conf 파일에 사용자 이름과 비밀번호를 수동으로 추가해야합니다.

"네트워크 프록시"애플릿은 호스트 이름과 포트만 저장합니다.

기본 구문은

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

Windows 사용자 이름과 비밀번호를 사용하는 경우 다음 조언을 따르십시오.

User = Domain/Username

(Windows 사용자는 사용 /하지 않음 \)

특수 문자와 함께 Windows 강력한 / 복잡한 암호를 사용하는 경우 값에 URL 인코딩을 사용해야합니다 (예 : 암호의 "@"는 "% 40").


(윈도우 사용자 사용 / 사용하지 않음) 그래서 그것이 붙어있는 이유입니다 :) 감사합니다!
GaiusSensei

9

설정 시도 http_proxyHTTP : // 사용자 : 패스 @의 proxyserver를을 : 포트 /

편집 :
설정 http_proxy이 작동하지 않으면 편집을 시도하십시오 apt.conf.
우분투 에서는 디렉토리에 apt.conf조각화되어 /etc/apt/apt.conf.d/있습니다.
이 디렉토리에서 편집 /etc/apt/apt.conf.d/01ubuntu:

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

또는 Synaptic : 설정-> 환경 설정-> 네트워크
를 사용하여 설정 한 다음 "수동 프록시 구성"에서 프록시 설정을 지정하십시오.


3
/ etc / environment 파일을 의미합니까?
tommyk

예,이 변수를 전체적으로 설정합니다.
캐주얼 코더

암호의 일부로 콜론을 어떻게 인코딩합니까?
k0pernikus

/ etc / environment는 apt-get과 함께 작동하지 않습니다 (또는 최소한 재시작이 필요합니다). apt.conf를 변경하면 즉시 영향을 미칩니다
Danubian Sailor

네트워크에서 "수동 프록시 구성"및 "시스템 전체 적용"설정이 apt-get과 작동하는지 확인할 수 있습니다.
윌 셰퍼드

4

저는 MS ISA 프록시를 사용하고 있으며 Cntlm 인증 프록시를 사용하고 있습니다. 에 apt.conf나는 4 개 라인을 가지고; 나는 마지막 줄이 비어 있어야한다고 읽었지만 확실하지 않습니다. 완벽하게 작동합니다.

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";

3

cntlm에는 네트워크의 NTLM 인증에 적합한 구성을 찾는 데 도움이되는 검색 옵션이 있습니다.

cntlm -I -M http://test.com

/etc/cntlm.conf에 결과를 복사하여 붙여 넣기

cntlm을 다시 시작하십시오


'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(내 프록시가 올바르게 설정되지 않은 경우 코스가 작동하지 않으면 ...)
TED

2
  1. 터미널을 열고 /etc/apt/apt.conf에 다음 줄을 추가하십시오.

    gksu gedit /etc/apt/apt.conf
    
  2. 이 두 줄을 추가하십시오 :

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. 저장 및 종료.

    이제 apt-get update프록시 뒤에서 작동해야 하지만 여전히 작동하지 않는 것, 즉 add-apt-repository명령입니다.

    프록시 뒤에 저장소를 추가하려면 다음 명령을 입력하십시오.

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py`
    

    이제 LANG = C add-apt-repository를 사용하여 Lucid와 Natty에 리포지토리를 추가 할 수 있습니다

    예:

    root @ ubuntu : ~ # LANG = C add-apt-repository ppa : motumedia / mplayer-daily

Unixmen를 통해


2

우분투에서 apt-get 업데이트를 적용하거나 설치하는 방법은 무엇입니까? 프록시 서버 뒤에 있었고 우분투를 설치 한 후 apt-get 명령을 사용하여 아무것도 업데이트하거나 설치할 수 없었습니다. 검색 후 apt 패키지가 변경되었음을 알았으므로 이제 / etc / apt 디렉토리에 apt.conf가 더 이상 없습니다.

이 문제를 해결하기 위해 수행 한 작업은 다음과 같습니다.

터미널과 파일 열기

sudo -H gedit /etc/bash.bashrc

파일 맨 아래에 다음 두 줄을 추가하십시오.

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

저장하고 종료합니다. 이제 우분투에서 패키지를 업데이트, 업그레이드 또는 설치할 수 있습니다


제안한대로 내보내기를 추가했습니다. 여전히 작동하지 않습니다. 이제 "extras.ubuntu.com:80(91.189.88.33)에 연결할 수 없습니다.-연결 (110 : 연결 시간 초과)"이라는 다른 오류 메시지가 나타납니다. <br> 이상한 것은 Firefox 환경 설정에서 동일한 프록시 설정을 입력하면 웹을 탐색 할 수 있다는 것입니다.
tommyk

@tommyk /etc/apt/sources.list를 게시하고 여기에 질문을 업데이트하거나 /etc/apt/sources.list에서 extras.ubuntu.com을 삭제하고 apt-get update를 실행하려고 할 수 있습니다
hhlp

source.list를 우분투 웹 페이지의 기본 목록으로 바꿨습니다. 이 파일에 나열된 모든 저장소에 대해 여전히 동일한 오류가 발생했습니다.
tommyk

2

이것은 나를 위해 일하고있다!!

(시스템 설정-> 네트워크 등을 통해 GUI에서 프록시를 수동으로 추가하는 것이 좋습니다) 그러나 그렇지 않은 경우 터미널에서 env 변수를 내 보냅니다.

export http_proxy=http://<your proxy url>:<proxy port>

그리고 다시 https :

export https_proxy= <usually the same as the http>

: 가장 중요한 -E를 추가 실행하려면 sudo apt-get install또는 sudo apt-get update를 실행해야합니다 :

sudo -E <command>

"-E"는 방금 내 보낸 http_proxy / https_proxy와 관련하여 루트 (sudo)에 대한 사용자 환경 변수를 사용합니다.

그것이 도움이되기를 바랍니다 :)


1

BlueCoat 프록시를 사용하는 경우 apt.conf파일 형식은 다음과 같습니다.

Acquire::http::proxy "http://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:Password@proxy.name.whatever:80/";
Acquire::https::proxy "https://Domain%5cUserID:Password@proxy.name.whatever:80/";

^ ^ ^ ^ 3 번째 프록시 줄 다음에 빈 줄이 있으면이 줄을 입력하지 마십시오. ^ ^ ^ ^


1

Ubuntu 18.04를 설치 한 후 동일한 문제가 발생했습니다. 나를 위해 일한 것은 다음과 같습니다.

  1. 네트워크 설정에서 네트워크 프록시 화면 열기
  2. 수동을 선택하고 http 및 https 프록시 정보를 모두 추가하십시오.
  3. 또한 다음으로 호스트 무시 필드를 설정하십시오.
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. 우분투 다시 시작

포인트 3은 위의 ​​항목을 추가해도 작동하는지 확실하지 않지만이 단계는 저에게 효과적입니다.


0
  1. 시냅틱을 시작하십시오 ( Gnome 2에서 시스템-> 관리-> 시냅틱 으로 이동하거나 Unity의 대시에 "synaptic" 을 입력하십시오).
  2. 메뉴 표시 줄에서 설정을 클릭 한 다음 환경 설정을 클릭하십시오 .
  3. 기본 설정 창이 나타나면 네트워크 탭을 클릭 하십시오.
  4. 수동 프록시 구성 단일 선택 단추를 선택하고 프록시 정보를 입력하십시오.
  5. 인증 정보를 적용하려면 인증 버튼을 클릭하고 사용자 이름과 비밀번호를 입력하십시오.
  6. 확인을 클릭하여 HTTP 인증 창을 닫으십시오.
  7. 확인을 클릭하여 환경 설정 창을 닫으십시오.
  8. 다시로드 버튼을 클릭하여 패키지 목록을 업데이트하십시오.

이 설정 변경은 Update Manager 에도 영향을 미칩니다 .


0

이 단일 라이너 솔루션은 저에게 효과적이었습니다.

sudo env http_proxy=http://<ip>:<port> apt-get update
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.