Google Compute Engine에 ShadowsocksR 설치하기 (1년 무료) - 1. GCE 가입

중국 만리방화벽(Great Firewall of China)을 뚫고 중국에서 막혀있는 서비스를 자유롭게 사용하기 위해서 VPN이나 Proxy등 여러가지 우회하는 방법을 사용하고 계실텐데, 이 포스트는 Google Compute Engine(이하 GCE로 통칭)에 서버를 구축하고, ShadowsocksR이라는 우회용 프로그램을 설치하여 만리방화벽을 우회하는 방법을 설명하기 위해 작성합니다.
(실은 2018년 말에 포스팅하려고 준비하고 있다가, 블로그 서비스를 어디로 사용할까 정하지 못해서 미루고 미루다가 이제야 작성하네요.)

IT 지식이 별로 없으신 분들을 대상으로 작성할 예정이며, 저도 IT 업계를 떠난지 10년이 넘었으므로 제가 아는 선에서 내용은 가능하면 쉽고 간단하게 써보도록 하겠습니다. 단, 제가 설명충 기질이 있어 생각보다 쓸데 없는 내용이 많을 수 있으니 필요 없다고 생각되는 부분은 넘기면서 읽어주세요.


저는 현재 유료 VPN 2종류를 구매하여 사용하는데, 한가지는 Lifetime License를 싸게 구매하여 사용 중이고, 다른 하나는 3년 약정 할인으로 사용 중입니다. 요즘 중국 정부의 VPN 규제가 강해지다 보니 둘 다 가끔씩 잘 되다가 안 되기도 하고 해서 다른 방법은 없나 찾던 중, VPN 보다는 Shadowsocks가 만리방화벽에 잘 탐지되지 않는다고 해서 자료를 검색해보고 설치하게 되었습니다. (Shadowsocks에 대해서는 여기 참고 : https://namu.wiki/w/Shadowsocks)


VPN과 Shadowsocks(또는 ShadowsocksR)의 차이점을 따져보면, VPN는 Virtual Private Network의 약자로 모든 통신 내용을 통채로 암호화하여 트래픽이 어디로 가는지 숨기고 트래픽의 내용을 들여다 보지 못하게 하는 반면, Shadowsocks는 Sock5 Proxy의 일종으로 만리방화벽을 우회하기 위한 용도로 만들어졌기 때문에 모든 통신이 암호화 되는 것은 아니고 네트워크 트래픽이 차단된 서버와 통신하는 것이 아닌 것 처럼만 보이게 한다는 차이점이 있습니다.


Shadowsocks의 VPN 대비 장점이라면, 만리방화벽은 이미 수집한 VPN 서버의 프로토콜 종류, IP나 포트 등을 파악하여 VPN 서버와의 통신을 막아버리지만, Shadowsocks를 사용하면 일반적인 통신인 것처럼 트래픽을 위장하기 때문에 만리방화벽이 Shadowsocks가 돌아가고 있는 서버가 우회 서버로 사용되고 있다는 것을 파악하고 IP를 막지 않는 상황에서는 자유롭게 통신을 할 수 있습니다. 그리고 연결을 우회하여 모든 패킷을 서버를 통해서 우회하는 것이 아니기 때문에 일반적으로 VPN보다 속도가 빠르다고 합니다.


단점이라면 VPN은 패킷이 통째로 암호화 되므로 만리방화벽이 VPN 서버와의 통신을 막고 중간에 패킷을 훔쳐서 열어보려고 해도 암호화 키를 알지 못하면 내용을 파악할 수 없는 반면, Shadowsocks는 연결만 암호화 하고 패킷은 암호화 하지 않기 때문에 중간에 패킷을 가로채서 내용을 파악할 수 있으므로 보안 측면에서는 위험합니다.


즉, 인터넷 상에서 중국 정부를 욕하는 글을 쓰고 싶으면 VPN을 써야하고, 단지 Youtube 동영상을 보거나, Facebook이나 트위터를 통해 친구들과 교류가 하고 싶다는 정도라면 Shadowsocks를 사용해도 무방합니다.


단, VPN도 본인이 직접 호스팅해서 사용하는 것이 아닌 이상 무조건 안심하고 쓸 수 있는 건 아니라고 하니 주의하시기 바랍니다. (참조 링크 : https://netxhack.com/vpn/freevpn-privacy/)


Shadowsocks는 인터넷 검열 우회를 목적으로 사용되므로 보통은 중국(또는 인터넷 검열 국가) 외의 나라에 서버를 구축하고, 해당 서버 통해서 통신을 하게 됩니다. 서버를 통째로 빌려서 사용하는 것은 비싸기 때문에 서버 중의 일부 자원을 할당 받아 저렴한 가격에 사용한 자원만큼만 비용을 지불하는 것이 일반적입니다. 이를 보통 VPS(Virtual Private Server)라고 부르며, AWS, Vultr, Linode, Conoha 등이 유명한데, 이 포스팅에서 GCE을 고른 이유는 초기 가입하면 1년 유효기간인 USD 300달러의 Credit을 제공하기 때문입니다. 보통 저렴한 VPS 월 정액이 USD 3~5달러인 것을 감안하면, 꽤 넉넉하게 자원을 사용해도 1년간은 실제 과금 없이 주어진 Credit만으로 사용할 수 있지 않을까 생각됩니다.


잡다한 설명은 여기까지하고, 실제로 서버를 구축하고 사용하는 방법에 대해서 설명하겠습니다.


준비물

  1. VPN : (중국에서 접속하는 경우 Google Compute Engine에 접속해야 하므로 VPN이나 기타 만리방화벽을 우회할 수 있는 방법으로 구글에 접속 가능해야 합니다. 설정할 때만 사용할 예정이므로 믿을만한(?) 무료 VPN을 잠시 사용하셔도 됩니다.)
  2. 신용카드 : 원래 비용을 납부하면서 사용해야 하는 서비스이므로 신용카드를 결제 방법으로 등록해야 합니다. 실제 결제는 이뤄지지 않으니 안심하세요.
  3. 리눅스 명령어에 대한 기초 지식 : 사실 없어도 무방합니다. 복사 & 붙여넣기만 잘 따라 하시면 OK!



실제 서버를 구축하고 클라이언트를 사용하는 방법은 아래 단계로 나누어서 설명합니다.
  1. GCE 가입 (본 포스트)
  2. VM 인스턴스 생성 및 설정
  3. ShadowsocksR 설치 및 실행
  4. 클라이언트 연결

  1. GCE 가입

우선 Google Cloud Platform 사이트(https://cloud.google.com)에 접속해서 아래 우측 상단의 "무료로 사용해 보기"를 클릭합니다.


가입 1단계입니다.
저는 국가로 홍콩을 선택했습니다. 보통은 거주지 국가를 입력하면 됩니다.
나머지 내용에 동의하고 다음 단계로 넘어갑니다.
(페이지 우측에 1년간 사용가능한 USD 300 달러 무료 Credit 제공 및 평가판 종료 이후 자동으로 비용이 청구되지 않음이 명시되어 있습니다.)

가입 2단계입니다. 
계정 유형은 개인을 선택하시면 되고, 아래 주소를 입력하고, 결제 수단으로 신용카드 정보를 입력합니다.
경우에 따라 신용카드 결제 주소지가 위 쪽에 입력한 주소지와 다른 경우 결제 우편물을 받을 수 있는 주소지를 입력하고 무료 평가판 시작하기를 눌러주면 가입이 완료됩니다.

결제수단 확인을 위해 Google에서 USD 1달러를 결제했다가 잠시 뒤 취소하므로 결제문자 받으시고 당황하지 마시기 바랍니다.

GCE에 VM(Virtual Machine)을 설정하는 부분은 다음 포스팅에서 이어서 설명하도록 하겠습니다.

이어지는 글 목록
  1. GCE 가입
  2. VM 인스턴스 생성 및 설정
  3. ShadowsocksR 설치 및 실행
  4. 클라이언트 연결
    1. Windows용 ShadowsocksR (C#)
    2. Android용 SSR
    3. iOS용 Potatso Lite

댓글

이 블로그의 인기 게시물

OpenWrt 공유기에 Wireguard 설정하기

Cloudflare DNS 서비스를 통해 Let's Encrypt 인증서 발급 및 갱신 자동화하고 v2-ui에 http+tls 위장 적용하기

샤오미 공유기 3세대(Mi Router R3G)에 OpenWrt 올리기