데비안/우분투 Shadowsocks 프록시 서버 설치 및 활용하기

category 서버/리눅스 서버 2018.01.05 01:44

안녕하세요.


이번에는 shadowsocks 라는 프록시 프로그램을 설치하여 구동해 보도록 하겠습니다. 


이 프록시를 사용하면 중국의 만리장성도 뚫을 수 있다고 합니다. 


이번에 U5PVR 에 설치해 보면서 성능과 활용성은 어떠한지 한번 살펴 보도록 하겠습니다.







설치 진행하기


root@AOL-Debian:~# apt-get install -t jessie-backports shadowsocks-libev

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  apg libcork16 libcorkipset1 libev4 libmbedcrypto0 libsodium18 libudns0

The following NEW packages will be installed:

  apg libcork16 libcorkipset1 libev4 libmbedcrypto0 libsodium18 libudns0

  shadowsocks-libev

0 upgraded, 8 newly installed, 0 to remove and 87 not upgraded.

Need to get 596 kB of archives.

After this operation, 1,460 kB of additional disk space will be used.

Do you want to continue? [Y/n]


일단 설정파일은 아래에 위치하는데요. 일단 기본설정으로 열어보겠습니다.


root@AOL-Debian:~# nano /etc/shadowsocks-libev/config.json


{

    "server":"0.0.0.0",

    "server_port":8388,

    "local_port":1080,

    "password":"djjproject",

    "timeout":60,

    "method":null

}



다음으로 실행 계정과 그룹을 변경합니다.


root@AOL-Debian:~# nano /etc/default/shadowsocks-libev


# Defaults for shadowsocks initscript

# sourced by /etc/init.d/shadowsocks-libev

# installed at /etc/default/shadowsocks-libev by the maintainer scripts


#

# This is a POSIX shell fragment

#

# Note: `START', `GROUP' and `MAXFD' options are not recognized by systemd.

# Please change those settings in the corresponding systemd unit file.


# Enable during startup?

START=yes


# Configuration file

CONFFILE="/etc/shadowsocks-libev/config.json"


# Extra command line arguments

DAEMON_ARGS="-u"


# User and group to run the server as

USER=root

GROUP=root


# Number of maximum file descriptors

MAXFD=32768






초기실행


root@AOL-Debian:~# service shadowsocks-libev stop

root@AOL-Debian:~# service shadowsocks-libev start


root@AOL-Debian:~# netstat -nlp | grep 8388

tcp        0      0 0.0.0.0:8388            0.0.0.0:*               LISTEN      10905/ss-server

udp        0      0 0.0.0.0:8388            0.0.0.0:*                           10905/ss-server


고로 포트포워딩은 TCP UDP 8388 을 열어주시면 되겠습니다.





안드로이드 클라이언트


제가 미리 사용을 해 보니 method 값을 NULL 로 지정하면 안되네요. 값을 하나 지정해야겠습니다.


root@AOL-Debian:~# nano /etc/shadowsocks-libev/config.json


{

    "server":"0.0.0.0",

    "server_port":8388,

    "local_port":1080,

    "password":"djjproject",

    "timeout":60,

    "method":"rc4-md5",


}



포트는 마음껏 변경하시길 바랍니다.


실제로 aes 를 사용해 보려고 했는데 로그에 아래와 같이 찍혀서 일단 사용을 보류하고 있습니다.


Jan  5 01:11:46 localhost /usr/bin/ss-server[15805]: Invalid cipher name: aes-256-gcm, use rc4-md5 instead

Jan  5 01:11:46 localhost /usr/bin/ss-server[15805]: using nameserver: 8.8.8.8

Jan  5 01:11:46 localhost /usr/bin/ss-server[15805]: tcp port reuse enabled

Jan  5 01:11:46 localhost /usr/bin/ss-server[15805]: tcp server listening at 0.0.0.0:8388

Jan  5 01:11:46 localhost /usr/bin/ss-server[15805]: udp port reuse enabled

Jan  5 01:11:46 localhost /usr/bin/ss-server[15805]: udp server listening at 0.0.0.0:8388

Jan  5 01:11:46 localhost /usr/bin/ss-server[15805]: running from root user

Jan  5 01:11:59 localhost /usr/bin/ss-server[15805]: failed to handshake with 110.70.55.236


아무래도 소스를 직접 컴파일 하면 해결이 될듯 합니다만, 일단 이 가이드에서는 설명하지 않도록 하겠습니다.

(컴파일 하기가 참.. 귀찮네요..)


서버 정보를 입력합니다.



상기에 설정한 대로 RC4-MD5 를 선택합니다.




종이비행기 모양을 누르면 연결이 진행되고 목록을 눌러 주시면 해당 프록시로 접속이 됩니다.



그 후 속도 비교를 해 보겠습니다. 아래는 본래 속도입니다.



다음은 shadowsocks 프록시에 연결 후 측정한 사진입니다. 쓸만하게 나오네요.



TCP 설정 최적화나 다른것을 설정하면 더 나올것 같기는 한데요. 


CPU 자원이 부족한것도 아닙니다. 체크를 해 보니 ss-server 가 20퍼센트 정도 사용을 하고 있습니다.


다른 사이트에 나와있는 최적화로 설정한 결과 소폭 증가한것 같기는 하네요.



흠.. CPU 자원이 남는데 정확하게 이걸 어떻게 최적화 해야할지는 모르겠네요 ㅠㅠ 



다음에는 X86에 올려서 테스트를 해봐야겠습니다.


궁금해서 i5-4350u 시스템에 테스트를 했는데요. 잘 나오네요.. 이게 CPU의 파워 차이인듯 합니다.



여기서 가이드 마치도록 하겠습니다.


감사합니다.







댓글을 달아 주세요