2010. 10. 1. 12:27

ubuntu에서 proxy 서버 설정하기

이전에 아랫부분(밑의 빗줄 이하)과 같이 진행하는 경우(즉, 단순히 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;
};
};