직장(방화벽이 있고 프록시를 통해 인터넷에 연결해야 함)과 집(프록시가 필요하지 않음) 사이를 이동해야 합니다.
Linux에는 전역 프록시 설정이 없고 많은 프로그램이 $http_proxy
해당 상위 프로세스에서 환경 변수를 상속하기 때문에 로그인 시 환경 변수를 설정해야 합니다. 이제 ~/.profile
파일에 다음 줄을 추가했습니다(실제로 KDE를 사용하고 있기 때문에 ~/.config/plasma-workspace/env/proxy.sh
해당 파일 대신 KDE에 의해 시작 시 소스를 가져오는 파일을 작성했습니다 .profile
).
PROXY="some.proxy:22"
# http in lower and upper case variants
export http_proxy=$PROXY
export HTTP_proxy=$PROXY
export HTTP_PROXY=$PROXY
# https
export https_proxy=$PROXY
export HTTPS_proxy=$PROXY
export HTTPS_PROXY=$PROXY
이렇게 하면 환경 변수가 모든 프로그램에 표시되고 새 셸을 열면 해당 변수가 표시됩니다. 하지만 프록시 없이 연결하려면 파일을 삭제하거나 모든 줄을 주석 처리하고 로그아웃한 후 다시 로그인해야 합니다.
프록시에 연결할 수 있는지(netcat 사용) 시도하고 이 경우 https 환경 변수를 내보내는 시작 스크립트를 작성해 보았습니다.
server="100.100.100.100"
PROXY="some.proxy:22"
export test="TEST2"
export test2=$(which nc)
nc -w 2 -z 100.100.100.100 22 -v > ~/Desktop/test.txt 2>&1
if nc -w 9 -z $server 22 2>/dev/null; then
# http in lower and upper case variants
export http_proxy=$PROXY
export HTTP_proxy=$PROXY
export HTTP_PROXY=$PROXY
# https
export https_proxy=$PROXY
export HTTPS_proxy=$PROXY
export HTTPS_PROXY=$PROXY
fi
이제 터미널에서 이 스크립트를 가져오면 . ./proxy.sh
환경 변수가 내보내집니다(글로벌이 아닌 현재 터미널에 대해서만). 그러나 NC가 실패하기 때문에 로그인시 작동하지 않습니다. 이러한 test.txt
파일에는 다음이 포함됩니다.
100.100.100.100: inverse host lookup failed: Host name lookup failure
(UNKNOWN) [100.100.100.100] 22 (http-alt) : Network is unreachable
어떤 제안이 있으십니까? 프록시 서버에 연결할 수 있는지 확인한 다음 이를 모든 후속 프로세스의 환경 변수로 설정하는 다른 방법이 있습니까?