Google Compute Engine에 ShadowsocksR 설치하기 (1년 무료) - 3. ShadowsocksR 설치 및 실행

이번 포스트는 세번째 단계인 실행중인 Debian Linux VM위에 ShadowsocksR 설치 및 실행하는 단계에 대해서 설명하겠습니다.
지난 단계까지 잘 따라하셨으면 GCE 사이트에 접속하여 우측 상단의 콘솔 링크를 선택하셔서 관리 콘솔을 여시고, 햄버거 메뉴 선택후 Compute Engine을 선택하여 VM 목록을 표시하시기 바랍니다.

현재 운용 중인 VM 인스턴스의 연결 항목에 표시된 SSH 버튼을 클릭하면 해당 인스턴스에 SSH로 연결하는 팝업이 표시됩니다.

이제부터 linux 시스템에 명령어를 입력하여 ShadowsocksR을 설치합니다.
어두운 회색 배경에 연두색 프롬프트가 "구글계정명@VM인스턴스명:~$" 형태로 표시되고 네모난 커서가 표시되면 명령을 입력할 수 있는 상태입니다. 관리자 권한을 얻기 위해서 아래 명령어를 입력하고 엔터키를 누릅니다.

sudo su

흰색 프롬프트로 "root@VM인스턴스명:/home/구글계정명#" 형태로 표시되면 관리자로서 명령을 입력하여 실행할 수 있는 상태입니다.
ShadowsocksR을 설치하기 위해 아래 명령어를 입력하고 엔터키를 누르면 자동으로 ShadowsocksR 관리 스크립트를 다운받고 실행 권한을 설정한 후 자동으로 실행합니다.

아래 스크립트의 원 저자는 Github 아이디 ToyoDAdoubi를 쓰시는 분이며, 제가 Fork해서 번역만 했습니다. (아마도 저분이 운영하는 것으로 보이는 사이트 들어가시면 훨씬 더 많은 "중국어" 스크립트들이 있으므로, 중국어를 잘 하시는 분들은 위 사이트에 올라와 있는 자료들을 한번 검토해 보시기 바랍니다.)

wget -N --no-check-certificate https://raw.githubusercontent.com/kikunae77/doubi/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh


위와 같은 화면이 나오면 14를 입력하고 엔터키를 눌러 "기타 기능" 메뉴로 넘어갑니다.


순서대로 1, 엔터, 1, 엔터, 엔터를 누르면 자동으로 명령들이 순차적으로 실행되어 BBR이라고 하는 가속기가 설치됩니다.


혹시 설치 과정에서 위와 같이 동일 버전 사용에 따른 기존 커널을 삭제할지의 여부를 물어보면 커서를 이동하여 "<NO>"를 선택하고 엔터키를 입력합니다.


설치가 완료되고 위와 같이 서버 재부팅 여부를 물어보면 엔터를 칩니다.
SSH 팝업창을 닫고 다시 원래창의 VM인스턴스 항목의 SSH를 눌러 다시 SSH 팝업을 띄웁니다.

관리자 권한을 얻기 위해 다시 아래 명령어를 입력하고 엔터키를 누릅니다.

sudo su

아래 명령어를 입력하여 ShadowsocksR 관리 스크립트를 실행합니다.

bash ssr.sh


위와 같이 관리 메뉴가 나오는데 salsa20 또는 chacha20 암호화 방식을 사용하자 하는 경우, 4번 "libsodium 설치"를 실행합니다. (libsodium은 오픈소스 암호화 라이브러리입니다.) salsa20, chacha20이 아닌 일반적인 암호화 방식을 사용하는 경우 바로, 1번을 입력하여 ShadowsocksR을 설치하면 됩니다.

네트워크 환경에 따라 다를 수 있지만 libsodium 설치는 소스를 다운로드 받아서 실행할 수 있는 형식으로 빌드하는 과정을 거치기 때문에 시간이 꽤 소요된다는 점 참고하시기 바랍니다.


위와 같이 설치 완료 메시지가 뜨면 다시 아래 명령어를 입력하여 ShadowsocksR 관리 스크립트를 실행합니다.

bash ssr.sh


여태까지는 Shadowsocks를 실행하는데 필요한 라이브러리를 설치하는 과정이었고, 실제 ShadowsocksR 설치는 지금부터입니다. 아래 현재 상태는 SSR 서버가 설치되어 있지 않다고 붉은 색 글씨로 표시되어 있습니다.
1을 입력하고 엔터를 눌러 설치를 시작합니다.


첫번째 입력할 내용은 연결에 사용할 Port 번호입니다. 0부터 65535 사이의 임의의 값을 입력하고 엔터를 눌러주면 됩니다.
원래 일부 프로토콜에 맞춰 주로 사용하는 포트들이 있지만 이 서버는 사용자 혼자서 ShadowsocksR 실행 용도로만 사용할 것이기 때문에 아무 포트나 입력해도 무방합니다.
단, 서버에서 미리 예약된 포트로 지정하면 포트 충돌로 작동이 안될 수 있으므로 가능하면 10,000번 이후의 숫자로 지정하는 것이 좋습니다.
이 포스트에서는 SSR 서버가 잘 걸리지 않도록 패킷을 위장하기 위해서 443번 포트를 선택했습니다.

두번째 입력은 접속에 사용할 암호입니다. 역시 임의로 입력하고 엔터를 누르면 됩니다.

세번째 선택사항은 암호화(Encrypt) 방식입니다. 위에서 libsodium을 설치한 경우에만 salsa20이나 chacha20으로 시작하는 암호화 방식을 선택해야 합니다. libsodium을 설치하지 않은 상태에서 salsa20이나 chacha20으로 선택하면 ShadowsocksR이 제대로 실행되지 않습니다.
원하는 암호화 방식의 숫자를 입력하고 엔터를 눌러 줍니다.


네번째 선택사항은 접속에 사용할 Protocol 방식입니다. 원하는 방식의 숫자를 입력하고 엔터를 누릅니다.
주의사항에 auth_chain_a를 선택하는 경우 위 암호화는 none을 선택하고 아래 난독화는 아무것이나 선택해도 되지만 plain을 선택하는 것을 추천한다고 합니다.
참고로 기본값인 auth_sha1_v4로 설정하면 나중에 ShadowsocksR이 아닌 Shadowsock 접속 프로그램으로도 접속이 가능합니다.

다섯번째 선택사항은 난독화(Obfuscate) 방식입니다. 만리방화벽이 쉽게 탐지하지 못하도록 설정한다고 생각하면 되는데, 아래 설명에 보면 게임 등과 같이 빠른 반응을 요구하는 경우에는 plain을 선택하라고 합니다.
tls1.2_ticket_auth를 선택하는 경우, 향후 접속에 사용하는 클라이언트에서 난독화 옵션에서 tls1.2_ticket_fastauth를 선택하면 반응속도 지연이 없다고 하니 참고하시기 바랍니다.
일본이나 미국 등 인기있는 지역의 서버에 ShadowsocksR을 설치한 경우 plain을 선택하는 것이 만리방화벽 탐지율이 낮다고 하니 이 부분도 참고하시기 바랍니다.
이 포스팅 예제에서는 포트를 443으로 선택하였으므로, 난독화 선택은 tls1.2_ticket_auth로 선택하였습니다.

여섯번째 ~ 여덟번째 입력 사항은 각각 동시 접속할 수 있는 장치의 제한 수 (최소 2개 이상), 한개의 연결된 장치가 사용할 수 있는 네트워크 속도 제한 및 연결된 모든 장치가 사용할 수 있는 네트워크의 속도 제한입니다. 우리는 장치 수량 무제한, 네트워크 속도도 별도의 제한을 하지않을 것이므로 그냥 엔터만 세번 눌러서 넘어가면 됩니다.

위에서 각각의 입력사항에 대해서 어떤 내용인지 설명했지만, 난 뭘 선택해야 할지 모르겠다 하시는 분들은 그냥 엔터만 눌러서 넘어가도 자동으로 기본값으로 설치가 되므로 처음부터 엔터만 열심히 눌러도 설치는 완료됩니다.


설치가 완료되면 위와 같이 설치 완료 메시지와 여태까지 설치한 내용에 대한 요약 및 나중에 각 장치에서 ShadowsocksR 접속을 쉽게 할 수 있는 ssr 연결 문자열 및 ssr 연결용 QR코드를 표시해주는 링크가 출력됩니다.
SSR 접속 정보나, SSR 링크, QR코드는 모르는 사람이 얻게 되면 본인 서버에 접속하여 트래픽을 사용할 수 있으니 아무에게나 공개하지 않는 것이 좋습니다. 설치 옵션 선택 과정에서 Shadowsocks와 호환되는 설정을 했으면 ss연결 문자열 및 ss연결용 QR코드 표시 링크도 출력됩니다.
간혹 ShadowsocsR 설치가 완료된 후 GCE의 SSH 팝업 창에 아무 내용도 보이지 않는 경우 키보드에서 아무 키나 누르면 화면에 위 내용이 표시됩니다.
위 내용은 복사해서 메모장 등에 붙여놓고, 나중에 장치에서 연결을 설정할 때 입력하면 됩니다.

ShadowsocksR이 제대로 실행되고 있는지 확인하기 위해서 다시 한번 아래 명령어를 입력해 봅니다.

bash ssr.sh


위에서 표시되는 것과 같이 이미 설치가 되어 있고 실행중이라고 녹색 글씨로 표시됩니다.

각각의 메뉴들에 대한 설명입니다.
위 메뉴에서 5번을 누르면 위에서 봤던 ShadowsocksR 설정 정보를 다시 출력해줍니다.
6번을 누르면 현재 ShadowsocksR에 연결되어 있는 기기의 현황을 보여줍니다. (IP 주소 및 위치 등)
7번을 누르면 ShadowsocksR을 설치하면서 입력했던 내용들을 선택하여 수정할 수 있습니다. (포트번호, 암호화 방식, 전송 프로토콜 등등)
8번을 누르면 ShadowsocksR을 설치하면서 입력했던 내용들이 저장된 설정 파일을 vi로 읽어들여 수동으로 변경할 수 있는데, 리눅스 초보자라면 가능하면 선택하지 마시고 혹시 호기심에 들어가 봤는데 어떻게 빠져나오는지 모르겠다 하시면 :q라고 입력하고 엔터를 누르시면 빠져나올 수 있습니다.
9번을 누르면 다중 포트를 사용할지 선택할 수 있습니다.
10번은 ShadowsocksR이 실행되고 있지 않는 상태일때 실행하기 위해 선택
11번은 ShadowsocksR을 중지시킬 때 선택
12번은 ShadowsocksR이 실행중인 상태에서 재시작하고자 할 때 선택
13번은 ShadowsocksR이 실행되면서 쌓인 내부 log를 보고자 할 때 선택합니다.
14번은 기타 라이브러리 설치가 필요한 경우 선택합니다. CentOS는 BBR 설치가 안되는 걸로 알고 있습니다. 이 경우 ServerSpeeder나 LotServer를 선택하여 설치 할 수 있습니다. 그리고 iptables를 이용하여 SSR 서버를 경유하는 특정 포트를 막거나 특정 도메인에 접속을 못하게 하고, torrent를 사용하지 못하게 하는 등의 설정이 가능합니다.
15번은 ShadowsocksR 스크립트의 업데이트가 있는지 확인하고 업데이트를 하기 위해 선택합니다.

이제 서버 쪽의 설정이 끝났으므로 각 기기에서 서버에 접속 설정하는 방법에 대해서 설명하겠습니다.

각 기기별 접속 설정하는 방법에 대해서는 다음 포스팅에서 다루겠습니다.


이어지는 글 목록
  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 올리기