사실 Outline의 Windows 클라이언트에는 정말로 많은 버그가 있습니다. Virtual Tap Adapter 드라이버로 좋은 성능을 자랑하긴 하지만 일단 작동해야 쓸 수 있죠. Outline은 Shadowsocks로 개발되었습니다. 유일하게 다른 점은 트래픽 사용량을 캡쳐하고 여러 키를 생성할 수 있도록 하는 것이죠. 그래서 결과적으로 Outline과 Shadowsocks는 호환됩니다.


Shadowsocks-Windows 설치하기

먼저 Shadowsocks-Windows 클라이언트를 시스템에 설치해야 합니다. Shadowsocks-Windows는 기본적으로 포터블한 상태로 배포되기 때문에 쉽게 시작할 수 있도록 시작 메뉴 폴더에도 바로가기를 넣어주면 편리합니다.

shadowsocks/shadowsocks-windows
If you want to keep a secret, you must also hide it from yourself. - shadowsocks/shadowsocks-windows

위 Shadowsocks-Windows 저장소의 Release 탭에서 마지막 버전을 다운로드해주시면 됩니다.

  • 현재는 한국어 번역의 PR이 모두 검토되어 기본적으로 한국어가 지원됩니다.

Zip 파일을 다운로드하고 원하는 곳에 압축을 풀어주세요.

그리고 우클릭하여 '바로 가기 만들기' 버튼을 통해 바로가기를 생성합니다.

그리고 시작 메뉴를 열고 아무 프로그램이나 우클릭하여 위치를 열면 프로그램 바로가기가 모여있는 시작 메뉴 폴더를 빠르게 여실 수 있습니다.

마지막으로 시작 메뉴에 바로가기를 붙여넣어주시면 설치가 완료됩니다.

받은 키 해석하기

만약 받은 키가 없으시다면 Outline Manager에서 새로운 키를 만들거나 가져오시면 됩니다. Shadowsocks 키는 기본적으로 다음과 같은 형태를 가지게 되는데 저희는 그 키를 분해하여 필요한 부분만 빼낼 것입니다.

ss://<base64>@<server_address>:<server_port>/?outline=1

앞 단의 Base64 문자열을 ASCII로 디코딩하면 서버 연결에 필요한 정보를 모두 얻을 수 있습니다.

# Base64 decoded result
<encryption_method>:<passcode>

Base64를 디코딩하기 전에 개인정보 유출을 방지하기 위해 꼭 클라이언트 사이드 디코딩이 보장되는지 확인하셔야 합니다. 혹은 아래 웹 사이트를 사용해주세요.

https://opinionatedgeek.com/Codecs/Base64Decoder

디코딩이 완료되면 아래와 같은 결과를 얻을 수 있는데 암호화 방법은 chacha20-ietf-poly1305가 Outline의 기본값이기 때문에 여기에서 저희가 필요한 것은 <passcode> 부분입니다.

Shadowsocks-Windows에 서버 등록하기

이제 서버 연결에 필요한 모든 정보를 알았으니 Shadowsocks-Windows를 열고 새 서버를 등록하면 됩니다. Shadowsocks를 실행하면 트레이에 종이 비행기 아이콘이 생기게 됩니다. 이를 우클릭하고 '서버' 메뉴에서 '서버 수정' 버튼을 통해 설정을 추가하시면 됩니다.

이제 서버 편집기에 저희가 얻은 정보들을 모두 입력하면 됩니다.

  • 서버 IP: ss://로 시작하는 토큰에서 추출.
  • 서버 포트: ss://로 시작하는 토큰에서 추출.
  • 비밀번호: 토큰의 Base64 문자열을 디코딩하여 추출.
  • 암호화 방식: 토큰의 Base64 문자열을 디코딩하여 추출.

이제 확인 시스템 프록시 모드를 활성화하면 정상적으로 프록시 서버에 연결된 것을 확인할 수 있습니다. PAC 모드의 경우에는 '프록시 자동 구성' 스크립트를 사용하여 특정 도메인에만 프록시 연결을 강제하는 것으로 가용 트래픽이나 대역폭이 제한되어 있는 경우 좋은 해결책이 될 수 있습니다.

PAC 파일의 경우에는 Shadowsocks가 설치된 폴더에서 user-rules.txt 파일을 열고 AdblockPlus 문법으로 도메인을 등록하시면 정상적으로 작동하는 것을 확인하실 수 있습니다. 아래와 같이 기본적인 도메인 필터 규칙인 ||domain.tld^ 형식으로 한 줄에 하나씩 추가하시면 됩니다.

파일이 변경되면 자동으로 규칙이 업데이트되는 것을 아래와 같이 확인할 수 있습니다. (혹은 시스템 알림으로 알려줍니다)

끝입니다. 읽어주셔서 감사합니다. 그리고 안전한 인터넷 생활되시길 바랍니다.