SW개발/우분투 리눅스

[Ubuntu] 수동 프록시 설정 방법 (git, docker, apt 등)

공무원 봉급 2022. 3. 14. 11:52

본 페이지에서는 Ubuntu Linux에서 수동으로 프록시를 설정하는 방법에 대해서 기록하고자 합니다. 최근에 사무실 서버를 이전하면서 방화벽 설정이 안정적이지 않아, 수동 프록시를 당분간 이용해야하는 상황이 되었습니다. 단순히 Ubuntu에서 Manual Proxy 서버를 설정하는 것 이외에도 여러가지 설정을 해줘야해서 상당히 성가신 일이 아닐 수 없었습니다. git, docker, apt 등의 프락시를 수동으로 설정하는 방법에 대해서 기록하고자 합니다.

 

1. 네트워크 프록시 기본 설정

 

우선 Ubuntu Linux에서 제공하는 네트워크 프록시 기본 설정 메뉴로 진입해서 수동 프록시 설정을 선택하고 HTTP 프록시와 HTTPS 프록시를 설정합니다.

 

 

일단 위와 같이 설정한 이후에 웹브라우저는 정상적으로 동작하였지만 제대로 통신이 이뤄지지 않는 다양한 문제들이 발생하였습니다.

 

2. 수동 설정하였음에도 불구하고 통신 에러가 발생한 동작들

 

1에서와 같이 수동 프록시를 설정해주면 모든게 잘 동작할 것 같았지만 현실은 그렇지 못했습니다. apt를 이용한 패키지 업데이트가 동작하지 않았고, git 명령을 통해서 GitHub 서버와의 통신도 제대로 되지 않았습니다. 또한 Docker 이미지 생성도 되지 않았습니다.

 

  • apt-get update 명령을 통해서 패키지 업데이트가 불가능함
  • docker 이미지 생성시에 연결 오류가 발생함
  • git 명령을 통해서 GitHub 서버와 통신이 불가능함.

 

3. apt 패키지 프록시 설정 방법

 

apt 패키지의 프록시 설정이 올바르지 않으면 $ sudo apt-get update 명령에서 "파일을 받는데 실패했습니다.", "Some index files failed to download. They have been ignored, o old ones used intead."와 같은 메시지가 발생합니다.

 

apt 패키지 업데이트가 가능하도록 apt 프록시 설정하면 해당 문제를 해결할 수 있습니다.

$ vi /etc/apt/apt.conf

선호하는 편집기도 /etc/apt/apt.conf 파일 편집을 시작합니다. 파일이 없을 경우 새로 생성하시면 되겠습니다. 파일 수정 및 반영에는 관리자 권한이 필요합니다.

 

Acquire::http::Proxy "http://proxy.abc.com:8080";

파일에 위와 같이 한 줄을 추가해줍니다.

 

이후 $ sudo apt-get update 명령을 수행하게되면 정상적으로 패키지 업데이트가 되는 것을 확인할 수 있습니다.

$ sudo apt-get update
$ sudo apt-get upgrade

 

 

4. docker 이미지에 프록시 설정 방법

 

이번에는 docker 이미지 생성시에 연결 오류가 발생하는 경우 해결 방법에 대해서 설명드리겠습니다. docker에 프록시 설정이 안 되어 있으면 docker 내부에서 패키지 설치시에 에러가 발생할 수 있습니다.

 

이 때는 docker script 파일에 아래와 같이 프록시를 설정해주면 됩니다.

ENV HTTP_PROXY=http://proxy.abc.com:8080 \
    http_proxy=http://proxy.abc.com:8080 \
    HTTPS_PROXY=http://proxy.abc.com:8080 \
    https_proxy=http://proxy.abc.com:8080

 

위와 같이 docker 이미지 생성시에 프록시 설정을 추가하면 정상적으로 도커 이미지가 생성되는 것을 확인하실 수 있습니다. 주의할 점은, 위의 프록시 설정을 어떠한 통신이 이뤄지기 전에 설정해야 한다는 것입니다. 만약 docker script 내부에 RUN apt-get update와 같은 패키지 설치 명령이 있을 경우 해당 구문 이전에 프록시 설정을 해줘야 된다는 의미입니다. 아주 당연한 내용이지만 실수하는 경우가 제법 있습니다.

 

 

5. git 프록시 설정

 

아래는 git으로 프록시 설정하는 방법입니다. 프록시 설정이 올바르지 않을 경우 GitHub 서버와 통신이 안 되는 문제가 있습니다. 이 경우 아래와 같이 프록시 설정을 해주면 됩니다.

 

$ git config --global --add http.proxy "http://proxy.abc.com:8080"
$ git config --global --add https.proxy "http://proxy.abc.com:8080"

위와 같이 프록시 설정을 해주면 git 명령이 제대로 수행되는 것을 확인하실 수 있습니다.

 

제대로 설정이 되었는지 확인하는 방법은 아래와 같습니다.

$ git config --global -l

 

위와 같이 입력하면 git 설정값이 아래와 같이 출력됩니다.

http.proxy=http://proxy.abc.com:8080
https.proxy=http://proxy.abc.com:8080

 

혹은 홈 디렉토리의 .gitconfig 파일을 읽어보시는 방법도 있습니다.

$ vi ~/.gitconfig

 

위와 같이 입력하면 아래와 같은 형식으로 프록시 설정을 확인하실 수 있습니다.

[http]
        proxy = http://proxy.abc.com:8080
[https]
        proxy = http://proxy.abc.com:8080

 

 

6. /etc/environment 파일에 프록시 설정

 

1번 과정에서 GUI 형식으로 수동 프록시를 설정했었습니다. 이번에는 터미널에서 수동 프록시를 설정하는 방법에 대해서 추가로 기술합니다.

 

$ sudo vi /etc/environemnt

선호하는 편집기로 관리자 권한을 이용하여 /etc/environment 파일을 편집합니다.

 

아래의 형식으로 프록시 설정을 추가합니다. 5번에서 docker script에 프록시 설정을 해준 것과 유사합니다.

http.proxy=http://proxy.abc.com:8080
https.proxy=http://proxy.abc.com:8080

 

이상으로 Ubuntu Linux에서 수동으로 프록시 서버를 설정하는 방법과 docker, git, apt 등에도 수동으로 프록시를 설정해주는 방법에 대한 글을 모두 마칩니다.

 

이상입니다.