diff --git a/shadowsocks-libev-debian.sh b/shadowsocks-libev-debian.sh index c8bd009..dc0f308 100644 --- a/shadowsocks-libev-debian.sh +++ b/shadowsocks-libev-debian.sh @@ -9,29 +9,60 @@ export PATH # Intro: https://teddysun.com/358.html # #===================================================================# -clear -echo -echo "#############################################################" -echo "# Install Shadowsocks-libev server for Debian or Ubuntu #" -echo "# Intro: https://teddysun.com/358.html #" -echo "# Author: Teddysun #" -echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #" -echo "#############################################################" -echo - -#Current folder +# Current folder cur_dir=`pwd` -shadowsocks_libev_ver="shadowsocks-libev-2.5.2" # Make sure only root can run our script rootness(){ -if [[ $EUID -ne 0 ]]; then - echo "Error:This script must be run as root!" 1>&2 - exit 1 + if [[ $EUID -ne 0 ]]; then + echo "Error: This script must be run as root!" 1>&2 + exit 1 + fi +} + +# Disable selinux +disable_selinux(){ +if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then + sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config + setenforce 0 fi } -#Check system +get_ip(){ + local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 ) + [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com ) + [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip ) + [ ! -z ${IP} ] && echo ${IP} || echo +} + +get_latest_version(){ + ver=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-libev/releases/latest | grep 'tag_name' | cut -d\" -f4) + [ -z ${ver} ] && echo "Error: Get shadowsocks-libev latest version failed" && exit 1 + shadowsocks_libev_ver="shadowsocks-libev-$(echo ${ver} | sed -e 's/^[a-zA-Z]//g')" + download_link="https://github.com/shadowsocks/shadowsocks-libev/archive/${ver}.tar.gz" + init_script_link="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian" +} + +check_installed(){ + if [ "$(command -v "$1")" ]; then + return 0 + else + return 1 + fi +} + +print_info(){ + clear + echo "#############################################################" + echo "# Install Shadowsocks-libev server for Debian or Ubuntu #" + echo "# Intro: https://teddysun.com/358.html #" + echo "# Author: Teddysun #" + echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #" + echo "#############################################################" + echo +} + +# Check system check_sys(){ local checkType=$1 local value=$2 @@ -77,110 +108,102 @@ check_sys(){ fi } -# Disable selinux -disable_selinux(){ -if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then - sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config - setenforce 0 -fi -} - -get_ip(){ - local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 ) - [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com ) - [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip ) - [ ! -z ${IP} ] && echo ${IP} || echo -} - # Pre-installation settings pre_install(){ # Check OS system - if check_sys packageManager apt; then - #Set shadowsocks-libev config password - echo "Please input password for shadowsocks-libev:" - read -p "(Default password: teddysun.com):" shadowsockspwd - [ -z "$shadowsockspwd" ] && shadowsockspwd="teddysun.com" - echo - echo "---------------------------" - echo "password = $shadowsockspwd" - echo "---------------------------" - echo - #Set shadowsocks-libev config port - while true - do - echo -e "Please input port for shadowsocks-libev [1-65535]:" - read -p "(Default port: 8989):" shadowsocksport - [ -z "$shadowsocksport" ] && shadowsocksport="8989" - expr ${shadowsocksport} + 0 &>/dev/null - if [ $? -eq 0 ]; then - if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ]; then - echo - echo "---------------------------" - echo "port = ${shadowsocksport}" - echo "---------------------------" - echo - break - else - echo "Input error! Please input correct numbers." - fi - else - echo "Input error! Please input correct numbers." - fi - done - get_char(){ - SAVEDSTTY=`stty -g` - stty -echo - stty cbreak - dd if=/dev/tty bs=1 count=1 2> /dev/null - stty -raw - stty echo - stty $SAVEDSTTY - } - echo - echo "Press any key to start...or Press Ctrl+C to cancel" - char=`get_char` - # Update System - apt-get -y update - # Install necessary dependencies - apt-get -y --no-install-recommends install wget unzip curl build-essential autoconf libtool openssl libssl-dev zlib1g-dev xmlto asciidoc libpcre3 libpcre3-dev - # Get IP address - echo "Getting Public IP address, Please wait a moment..." - echo -e "Your main public IP is\t\033[32m $(get_ip) \033[0m" - echo - else + if ! check_sys packageManager apt; then echo "Error: Your OS is not supported to run it! Please change OS to Debian/Ubuntu and try again." exit 1 fi + + # Check installed + check_installed "ss-server" + if [ $? -eq 0 ]; then + echo "Shadowsocks-libev has been installed, nothing to do..." + exit 0 + fi + + print_info + + # Get shadowsocks-libev latest version + get_latest_version + echo "Get the latest version: ${shadowsocks_libev_ver}" + echo + + #Set shadowsocks-libev config password + echo "Please input password for shadowsocks-libev:" + read -p "(Default password: teddysun.com):" shadowsockspwd + [ -z "${shadowsockspwd}" ] && shadowsockspwd="teddysun.com" + echo + echo "---------------------------" + echo "password = ${shadowsockspwd}" + echo "---------------------------" + echo + + #Set shadowsocks-libev config port + while true + do + echo -e "Please input port for shadowsocks-libev [1-65535]:" + read -p "(Default port: 8989):" shadowsocksport + [ -z "$shadowsocksport" ] && shadowsocksport="8989" + expr ${shadowsocksport} + 0 &>/dev/null + if [ $? -eq 0 ]; then + if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ]; then + echo + echo "---------------------------" + echo "port = ${shadowsocksport}" + echo "---------------------------" + echo + break + else + echo "Input error, please input correct number" + fi + else + echo "Input error, please input correct numbers" + fi + done + get_char(){ + SAVEDSTTY=`stty -g` + stty -echo + stty cbreak + dd if=/dev/tty bs=1 count=1 2> /dev/null + stty -raw + stty echo + stty $SAVEDSTTY + } + echo + echo "Press any key to start...or press Ctrl+C to cancel" + char=`get_char` + # Update System + apt-get -y update + # Install necessary dependencies + apt-get -y --no-install-recommends install curl build-essential autoconf libtool openssl libssl-dev zlib1g-dev xmlto asciidoc libpcre3 libpcre3-dev + echo + cd ${cur_dir} } # Download latest shadowsocks-libev download_files(){ - if [ -f ${shadowsocks_libev_ver}.zip ];then - echo "${shadowsocks_libev_ver}.zip [found]" + if [ -f ${shadowsocks_libev_ver}.tar.gz ]; then + echo "${shadowsocks_libev_ver}.tar.gz [found]" else - if ! wget --no-check-certificate https://github.com/shadowsocks/shadowsocks-libev/archive/v2.5.2.zip -O ${shadowsocks_libev_ver}.zip; then - echo "Failed to download ${shadowsocks_libev_ver}.zip" + if ! wget --no-check-certificate -O ${shadowsocks_libev_ver}.tar.gz ${download_link}; then + echo "Failed to download ${shadowsocks_libev_ver}.tar.gz" exit 1 fi fi - unzip -q ${shadowsocks_libev_ver}.zip - if [ $? -eq 0 ];then - cd ${cur_dir}/${shadowsocks_libev_ver}/ - if ! wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian; then - echo "Failed to download shadowsocks-libev start script!" - exit 1 - fi - else - echo - echo "Unzip ${shadowsocks_libev_ver}.zip failed! Please visit https://teddysun.com/358.html and contact." + + # Download init script + if ! wget --no-check-certificate -O /etc/init.d/shadowsocks ${init_script_link}; then + echo "Failed to download shadowsocks-libev init script!" exit 1 fi } # Config shadowsocks config_shadowsocks(){ - if [ ! -d /etc/shadowsocks-libev ];then - mkdir /etc/shadowsocks-libev + if [ ! -d /etc/shadowsocks-libev ]; then + mkdir -p /etc/shadowsocks-libev fi cat > /etc/shadowsocks-libev/config.json<<-EOF { @@ -195,42 +218,34 @@ config_shadowsocks(){ EOF } -# Install -install_libev(){ - # Build and Install shadowsocks-libev - if [ -s /usr/local/bin/ss-server ];then - echo "shadowsocks-libev has been installed!" - exit 0 - else - ./configure - make && make install +# Install Shadowsocks-libev +install_shadowsocks(){ + tar zxf ${shadowsocks_libev_ver}.tar.gz + cd ${shadowsocks_libev_ver} + ./configure + make && make install + if [ $? -eq 0 ]; then + chmod +x /etc/init.d/shadowsocks + update-rc.d -f shadowsocks defaults + # Run shadowsocks in the background + /etc/init.d/shadowsocks start if [ $? -eq 0 ]; then - # Add run on system start up - mv ${cur_dir}/${shadowsocks_libev_ver}/shadowsocks-libev-debian /etc/init.d/shadowsocks - chmod +x /etc/init.d/shadowsocks - update-rc.d -f shadowsocks defaults - # Run shadowsocks in the background - /etc/init.d/shadowsocks start - # Run success or not - if [ $? -eq 0 ]; then - echo "Shadowsocks-libev start success!" - else - echo "Shadowsocks-libev start failure!" - fi + echo "Shadowsocks-libev start success!" else - echo - echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/358.html and contact." - exit 1 + echo "Shadowsocks-libev start failure!" fi + else + echo + echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/358.html and contact." + exit 1 fi + cd ${cur_dir} - # Delete shadowsocks-libev folder - rm -rf ${cur_dir}/${shadowsocks_libev_ver}/ - # Delete shadowsocks-libev zip file - rm -f ${cur_dir}/${shadowsocks_libev_ver}.zip + rm -rf ${shadowsocks_libev_ver} ${shadowsocks_libev_ver}.tar.gz + clear echo - echo "Congratulations, shadowsocks-libev install completed!" + echo "Congratulations, Shadowsocks-libev install completed!" echo -e "Your Server IP: \033[41;37m $(get_ip) \033[0m" echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m" echo -e "Your Password: \033[41;37m ${shadowsockspwd} \033[0m" @@ -241,7 +256,6 @@ install_libev(){ echo "Welcome to visit:https://teddysun.com/358.html" echo "Enjoy it!" echo - exit 0 } # Install Shadowsocks-libev @@ -251,27 +265,26 @@ install_shadowsocks_libev(){ pre_install download_files config_shadowsocks - install_libev + install_shadowsocks } # Uninstall Shadowsocks-libev uninstall_shadowsocks_libev(){ - printf "Are you sure uninstall Shadowsocks-libev? (y/n) " + clear + print_info + printf "Are you sure uninstall Shadowsocks-libev? (y/n)" printf "\n" read -p "(Default: n):" answer - if [ -z $answer ]; then - answer="n" - fi - if [ "$answer" = "y" ]; then - ps -ef | grep -v grep | grep -v ps | grep -i "ss-server" > /dev/null 2>&1 + [ -z ${answer} ] && answer="n" + + if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then + ps -ef | grep -v grep | grep -i "ss-server" > /dev/null 2>&1 if [ $? -eq 0 ]; then /etc/init.d/shadowsocks stop fi - # remove auto start script update-rc.d -f shadowsocks remove - # delete config file - rm -rf /etc/shadowsocks-libev - # delete shadowsocks + + rm -fr /etc/shadowsocks-libev rm -f /usr/local/bin/ss-local rm -f /usr/local/bin/ss-tunnel rm -f /usr/local/bin/ss-server @@ -293,7 +306,9 @@ uninstall_shadowsocks_libev(){ rm -f /etc/init.d/shadowsocks echo "Shadowsocks-libev uninstall success!" else - echo "uninstall cancelled, Nothing to do" + echo + echo "uninstall cancelled, nothing to do..." + echo fi } @@ -301,14 +316,14 @@ uninstall_shadowsocks_libev(){ action=$1 [ -z $1 ] && action=install case "$action" in -install) + install) install_shadowsocks_libev ;; -uninstall) + uninstall) uninstall_shadowsocks_libev ;; -*) - echo "Arguments error! [${action} ]" + *) + echo "Arguments error! [${action}]" echo "Usage: `basename $0` {install|uninstall}" ;; esac diff --git a/shadowsocks-libev.sh b/shadowsocks-libev.sh index 17d4f8b..4563534 100644 --- a/shadowsocks-libev.sh +++ b/shadowsocks-libev.sh @@ -9,28 +9,60 @@ export PATH # Intro: https://teddysun.com/357.html # #===================================================================# -clear -echo "#############################################################" -echo "# Install Shadowsocks-libev server for CentOS 6 or 7 #" -echo "# Intro: https://teddysun.com/357.html #" -echo "# Author: Teddysun #" -echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #" -echo "#############################################################" -echo - -#Current folder +# Current folder cur_dir=`pwd` -shadowsocks_libev_ver="shadowsocks-libev-2.5.2" # Make sure only root can run our script rootness(){ -if [[ $EUID -ne 0 ]]; then - echo "Error:This script must be run as root!" 1>&2 - exit 1 + if [[ $EUID -ne 0 ]]; then + echo "Error: This script must be run as root!" 1>&2 + exit 1 + fi +} + +# Disable selinux +disable_selinux(){ +if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then + sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config + setenforce 0 fi } -#Check system +get_ip(){ + local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 ) + [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com ) + [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip ) + [ ! -z ${IP} ] && echo ${IP} || echo +} + +get_latest_version(){ + ver=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-libev/releases/latest | grep 'tag_name' | cut -d\" -f4) + [ -z ${ver} ] && echo "Error: Get shadowsocks-libev latest version failed" && exit 1 + shadowsocks_libev_ver="shadowsocks-libev-$(echo ${ver} | sed -e 's/^[a-zA-Z]//g')" + download_link="https://github.com/shadowsocks/shadowsocks-libev/archive/${ver}.tar.gz" + init_script_link="https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev" +} + +check_installed(){ + if [ "$(command -v "$1")" ]; then + return 0 + else + return 1 + fi +} + +print_info(){ + clear + echo "#############################################################" + echo "# Install Shadowsocks-libev server for CentOS 6 or 7 #" + echo "# Intro: https://teddysun.com/357.html #" + echo "# Author: Teddysun #" + echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #" + echo "#############################################################" + echo +} + +# Check system check_sys(){ local checkType=$1 local value=$2 @@ -78,7 +110,7 @@ check_sys(){ # Get version getversion(){ - if [[ -s /etc/redhat-release ]];then + if [[ -s /etc/redhat-release ]]; then grep -oE "[0-9.]+" /etc/redhat-release else grep -oE "[0-9.]+" /etc/issue @@ -91,7 +123,7 @@ centosversion(){ local code=$1 local version="$(getversion)" local main_ver=${version%%.*} - if [ "$main_ver" == "$code" ];then + if [ "$main_ver" == "$code" ]; then return 0 else return 1 @@ -101,21 +133,6 @@ centosversion(){ fi } -# Disable selinux -disable_selinux(){ -if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then - sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config - setenforce 0 -fi -} - -get_ip(){ - local IP=$( ip addr | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | egrep -v "^192\.168|^172\.1[6-9]\.|^172\.2[0-9]\.|^172\.3[0-2]\.|^10\.|^127\.|^255\.|^0\." | head -n 1 ) - [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipv4.icanhazip.com ) - [ -z ${IP} ] && IP=$( wget -qO- -t1 -T2 ipinfo.io/ip ) - [ ! -z ${IP} ] && echo ${IP} || echo -} - # Pre-installation settings pre_install(){ # Check OS system @@ -126,38 +143,54 @@ pre_install(){ exit 1 fi else - echo "Error: Your OS is not supported to run it! Please change OS to CentOS and try again." + echo "Error: Your OS is not supported to run it, please change OS to CentOS and try again." exit 1 fi - #Set shadowsocks-libev config password - echo "Please input password for shadowsocks-libev:" + + # Check installed + check_installed "ss-server" + if [ $? -eq 0 ]; then + echo "Shadowsocks-libev has been installed, nothing to do..." + exit 0 + fi + + print_info + + # Get shadowsocks-libev latest version + get_latest_version + echo "Get the latest version: ${shadowsocks_libev_ver}" + echo + + # Set shadowsocks-libev config password + echo "Please input password for shadowsocks-libev" read -p "(Default password: teddysun.com):" shadowsockspwd - [ -z "$shadowsockspwd" ] && shadowsockspwd="teddysun.com" + [ -z "${shadowsockspwd}" ] && shadowsockspwd="teddysun.com" echo echo "---------------------------" - echo "password = $shadowsockspwd" + echo "password = ${shadowsockspwd}" echo "---------------------------" echo - #Set shadowsocks-libev config port + + # Set shadowsocks-libev config port while true do - echo -e "Please input port for shadowsocks-libev [1-65535]:" + echo -e "Please input port for shadowsocks-libev [1-65535]" read -p "(Default port: 8989):" shadowsocksport [ -z "$shadowsocksport" ] && shadowsocksport="8989" - expr $shadowsocksport + 0 &>/dev/null + expr ${shadowsocksport} + 0 &>/dev/null if [ $? -eq 0 ]; then - if [ $shadowsocksport -ge 1 ] && [ $shadowsocksport -le 65535 ]; then + if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ]; then echo echo "---------------------------" - echo "port = $shadowsocksport" + echo "port = ${shadowsocksport}" echo "---------------------------" echo break else - echo "Input error! Please input correct numbers." + echo "Input error, please input correct number" fi else - echo "Input error! Please input correct numbers." + echo "Input error, please input correct number" fi done get_char(){ @@ -170,47 +203,36 @@ pre_install(){ stty $SAVEDSTTY } echo - echo "Press any key to start...or Press Ctrl+C to cancel" + echo "Press any key to start...or press Ctrl+C to cancel" char=`get_char` #Install necessary dependencies - yum install -y wget unzip openssl-devel gcc swig python python-devel python-setuptools - yum install -y autoconf libtool libevent xmlto asciidoc pcre pcre-devel make curl curl-devel - yum install -y automake zlib-devel openssl-devel perl perl-devel cpio expat-devel gettext-devel - # Get IP address - echo "Getting Public IP address, Please wait a moment..." - echo -e "Your main public IP is\t\033[32m $(get_ip) \033[0m" + yum install -y unzip autoconf automake make zlib-devel curl curl-devel libtool libevent xmlto asciidoc pcre pcre-devel openssl-devel gcc perl perl-devel cpio expat-devel gettext-devel echo + cd ${cur_dir} } # Download latest shadowsocks-libev download_files(){ - if [ -f ${shadowsocks_libev_ver}.zip ];then - echo "${shadowsocks_libev_ver}.zip [found]" + if [ -f ${shadowsocks_libev_ver}.tar.gz ]; then + echo "${shadowsocks_libev_ver}.tar.gz [found]" else - if ! wget --no-check-certificate https://github.com/shadowsocks/shadowsocks-libev/archive/v2.5.2.zip -O ${shadowsocks_libev_ver}.zip; then - echo "Failed to download ${shadowsocks_libev_ver}.zip" + if ! wget --no-check-certificate -O ${shadowsocks_libev_ver}.tar.gz ${download_link}; then + echo "Failed to download ${shadowsocks_libev_ver}.tar.gz" exit 1 fi fi - unzip -q ${shadowsocks_libev_ver}.zip - if [ $? -eq 0 ];then - cd ${cur_dir}/${shadowsocks_libev_ver}/ - else - echo - echo "Unzip ${shadowsocks_libev_ver}.zip failed! Please visit https://teddysun.com/357.html and contact." - exit 1 - fi - # Download start script - if ! wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev; then - echo "Failed to download shadowsocks-libev start script!" + + # Download init script + if ! wget --no-check-certificate -O /etc/init.d/shadowsocks ${init_script_link}; then + echo "Failed to download shadowsocks-libev init script!" exit 1 fi } # Config shadowsocks config_shadowsocks(){ - if [ ! -d /etc/shadowsocks-libev ];then - mkdir /etc/shadowsocks-libev + if [ ! -d /etc/shadowsocks-libev ]; then + mkdir -p /etc/shadowsocks-libev fi cat > /etc/shadowsocks-libev/config.json<<-EOF { @@ -225,7 +247,7 @@ config_shadowsocks(){ EOF } -# firewall set +# Firewall set firewall_set(){ echo "firewall set start..." if centosversion 6; then @@ -245,14 +267,14 @@ firewall_set(){ fi elif centosversion 7; then systemctl status firewalld > /dev/null 2>&1 - if [ $? -eq 0 ];then + if [ $? -eq 0 ]; then firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/tcp firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp firewall-cmd --reload else echo "Firewalld looks like not running, try to start..." systemctl start firewalld - if [ $? -eq 0 ];then + if [ $? -eq 0 ]; then firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/tcp firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp firewall-cmd --reload @@ -264,42 +286,36 @@ firewall_set(){ echo "firewall set completed..." } -# Install -install(){ - # Build and Install shadowsocks-libev - if [ -s /usr/local/bin/ss-server ];then - echo "shadowsocks-libev has been installed!" - exit 0 - else - ./configure - make && make install +# Install Shadowsocks-libev +install_shadowsocks(){ + tar zxf ${shadowsocks_libev_ver}.tar.gz + cd ${shadowsocks_libev_ver} + ./configure + make && make install + if [ $? -eq 0 ]; then + chmod +x /etc/init.d/shadowsocks + # Add run on system start up + chkconfig --add shadowsocks + chkconfig shadowsocks on + # Start shadowsocks + /etc/init.d/shadowsocks start if [ $? -eq 0 ]; then - mv ${cur_dir}/${shadowsocks_libev_ver}/shadowsocks-libev /etc/init.d/shadowsocks - chmod +x /etc/init.d/shadowsocks - # Add run on system start up - chkconfig --add shadowsocks - chkconfig shadowsocks on - # Start shadowsocks - /etc/init.d/shadowsocks start - if [ $? -eq 0 ]; then - echo "Shadowsocks-libev start success!" - else - echo "Shadowsocks-libev start failure!" - fi + echo "Shadowsocks-libev start success!" else - echo - echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/357.html and contact." - exit 1 + echo "Shadowsocks-libev start failure!" fi + else + echo + echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/357.html and contact." + exit 1 fi + cd ${cur_dir} - # Delete shadowsocks-libev folder - rm -rf ${cur_dir}/${shadowsocks_libev_ver}/ - # Delete shadowsocks-libev zip file - rm -f ${cur_dir}/${shadowsocks_libev_ver}.zip + rm -rf ${shadowsocks_libev_ver} ${shadowsocks_libev_ver}.tar.gz + clear echo - echo "Congratulations, shadowsocks-libev install completed!" + echo "Congratulations, Shadowsocks-libev install completed!" echo -e "Your Server IP: \033[41;37m $(get_ip) \033[0m" echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m" echo -e "Your Password: \033[41;37m ${shadowsockspwd} \033[0m" @@ -310,26 +326,23 @@ install(){ echo "Welcome to visit:https://teddysun.com/357.html" echo "Enjoy it!" echo - exit 0 } # Uninstall Shadowsocks-libev uninstall_shadowsocks_libev(){ - printf "Are you sure uninstall shadowsocks_libev? (y/n) " + print_info + printf "Are you sure uninstall shadowsocks-libev? (y/n)" printf "\n" read -p "(Default: n):" answer - if [ -z $answer ]; then - answer="n" - fi - if [ "$answer" = "y" ]; then - ps -ef | grep -v grep | grep -v ps | grep -i "ss-server" > /dev/null 2>&1 + [ -z ${answer} ] && answer="n" + + if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then + ps -ef | grep -v grep | grep -i "ss-server" > /dev/null 2>&1 if [ $? -eq 0 ]; then /etc/init.d/shadowsocks stop fi chkconfig --del shadowsocks - # delete config file - rm -rf /etc/shadowsocks-libev - # delete shadowsocks + rm -fr /etc/shadowsocks-libev rm -f /usr/local/bin/ss-local rm -f /usr/local/bin/ss-tunnel rm -f /usr/local/bin/ss-server @@ -351,7 +364,9 @@ uninstall_shadowsocks_libev(){ rm -f /etc/init.d/shadowsocks echo "Shadowsocks-libev uninstall success!" else - echo "uninstall cancelled, Nothing to do" + echo + echo "uninstall cancelled, nothing to do..." + echo fi } @@ -363,21 +378,21 @@ install_shadowsocks_libev(){ download_files config_shadowsocks firewall_set - install + install_shadowsocks } # Initialization step action=$1 [ -z $1 ] && action=install case "$action" in -install) + install) install_shadowsocks_libev ;; -uninstall) + uninstall) uninstall_shadowsocks_libev ;; -*) - echo "Arguments error! [${action} ]" + *) + echo "Arguments error! [${action}]" echo "Usage: `basename $0` {install|uninstall}" ;; esac