Skip to content

Instantly share code, notes, and snippets.

@Wind4
Last active April 10, 2021 12:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Wind4/371af4507f468cd762d4 to your computer and use it in GitHub Desktop.
Save Wind4/371af4507f468cd762d4 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# Author: Wind4 (puxiaping@gmail.com)
#
# Installs a shadowsocks-libev server for CentOS 6/7
set -e
# declare
WORK_DIR=/tmp/shadowsocks-libev
SS_VERSION="v2.5.6"
SS_PORT="1080"
SS_PASS="password"
SS_ENC_METHOD="aes-256-cfb"
# user settings
read -p "Please input branches or tags (${SS_VERSION}): " input
SS_VERSION=${input:-$SS_VERSION}
read -p "Please input listen port (${SS_PORT}): " input
SS_PORT=${input:-$SS_PORT}
read -p "Please input password (${SS_PASS}): " input
SS_PASS=${input:-$SS_PASS}
read -p "Please input encrypt method (${SS_ENC_METHOD}): " input
SS_ENC_METHOD=${input:-$SS_ENC_METHOD}
# switch work dir
mkdir -p ${WORK_DIR}
cd ${WORK_DIR}
# build
yum install make autoconf libtool openssl-devel gcc asciidoc xmlto apg pcre-devel -y
wget --no-check-certificate https://github.com/shadowsocks/shadowsocks-libev/archive/${SS_VERSION}.tar.gz -O shadowsocks-libev.tar.gz || { echo "Download failed"; exit 1; }
tar zxf shadowsocks-libev.tar.gz
cd shadowsocks-libev-*/
./configure
make && make install
# config
cp rpm/SOURCES/etc/init.d/shadowsocks-libev /etc/init.d/shadowsocks-libev
sed -i 's#/usr/bin/ss-server#/usr/local/bin/ss-server#' /etc/init.d/shadowsocks-libev
mkdir -p /etc/shadowsocks-libev
cat > /etc/shadowsocks-libev/config.json << EOF
{
"server": "0.0.0.0",
"server_port": ${SS_PORT},
"password": "${SS_PASS}",
"method": "${SS_ENC_METHOD}",
"timeout": 600
}
EOF
chmod +x /etc/init.d/shadowsocks-libev
chkconfig --add shadowsocks-libev
service shadowsocks-libev start
# clean up
rm -rf ${WORKDIR}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment