1. 개요
JigSaw[1]의 DIY 오픈소스 VPN 겸 프록시 프로젝트. 서버는 프록시 서버고 클라이언트는 VPN으로 쓰는 것이라고 보면 된다.언론탄압에 대하여 만든 VPN 클라이언트 겸 서버 설정 프로그램이다.
Outline은 언론 기관과 언론인이 더욱 안전하게 인터넷에 액세스하도록 돕기 위해 Jigsaw에서 개발한 오픈소스 프로젝트입니다.
공식 홈페이지 소개
한국어 공식 홈페이지 / Github / Reddit / Medium공식 홈페이지 소개
자신이 직접 VPN서버를 구축하고 이용하는 방식이다. VPN 연결만을 목적으로 들어온 경우, 서버를 구축한 사람에게서 key를 받아야 한다. 보통은 VPS를 사용하여 서버를 대여한 뒤 구축한다.
Docker 컨테이너 위에 Shadowsocks를 바탕으로 제작되었다. Shadowsocks 자체가 프록시와 VPN의 장점이 섞여 VPN의 보안성과 프록시의 가벼움, 방화벽 우회가 쉽다는 점을 동시에 잡았기 때문에 일반적인 방화벽을 넘어서 중국의 황금방패도 손쉽게 뚫을 수 있을 정도로 강력하다.
거기다가 서버 비용을 제외하면[2] 모두 무료며 OpenVPN이나 SoftEther VPN는 구축이 어려워 보통 일반 사용자는 이미 구축한 사용자에게서 키만 받아 사용하는 것과 달리 리눅스 관련 지식이 없더라도 쉽게 구축할 수 있다.
게다가 셀프 호스팅이기 때문에 본인만 해당 VPN 서버를 사용한다는 가정하에 다른 사람이 해당 대역에서 악용하여 일부 사이트에서 IP가 차단되거나 쓰로틀링이 걸리는 일도 발생되지 않으므로 차단당할 걱정없이 안심하고 사용할 수 있다.
2. 도구
Outline Manager는 Outline 서버에 키를 등록하거나 제거, 트래픽 사용을 확인할수 있는 관리자 도구이다. Outline은 초대 링크 형식으로 키를 발행하는데 각 키마다 사용량을 확인할 수 있다. Outline Manager는 윈도우즈,리눅스,macOS에서 GUI가 있는 경우 사용할 수 있다. GUI가 없는 윈도우 서버, 리눅스 서버 등은 사용할 수 없으니, 그런경우 다른 컴퓨터에서 사용하면 된다Outline Client는 Outline Manager에서 발급받은 키를 등록하고, VPN을 사용하는 실질적인 VPN역할을 하는 도구이다. 등록, 이름 변경(로컬저장), 삭제, 연결 이렇게 네가지 기능만 있다고 보면 된다.
키 하나로 한대의 기기만 인증이 되는것이 아니다. 두 대 이상도 가능하니 키를 분실하지 않도록 주의하자.
3. 서버 구축 & 이용법
3.1. 서버에 설치하고 설정하기
서버를 관리할 컴퓨터에서 Outline Manager을 설치WindowsLinuxMac한다. Outline Manager는 GUI를 지원하지 않는 경우 이용이 불가능하다.Set up Outline anywhere 또는 본인이 이용하는 서버를 선택한다.
이후 서버에서 아래 작업을 수행한다.
아래 명령어를 입력하여 서버를 설치한다. (Outline Manager에 안내됨)
sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"
만약 오류가 뜰 경우
sudo curl "https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh" | bash
이거로 실행해보자방화벽이 닫혀 있는 경우, 설치 완료 후 나타나는 "포트를 열어달라"는 메시지에 나오는 포트를 열어준다. 관리용 TCP포트 1개, 연결용 TCP포트 1개와 UDP포트 1개다.[3]
완료 시 나타나는 초록색 메시지 {"apiUrl":https://xx.xxx.xxx.xx:xxxx/xxxxxxxx","certSha256":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} 부분을 복사 후 서버를 관리할 컴퓨터의 Outline Manager Paste yout installation output here에 붙여넣는다.
이후 Add new key를 누른 뒤 키 공유하기를 이용하면 된다.
Docker 관련 부분에서 문제가 생기는 경우(설치가 안되는 경우 등)
curl -sS https://get.docker.com/ | sh
를 입력해서 직접 Docker을 설치해주자.3.1.1. Azure VM 추가설정[검열]
가상 머신을 생성한다.IP부분에서 IP주소를 정적으로 바꾼다.[고정IP]
브라우저 또는 자체 SSH 클라이언트를 통해 서버 연결 후 서버에 설치하고 설정하기에서 이어 한다.
구축 시, Azure에서 제공하는 직렬 콘솔을 이용할 경우 조심하자. 그 콘솔에 문제가 좀 많다(.....)
참고 : #1
3.1.2. DigitalOcean에 서버 구축하기
DigitalOcean에서 계정을 생성하고, 카드정보를 등록한다.Outline Manager에서 DigitalOcean을 선택한다.
자동으로 웹브라우저가 열리고, 로그인을 한다.
로그인 후 Outline Manager에서 서버를 생성할 지역을 선택한다.
끝.
3.1.3. Vultr에 서버 구축하기[검열]
방법은 Azure과 비슷하며 위 문단을 참고하여 직접 구축해야 한다. 위 DigitalOcean과는 달리 한국 리전이 존재한다.[7]가상 머신을 생성한뒤, 고정 IP를 할당해야 한다.[8]
브라우저 또는 자체 SSH 클라이언트를 통해 서버 연결 후 서버에 설치하고 설정하기에서 이어 한다.
참고로 Outline 공식 관리 클라이언트에 의하면 Vultr에서도 정상적으로 작동되는 것이 확인되었다고 하니 문제 없이 사용 가능하다.
====# AWS Lightsail 추가설정[검열] (비추천) #====
AWS Lightsail에 접속을 한다.
트래픽은 인, 아웃바운드 모두 계산하므로 1TB짜리면 500GB만 사용할 수 있다고 생각해야 한다.
인스턴스를 생성한 뒤, 고정IP를 생성한다.[고정IP]
브라우저 또는 자체 SSH 클라이언트를 통해 서버 연결 후 서버에 설치하고 설정하기에서 이어 한다.
참고 : #1 #2
2024년 7월 경 시기 미상으로 최소 가격인 512MB RAM 10GB가 기존 3.5$에서 5$로 가격이 인상되어 현재로서는 사실상 추천되지 않는다.
3.2. 서버 관리 재연결
서버를 관리하는 컴퓨터를 포맷하였거나 다른 컴퓨터에서도 관리하고 싶은 경우 등의 서버 재 연결이 필요한 경우다.추후 변경될 가능성도 있다. Github Issue
서버에 연결한 뒤, 본인이 쓰는 텍스트 에디터로 /opt/outline/access.txt를 연다. 이런 명령어를 이용하면 된다 : sudo nano /opt/outline/access.txt
내용은 아래와 같을 것이다.
certSha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
apiUrl:https://xx.xxx.xxx.xx:xxxx/xxxxxxxx
이걸 설치할 때 나타났던 초록색 메시지처럼 {"apiUrl":"https://xx.xxx.xxx.xx:xxxx/xxxxxxxx","certSha256":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} 형식으로 바꾸어 준다. 그러나 절대 txt의 내용을 수정하지 말자. 나중에 골치아파질 수 있다.apiUrl:https://xx.xxx.xxx.xx:xxxx/xxxxxxxx
이후 Outline Manager에 입력하면 이전에 만들었던 그대로 가져올 수 있다.
재연결을 한다고 해서 이전에 연결한 컴퓨터에서 로그아웃 된다거나 하지 않는다!
3.3. VPN에 연결
Outline Client를 설치하여 연결한다.Android 5.0+, IOS 9.0+, Windows 7.0+, 크롬OS 64.0+, macOS10.11+, Linux에서 사용이 가능하다.
각 앱스토어(구글 플레이스토어 등)에서 받거나, 앱스토어에서 설치가 불가능한 경우(중국의 경우 등) Github에서 받으면 된다. Windows버전은 자동으로 업데이트된다. 업데이트를 확인할 필요가 없다.
모바일에서 Outline 접속하는 법
서버를 생성 후 Outline Manager에서 받은 key를 이용하며, 링크를 통해 접속하는 경우 키가 자동으로 입력된다. 접속 키는 ss://로 시작한다. Shadowsocks를 이용한 연결도 가능하다. 다만 꽤나 설정을 해줘야 하는 반면에, Outline을 통해 연결하면 바로 연결이 된다.
혹시 서버 관리만 되고 연결이 안된다 하면, Outline을 우선 재 설치해보고, 그래도 안된다면 1024-65535의 포트를 열어줘보자. 무언가 다른 포트를 이용하려 하고 있는 것일지도 모른다. 다만, 그럴 일은 거의 없다.
4. 기타
- DigitalOcean을 사용하는 경우 Outline에 연결되었을 때 Netflix를 사용할 수 없다고 한다.
- DigitalOcean과 Outline이 파트너쉽을 맺어, 쉽게 설치할 수 있다. GCP도 쉽게 설치할 수 있지만, 실험용이다.
- 중국에서도 이용이 가능하다고는 하는데, 간혹 문제가 있기는 한 듯 하다.
- TCP와 UDP통신을 둘 다 한다. OpenVPN은 정할 수 있는데 아쉬운 부분.
- Edge브라우저에서 Outline 공식 사이트를 정상적으로 이용할 수 없다.
- AWS와 같은 VPS서버에 기반한 Outline VPN을 킨 상태에서 나무위키와 같은 Cloudflare의 TurnStile 서비스가 적용된 사이트에 접속하면 CAPTCHA 창이 뜬다. 이는 Cloudflare의 Privacy Pass 익스텐션을 이용해 이를 생략할 수 있다.
- 비슷한 서비스로 Amnezia VPN이 있으며, 최근 러시아와 중국등 인터넷 검열이 강화되어 Outline마저도 막히는 문제가 있는데 Amnezia VPN은 이를 해결하였다. 이 프로젝트도 역시 오픈 소스로 제작되고 있으며 적극적으로 다양한 기능들을 추가하고 있다. 인지도 면에서는 Outline에 비해 밀리는 편.
5. 같이보기
[1] Alphabet,Google의 자회사이다[2] 이마저도 직접 구축하지 않은 일반적인 유료 VPN 서비스는 무료 기간이 1개월 남짓이기 때문에 말 그대로 체험에 의의를 둔 반면, 클라우드 플랫폼에 직접 구축한 VPN의 경우 클라우드 플랫폼에 따라 조금 다르긴 하나 최소 매월 2.5$~5$만 지불하면 사실상 반영구적으로 무료로 사용할 수 있다.[3] 서버를 대여한 경우, 보통 대여한 회사의 설정 페이지에서 인바운드 포트를 열면 된다.[검열] 인터넷 검열에 의해 온 것이라면, "한국/대한민국"으로 해도 ISP가 차단 대상이 아니라 우회가 가능하다. 다만, 한국IP이기에 구글 등의 검색 결과에선 성인인증을 해야할 수 있다. 돈이 넉넉하다면 서버컴퓨터에서 외국서버로 VPN을 한번 더 돌리자. 한국 통신사들의 해외망QOS에 걸리지 않고 해외통신을 할 수도 있다.[고정IP] [검열] [7] 단 한국 서버는 2024년 8월 현재 시기 미상으로 가상 서버로 대체되었다.[8] 단 이 경우 추가 요금이 부가되므로 이점 유의.[검열] [고정IP] 고정IP가 필요없다면 안해도 된다. 다만 IP가 바뀌면 Outline을 다시 설치하고 다시 설정해줘야한다.