Shadowsocks Server
Установка Shadowsocks Server на Centos 7.
Al-Sher
Всем привет. Давно ничего не писал, но тут появился новый "подопытный" от Inferno Solutions и я решился на новую запись ;) Сегодня я попробую рассказать про установку Shadowsocks на Centos 7. Устанавливать будем различные версии, поэтому, надеюсь, каждый сможет найти что-то нужное для себя.
Shadowsocks? Что это?
Начну с описания о том, что же такое Shadowsocks. По сути это обычный прокси сервер, с открытым исходным кодом от Китайских "друзей". Но в его отличия можно вписать шифрование трафика от клиента до сервера shadowsocks, то есть мы скрываем передаваемую информацию от провайдера почти так же, как при использовании VPN. Создан, кстати, Shadowsocks в 2012 году и с тех пор получил множество реализаций на различных языках программирования. Но с тех пор данный проект так и не получил возможности создания нескольких пользователей, как, например, было реализовано в 3proxy или в OpenVPN.
Установка Shadowsocks. Python.
Тут всё просто - устанавливаем Python и качаем библиотеку shadowsocks. К сожалению в официальном репозитории Shadowsocks пропал код для Python, но в pip он остался. Устанавливаем:
yum install -y python python-pip
Обновим pip:
pip install --upgrade pip
И установим shadowsocks:
pip install shadowsocks
Запускаем наш сервер:
ssserver -p 443 -k pass -m rc4-md5
Где флаг p указывает порт(в данном случае 443), флаг k указывает пароль(в данном случае pass), флаг m указывает метод шифрования трафика(в данном случае rc4-md5). Чем длинее пароль, тем лучше ;) Если вы хотите запустить shadowsocks в фоне, то необходимо воспользоваться данной командой:
ssserver -p 443 -k pass -m rc4-md5 --user nobody -d start
Тут добавился флаг d, указывающий на запуск и флаг user, указывающий на пользователя, от имени которого мы запускаем shadowsocks. Для остановки shadowsocks необходимо воспользоваться командой:
ssserver -d stop
Посмотреть логи можно по следующему пути: /var/log/shadowsocks.log.
Установка Shadowsocks. Си.
Для установки ShadowSocks, написанного на Си, можно воспользоваться репозиторием Fedora:
wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo
yum update
yum install shadowsocks-libev
И запускаем:
ss-server -p 443 -k pass -m rc4-md5
Впринципе команды все действуют точно так же, как и при работе с версией для Python. На случай, если вы решите собрать shadowsocks сами, необходимо выполнить следующие команды:
yum install gettext gcc autoconf libtool automake make asciidoc xmlto c-ares-devel libev-devel pcre-devel mbedtls-devel libsodium-devel
git clone https://github.com/shadowsocks/shadowsocks-libev.git --recursive
cd shadowsocks-libev
./autogen.sh
./configure
make
make install
А теперь по порядку. Сначала мы устанавливаем необходимые нам приложения для сборки. Далее клонируем с github'a shadowsocks-libev, заходим в папку с ним и запускаем скрипт autogen.sh. Ну и под конец собираем наш код. Если хотите установить его в /usr/local(например), то необходимо
./configure
Заменить на
./configure --prefix=/usr/local
Установка Shadowsocks. Golang.
Для Golang мы так же устанавливаем ShadowSocks простой командой:
go get github.com/shadowsocks/shadowsocks-go/cmd/shadowsocks-server
И запускаем:
shadowsocks-server -p 443 -k pass -m rc4-md5
Тут всё те же правила действуют. Вроде всё очень просто
Конфигурация Shadowsocks.
Напоследок я хотел бы привести пример конфигурации для Shadowsocks:
{
"server":"0.0.0.0",
"server_port":443,
"password":"pass",
"timeout":600,
"method":"rc4-md5"
}
Итак, тут мы указываем какой ip должен слушать shadowsocks, какой порт использовать на сервере, пароль, таймаут и метод шифрования. Запустить ShadowSocks с данным конфигом, на примере версии на golang, можно воспользовавшись следующей командой:
shadowsocks-server -c shadowsocks-config
Где shadowsocks-config путь до нашего конфига. На этом я заканчиваю данную небольшую статью, надеюсь ни у кого проблем не возникнет.