관련 가이드
Linux 서버와 명령줄 도구를 VPN 경로로 보내기
업데이트
Linux에서는 필요에 따라 두 가지 길이 있습니다. 서버 전체를 경로로 보내려면(Docker 이미지 받기, 해외 접속이 필요한 서비스, 무인 서버) OpenVPN을 쓰세요. /etc/openvpn/client/에 프로필 하나를 두고 부팅 시 시작하면 됩니다. 명령 몇 개(git, pip, npm, curl)만 보내려면 웹 프록시를 쓰세요. 프록시 주소를 http_proxy 변수에 넣으면 그 밖에는 아무것도 바뀌지 않습니다. 데스크톱 Linux는 네트워크 관리자로 가져올 수도 있습니다. 이 글은 세 가지 방법, 계정 정보 파일, 확인 명령을 다룹니다.
방법 1: 서버 전체를 경로로 보내기(OpenVPN)
- 클라이언트를 설치합니다. Debian/Ubuntu:
sudo apt install openvpnFedora:sudo dnf install openvpnArch:sudo pacman -S openvpn - 사이트에 로그인해 OpenVPN 페이지에서 지역별 .ovpn을 내려받습니다. Linux용 프로필에는 계정 정보가 들어 있지 않으므로(네트워크 관리자가 계정 정보가 든 파일을 거부하기 때문), 계정 정보 파일을 만드세요. 두 줄로, 첫 줄은 사이트 이메일, 둘째 줄은 비밀번호입니다. 그다음 나만 읽을 수 있게 권한을 제한합니다:
chmod 600 <credentials-file> - .ovpn을 /etc/openvpn/client/<region>.conf로 복사하고, 파일 안의 auth-user-pass 뒤에 계정 정보 파일 경로를 적습니다.
- 활성화하고 시작합니다:
sudo systemctl enable --now openvpn-client@<region>상태 확인:systemctl status openvpn-client@<region>출구 확인(내가 고른 지역이 나와야 함):curl -s https://ipinfo.io/country - 다른 지역을 쓰려면 다른 프로필을 내려받아 다른 유닛을 활성화하세요. 한 번에 하나만 실행하세요.
방법 2: 명령줄 도구만 경로로 보내기(웹 프록시)
이 사이트의 웹 프록시 페이지에 있는 프록시 주소와 계정 정보를 바로 환경 변수에 넣습니다(비밀번호의 특수 문자는 URL 인코딩하세요): export https_proxy=https://user:password@proxy-address export http_proxy=$https_proxy 그러면 그 셸에서 실행하는 curl, wget, git, pip, npm은 경로를 타고, 다른 것은 영향을 받지 않습니다.
Docker 데몬은 셸 변수를 따르지 않습니다. /etc/systemd/system/docker.service.d/proxy.conf에 Environment= 줄을 넣고 docker를 재시작하세요. apt는 /etc/apt/apt.conf.d/proxy.conf에 Acquire::https::Proxy를 설정하세요.
이 방법은 구조상 끊길 연결 자체가 없습니다. root 권한이 필요 없고 라우팅을 바꾸지 않으므로, 회사 서버나 다운로드 속도만 높이고 싶을 때 맞습니다. 프록시 변수를 따르는 프로그램만 커버합니다.
방법 3: 데스크톱 Linux에서 네트워크 관리자로
- network-manager-openvpn-gnome을 설치합니다(이 사이트의 OpenVPN 페이지에서 한 번 누르면 소프트웨어 센터가 열립니다).
- 설정 → 네트워크 → VPN → '+' → 파일에서 가져오기(Import from file)를 고르고 .ovpn을 선택한 뒤, 사이트 이메일과 비밀번호를 입력하고 저장합니다.
- 상단 바나 트레이에서 VPN을 켜고 끕니다. 부팅 시 자동 연결하려면 유선 또는 무선 연결 설정에서 'VPN에 자동으로 연결'(Automatically connect to VPN)을 체크하세요.
확인과 문제 해결
- 출구: 출력의 country가 내가 고른 지역이어야 합니다:
curl -s https://ipinfo.io - DNS: VPN 인터페이스에 경로가 내려준 DNS가 보여야 합니다:
resolvectl status새고 있다면 프로필에 dhcp-option DNS를 추가하거나 update-systemd-resolved 스크립트를 쓰세요. - AUTH_FAILED: 계정 정보 파일이 틀렸거나 계정이 만료된 것입니다. 비밀번호를 바꿨다면 파일도 고치세요.
- TLS handshake timeout(TLS 핸드셰이크 시간 초과): 서버로 가는 UDP가 통과하지 못하는 것입니다. 지역이나 네트워크를 바꾸세요. 클라우드 서버라면 보안 그룹에서 아웃바운드 UDP를 허용하세요.
- 중국 안의 서버에서 중국 미러는 직접 연결해야 할 때: 연결하면 모든 트래픽이 경로로 나가므로, apt / pip / npm을 중국 내 미러로 지정하거나, 방법 2로 특정 명령만 경로로 보내세요.
알아 둘 것
- Linux 서버 한 대는 요금제의 동시 접속 기기 수(개인 2대, 패밀리 4대, 기업 8대)에서 한 대로 계산되며 다른 기기와 함께 나눠 씁니다. 방법 2의 웹 프록시도 연결 단위로 계산됩니다.
- 프로필과 계정 정보 파일은 곧 내 계정입니다. git 저장소에 커밋하거나 이미지에 넣지 마세요.
- 비밀번호를 바꾸면 구조상 옛 프로필은 즉시 무효가 됩니다. 계정 정보 파일을 고치세요.
- 클라우드 서버에서 경로를 쓰는 것은 클라우드 업체의 약관을 따릅니다. 서비스는 접속 시간과 총 트래픽만 기록합니다.
FAQ
Linux용 프로필에는 왜 계정 정보가 들어 있지 않나요?
네트워크 관리자는 계정 정보가 든 프로필을 거부해 가져오기가 실패하므로, Linux용 프로필은 계정 정보를 직접 입력하도록 비워 둡니다. systemd를 쓸 때는 계정 정보 파일에 넣습니다.
Docker만 경로를 타게 할 수 있나요?
네. Docker 데몬에 따로 프록시 변수를 주거나(방법 2), 자체 OpenVPN을 갖춘 컨테이너(gluetun)를 실행해 특정 컨테이너만 경로를 타게 하면 됩니다.
Linux에서 사설망(Tailscale)은요?
공식 스크립트로 한 줄이면 설치되고, 그다음 이렇게 로그인합니다: tailscale up --login-server=<this site’s control server> (이 사이트의 컨트롤 서버 주소를 넣으세요). 밖에서 그 서버에 접속해야 하거나 한 번 설정한 뒤 계속 온라인이어야 할 때 맞습니다. 다운로드 속도만 높이려면 OpenVPN이나 프록시가 더 간단합니다.
공유기의 OpenWrt도 같은가요?
OpenWrt에 luci-app-openvpn을 설치하고 .ovpn을 올리면 내부 네트워크 전체가 경로를 탑니다. 이 사이트 펌웨어를 올린 공유기라면 그런 것 없이 계정으로 로그인만 하면 됩니다.