APT 용 프록시를 구성 하시겠습니까?


72

프록시를 구성해야합니다. 에 apt.conf파일이 etc/apt/없으므로를 사용하여 파일을 만들었습니다 nano.

그러나 나는 거기에 써야 할 것을 이해하지 못합니다. 나는 http_proxy = http://lgn:pwd@192.168.1.254:8080/거기에 쓰고 다시 시작했다 networking. 그러나 내가 시도하면 apt-get update작동하지 않습니다.

실제로 나는 apt.conf파일에 어떤 포트와 IP를 써야하는지 이해할 수 없습니다 ( 192.168.1.254ip와 8080포트 에 대한 예제가 있으므로 사용하기로 결정했습니다).


우분투에서 회사 프록시로 작업하기 위해 프록시 설정이 변경되었습니다. github.com/navinas33/docker_ubuntu.git를 방문하십시오 .
Navin as

답변:


103

프록시를 사용하려면 프록시 서버가 필요합니다. IP와 포트는이 프록시 서버에서 가져와야합니다. 로그인 및 pwd는 프록시 서버의 사용자 및 비밀번호 여야합니다 (프록시에 로그인이 필요한 경우).

에서 help.ubuntu.com 사이트 :

APT 구성 파일 방법

이 방법은 / etc / apt / 디렉토리에있는 apt.conf 파일을 사용합니다. 이 방법은 다른 응용 프로그램이 아닌 apt-get 만 http-proxy를 영구적으로 사용하도록하려는 경우에 유용합니다.

일부 설치에서는 apt-conf 파일이 설정되지 않습니다. 선택한 편집기를 사용하여 apt-conf 파일을 편집하거나 아직없는 경우 새 파일을 만듭니다.

sudo nano /etc/apt/apt.conf

이 행을 /etc/apt/apt.conf 파일에 추가하십시오 (proxyaddress 및 proxyport에 대한 세부 사항을 대체하십시오).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

apt.conf 파일을 저장하십시오.

프록시에 로그인 / 암호가 필요한 경우 다음을 대체하십시오.

"http://yourproxyaddress:proxyport";

와:

"http://username:password@yourproxyaddress:proxyport";

프록시 서버에서 사용자 이름과 비밀번호를 사용합니다.


6
별도의 로컬 파일을 추가하는 /etc/apt/apt.conf.d/것이 바람직하므로 시스템의 기본 구성 파일을 편집 할 필요가 없습니다. 이렇게하면 후속 패키지 버전에서 업데이트되는 경우 로컬 변경 사항을 직접 병합 할 필요가 없습니다.
tripleee

사용자 디렉토리에 프록시 conf 파일이 있습니까?
becko

이 답변은 업데이트가 필요합니다 : gksudo는 더 이상 사용되지 않습니다. sudo -Hgedit 등을 사용하는 경우 다른 비 GUI 편집기 또는 gksudo 대신 제안하는 것이 좋습니다.

24

이것은 apt 구성과 함께보다 일반적인 대답입니다.

프록시 설정을 구성 할 위치가 많으므로 처음에는 혼란 스러울 수 있습니다. 몇 가지 사항을 요약하고 모범 사례를 제안하겠습니다.

콘솔 프로그램

예 : wget, git 및 인터넷에 연결되는 거의 모든 콘솔 응용 프로그램.

어떤 이유로 명령을 실행할 때마다 프록시를 구성하려면 다음 명령을 사용하여 환경 변수설정하십시오 .

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

그렇지 않으면 모든 사용자에 대해 매번 동일한 설정을 사용하려면이 설정을 사용하십시오.

bashrc에서 설정

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

구성 /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

GUI를 사용하여 구성

네트워크 설정을 열고 시스템 전체 네트워크 프록시를 설정하십시오.

네트워크-> 네트워크 프록시-> 구성-> 시스템 전체 적용.

그러나 프록시 인증이있는 경우 유용하지 않을 수 있습니다.

적절한

우연히 apt는 환경 변수에 따르지 않기 때문에 apt에 대한 추가 작업을 수행해야합니다.

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

이 범위를 벗어난 모든 항목에는 응용 프로그램 자체에서 프록시 설정을 구성 할 수있는 옵션이 있어야합니다. 그렇지 않으면 죄송합니다.)


2
/ etc / environment의 설정은 사용자에게 http_proxy var를 설정하면 sudo 모드 ( 'sudo apt-get update'와 같은 것)로 들어갈 때 일반적으로 터미널이 현재 환경을 보존하지 않기 때문에 매우 중요합니다 vars; 설정을 테스트하는 것이 매우 중요합니다 : sudo echo $ http_proxy
belun

HTTP_PROXY(대문자)는 해당 변수의 표준 이름으로 보이지만 많은 프로그램이 소문자 버전으로 대체됩니다. https_proxy(소문자 소문자)가 올바른 대문자이지만 /etc/environment위와 같이 단독으로 사용하지는 않습니다 . (나는 s오타 라고 생각한다 .)
Curt J. Sampson

APT가 프록시를 추가로 구성해야하는 이유는 무엇입니까? 왜 / etc / environment에만 따르지 않습니까?
Loreno

22

다음과 같은 것이 작동해야합니다.

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";

사용하는 포트와 IP에 차이가 있습니까?
lapots

글쎄, 물론 사용하려는 프록시에 대한 정확한 세부 정보를 입력해야합니다.
Dennis Kaarsemaker 12

어 ... ip-라우터의 IP입니까? 나는이 IP를 예제에서 사용했지만 192.168.1.1ip를 사용하여 브라우저에서 구성하는 모든 라우터 설정을 의미합니다 . .1을 사용해야합니까? 그리고 로그인과 비밀번호는 우분투의 루트 또는 라우터 여야합니까?
lapots

2
당신이하고있는 일을 알고 있습니까? 세부 사항을 모른다면 프록시를 사용해야한다는 것을 어떻게 알 수 있습니까?
Dennis Kaarsemaker 12

5
그런 다음 선생님에게 문의하십시오. 이것은 "나를위한 숙제"사이트가 아닙니다.
Dennis Kaarsemaker 12

5

할 수있는 일은 sudo -E환경 설정을 사용하여 명령을 실행 하는 것입니다. 업데이트, 저장소 추가 및 설치를 시도하면 효과가있는 것 같습니다. 예:

sudo -E add-apt-repository ppa:xxxxx

@David Foerster에 따르면 이것은 셸을 사용한 수동 상호 작용에만 작동하지만 사용자 상호 작용없이 Apt를 호출하는 자동화 된 작업 및 서비스에서는 작동하지 않습니다.


그러나 사용자 상호 작용없이 Apt를 호출하는 자동화 된 작업 및 서비스에는 도움이되지 않습니다.
David Foerster 2016 년

신고 해 주셔서 감사합니다. 답변에 의견을 추가하겠습니다.
Frank Qiu

2

프록시 뒤에 apt를 사용해야하는 경우 다른 모든 항목에도 프록시 구성이 필요합니다. 프록시 설정을 한 곳에서 관리하고 싶습니다. 환경 변수입니다.

이를 위해 /etc/profiles.d/99-proxy.sh필요한 프록시 설정을 포함하는을 만듭니다 (larent 설명).

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

이렇게하면 해당 시스템의 모든 사용자가 프록시에 액세스 할 수 있습니다. (잊지 마세요 chmod a+x)

apt 또는 apt-get을 사용자로 사용하면 해당 사용자가 sudo를 사용할 수 있습니다. Frank Qiu가 설명한 것처럼 sudo는 환경 변수를 전달하지 않습니다. 이를 위해 추가 할 수 있습니다

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

(예)

/etc/sudoers.d/00-environment 

또는 직접

/etc/sudoers

파일. 이렇게하면 한 곳에서 프록시 설정 만 관리하면됩니다.


0

원래 질문은 잘못된 방향 일 수 있습니다. 리눅스에서 프록시 서버를 설정하고 싶다고 생각합니까?

Linux 환경에서 기존 프록시를 사용하려는 것과는 완전히 다릅니다.

질문이 첫 번째 질문이라면 타사 서비스를 사용하여 Linux에서 프록시 서버를 구성하십시오. 오징어를 예로들 수 있습니다.

오징어를 설치하는 간단한 명령 :

$ sudo apt-get install squid3

그런 다음 구성을 편집하여 로컬 네트워크 (이 경우 자신의 컴퓨터)를 허용하십시오. $ sudo vi /etc/squid3/squid.conf

다음 줄을 추가 / 편집하십시오 :

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

Linux 시스템의 IP가 192.168.1 / 24 블록에 있다고 가정하십시오.


아마도이 질문을 읽는 대부분의 독자는 이미 squid;)를 설치하고 http[s]_proxyENV 변수를 설정했으며 이제 APT가 여전히 작동하지 않는 이유를 궁금해합니다. 그러나 기계를 제외한 모든 것에서 HTTP 403을 얻는다면 squid- deny주석이없는 단어의 모든 발생을 다시 한번보십시오 . (특히 http_access같은 줄에서)
Tomasz Gandor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.