Research/Ubuntu

ubuntu에서 proxy 서버 설정하기

초록생선 2010. 10. 1. 12:27

이전에 아랫부분(밑의 빗줄 이하)과 같이 진행하는 경우(즉, 단순히 export만 하는 경우),
한번의 terminal session만 동작하게 됩니다.
즉, 다시 telnet이나 ssh로 shell을 시작하는 경우, 적용이 되지 않습니다.
만일 bash를 사용한다면,

$ cd ~
$ gedit .bashrc
를 실행합니다. (해당 계정에만 작동합니다. 전체 계정인 경우, 다른 설정 파일을 수정하면 됩니다.)
...
http_proxy=http://xxx.xxx.xxx.xxx:nnnn
export http_proxy
와 같이 끝에 http_proxy 설정을 추가합니다.
그리고, 다시 terminal session을 시작하면,
$ printenv http_proxy
http://xxx.xxx.xxx.xxx:nnn
$ sudo printenv http_proxy
[sudo] password for greenfish:
$
와 같이 sudo가 된 경우에는 http_proxy가 설정되지 않습니다.
그래서,
$ sudo visudo
하여 다음과 같이 sudo 설정을 변경하십시요. 물론 기존의 Defaults env_keep이 있었다면 "... http_proxy"와 같이 공백으로 구별하시기 바랍니다. 역시 http_proxy 말고라도 ftp_proxy와 같은 설정도 추가할 수 있으니 유의하세요.

...
# Allow members of group sudo to execute any command

%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

Defaults env_keep += "http_proxy"

그러면 sudo printenv http_proxy 하면 설정이 유지됩니다.
이렇게 되면 아래 빗줄 이하와 같이 apt.conf 설정을 따로 하지 않아도 proxy 설정이 유지됩니다.


이전 방법 ( 추천하지 않음 )

 회사같은 네트웍 환경에서는 proxy 서버를 사용하는 경우가 많습니다.
ubuntu의 firefox에서 proxy 서버를 설정하면, firefox에서는 네트웍 접속이 잘 되지만,
firefox 이외의 다른 http:// 접속은 여전히 불가능합니다.
그래서, 다음과 같은 시스템 wide한 proxy 설정이 필요합니다.

export http_proxy=http://주소:port
export https_proxy=http://주소:port

물론, 위 설정은 su 가 이뤄져야 합니다.

즉,
export http_proxy=http://xxx.xxx.xxx.xxx:1234
sudo(리턴)
export http_proxy=http://xxx.xxx.xxx.xxx:1234
와 같이 이뤄집니다.

그리고, 만약 Ubuntu Desktop이라면, System->Preferences->Network Proxy에서 설정 가능하며,
Apply System-Wide...를 누르면 됩니다.

단, 어떤 경우에는, apt-get 같은 명령의 proxy 설정도 필요한데,
$ sudo gedit(혹은 vi) /etc/apt/apt.conf를 다음과 같이 저장하면 됩니다.
Acquire {
Retries "0";
HTTP {
Proxy http://XXX.XXX.XXX.XXX:XXXX;
};
HTTPS {
Proxy https://XXX.XXX.XXX.XXX:XXXX;
};
};