Code refactoring

This commit is contained in:
Teddysun 2016-09-17 16:30:39 +09:00
parent 845357f546
commit 00979d4afb
2 changed files with 292 additions and 262 deletions

View File

@ -9,29 +9,60 @@ export PATH
# Intro: https://teddysun.com/358.html # # Intro: https://teddysun.com/358.html #
#===================================================================# #===================================================================#
clear # Current folder
echo
echo "#############################################################"
echo "# Install Shadowsocks-libev server for Debian or Ubuntu #"
echo "# Intro: https://teddysun.com/358.html #"
echo "# Author: Teddysun <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
#Current folder
cur_dir=`pwd` cur_dir=`pwd`
shadowsocks_libev_ver="shadowsocks-libev-2.5.2"
# Make sure only root can run our script # Make sure only root can run our script
rootness(){ rootness(){
if [[ $EUID -ne 0 ]]; then if [[ $EUID -ne 0 ]]; then
echo "Error:This script must be run as root!" 1>&2 echo "Error: This script must be run as root!" 1>&2
exit 1 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 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 <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
}
# Check system
check_sys(){ check_sys(){
local checkType=$1 local checkType=$1
local value=$2 local value=$2
@ -77,34 +108,38 @@ check_sys(){
fi 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-installation settings
pre_install(){ pre_install(){
# Check OS system # Check OS system
if check_sys packageManager apt; then 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 #Set shadowsocks-libev config password
echo "Please input password for shadowsocks-libev:" echo "Please input password for shadowsocks-libev:"
read -p "(Default password: teddysun.com):" shadowsockspwd read -p "(Default password: teddysun.com):" shadowsockspwd
[ -z "$shadowsockspwd" ] && shadowsockspwd="teddysun.com" [ -z "${shadowsockspwd}" ] && shadowsockspwd="teddysun.com"
echo echo
echo "---------------------------" echo "---------------------------"
echo "password = $shadowsockspwd" echo "password = ${shadowsockspwd}"
echo "---------------------------" echo "---------------------------"
echo echo
#Set shadowsocks-libev config port #Set shadowsocks-libev config port
while true while true
do do
@ -121,10 +156,10 @@ pre_install(){
echo echo
break break
else else
echo "Input error! Please input correct numbers." echo "Input error, please input correct number"
fi fi
else else
echo "Input error! Please input correct numbers." echo "Input error, please input correct numbers"
fi fi
done done
get_char(){ get_char(){
@ -137,50 +172,38 @@ pre_install(){
stty $SAVEDSTTY stty $SAVEDSTTY
} }
echo 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` char=`get_char`
# Update System # Update System
apt-get -y update apt-get -y update
# Install necessary dependencies # 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 apt-get -y --no-install-recommends install 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 echo
else cd ${cur_dir}
echo "Error: Your OS is not supported to run it! Please change OS to Debian/Ubuntu and try again."
exit 1
fi
} }
# Download latest shadowsocks-libev # Download latest shadowsocks-libev
download_files(){ download_files(){
if [ -f ${shadowsocks_libev_ver}.zip ];then if [ -f ${shadowsocks_libev_ver}.tar.gz ]; then
echo "${shadowsocks_libev_ver}.zip [found]" echo "${shadowsocks_libev_ver}.tar.gz [found]"
else else
if ! wget --no-check-certificate https://github.com/shadowsocks/shadowsocks-libev/archive/v2.5.2.zip -O ${shadowsocks_libev_ver}.zip; then if ! wget --no-check-certificate -O ${shadowsocks_libev_ver}.tar.gz ${download_link}; then
echo "Failed to download ${shadowsocks_libev_ver}.zip" echo "Failed to download ${shadowsocks_libev_ver}.tar.gz"
exit 1 exit 1
fi fi
fi fi
unzip -q ${shadowsocks_libev_ver}.zip
if [ $? -eq 0 ];then # Download init script
cd ${cur_dir}/${shadowsocks_libev_ver}/ if ! wget --no-check-certificate -O /etc/init.d/shadowsocks ${init_script_link}; then
if ! wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian; then echo "Failed to download shadowsocks-libev init script!"
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."
exit 1 exit 1
fi fi
} }
# Config shadowsocks # Config shadowsocks
config_shadowsocks(){ config_shadowsocks(){
if [ ! -d /etc/shadowsocks-libev ];then if [ ! -d /etc/shadowsocks-libev ]; then
mkdir /etc/shadowsocks-libev mkdir -p /etc/shadowsocks-libev
fi fi
cat > /etc/shadowsocks-libev/config.json<<-EOF cat > /etc/shadowsocks-libev/config.json<<-EOF
{ {
@ -195,23 +218,17 @@ config_shadowsocks(){
EOF EOF
} }
# Install # Install Shadowsocks-libev
install_libev(){ install_shadowsocks(){
# Build and Install shadowsocks-libev tar zxf ${shadowsocks_libev_ver}.tar.gz
if [ -s /usr/local/bin/ss-server ];then cd ${shadowsocks_libev_ver}
echo "shadowsocks-libev has been installed!"
exit 0
else
./configure ./configure
make && make install make && make install
if [ $? -eq 0 ]; then 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 chmod +x /etc/init.d/shadowsocks
update-rc.d -f shadowsocks defaults update-rc.d -f shadowsocks defaults
# Run shadowsocks in the background # Run shadowsocks in the background
/etc/init.d/shadowsocks start /etc/init.d/shadowsocks start
# Run success or not
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Shadowsocks-libev start success!" echo "Shadowsocks-libev start success!"
else else
@ -222,15 +239,13 @@ install_libev(){
echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/358.html and contact." echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/358.html and contact."
exit 1 exit 1
fi fi
fi
cd ${cur_dir} cd ${cur_dir}
# Delete shadowsocks-libev folder rm -rf ${shadowsocks_libev_ver} ${shadowsocks_libev_ver}.tar.gz
rm -rf ${cur_dir}/${shadowsocks_libev_ver}/
# Delete shadowsocks-libev zip file
rm -f ${cur_dir}/${shadowsocks_libev_ver}.zip
clear clear
echo 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 IP: \033[41;37m $(get_ip) \033[0m"
echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m" echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m"
echo -e "Your Password: \033[41;37m ${shadowsockspwd} \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 "Welcome to visit:https://teddysun.com/358.html"
echo "Enjoy it!" echo "Enjoy it!"
echo echo
exit 0
} }
# Install Shadowsocks-libev # Install Shadowsocks-libev
@ -251,27 +265,26 @@ install_shadowsocks_libev(){
pre_install pre_install
download_files download_files
config_shadowsocks config_shadowsocks
install_libev install_shadowsocks
} }
# Uninstall Shadowsocks-libev # Uninstall Shadowsocks-libev
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" printf "\n"
read -p "(Default: n):" answer read -p "(Default: n):" answer
if [ -z $answer ]; then [ -z ${answer} ] && answer="n"
answer="n"
fi if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
if [ "$answer" = "y" ]; then ps -ef | grep -v grep | grep -i "ss-server" > /dev/null 2>&1
ps -ef | grep -v grep | grep -v ps | grep -i "ss-server" > /dev/null 2>&1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
/etc/init.d/shadowsocks stop /etc/init.d/shadowsocks stop
fi fi
# remove auto start script
update-rc.d -f shadowsocks remove update-rc.d -f shadowsocks remove
# delete config file
rm -rf /etc/shadowsocks-libev rm -fr /etc/shadowsocks-libev
# delete shadowsocks
rm -f /usr/local/bin/ss-local rm -f /usr/local/bin/ss-local
rm -f /usr/local/bin/ss-tunnel rm -f /usr/local/bin/ss-tunnel
rm -f /usr/local/bin/ss-server rm -f /usr/local/bin/ss-server
@ -293,7 +306,9 @@ uninstall_shadowsocks_libev(){
rm -f /etc/init.d/shadowsocks rm -f /etc/init.d/shadowsocks
echo "Shadowsocks-libev uninstall success!" echo "Shadowsocks-libev uninstall success!"
else else
echo "uninstall cancelled, Nothing to do" echo
echo "uninstall cancelled, nothing to do..."
echo
fi fi
} }
@ -301,14 +316,14 @@ uninstall_shadowsocks_libev(){
action=$1 action=$1
[ -z $1 ] && action=install [ -z $1 ] && action=install
case "$action" in case "$action" in
install) install)
install_shadowsocks_libev install_shadowsocks_libev
;; ;;
uninstall) uninstall)
uninstall_shadowsocks_libev uninstall_shadowsocks_libev
;; ;;
*) *)
echo "Arguments error! [${action} ]" echo "Arguments error! [${action}]"
echo "Usage: `basename $0` {install|uninstall}" echo "Usage: `basename $0` {install|uninstall}"
;; ;;
esac esac

View File

@ -9,28 +9,60 @@ export PATH
# Intro: https://teddysun.com/357.html # # Intro: https://teddysun.com/357.html #
#===================================================================# #===================================================================#
clear # Current folder
echo "#############################################################"
echo "# Install Shadowsocks-libev server for CentOS 6 or 7 #"
echo "# Intro: https://teddysun.com/357.html #"
echo "# Author: Teddysun <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
#Current folder
cur_dir=`pwd` cur_dir=`pwd`
shadowsocks_libev_ver="shadowsocks-libev-2.5.2"
# Make sure only root can run our script # Make sure only root can run our script
rootness(){ rootness(){
if [[ $EUID -ne 0 ]]; then if [[ $EUID -ne 0 ]]; then
echo "Error:This script must be run as root!" 1>&2 echo "Error: This script must be run as root!" 1>&2
exit 1 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 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 <i@teddysun.com> #"
echo "# Github: https://github.com/shadowsocks/shadowsocks-libev #"
echo "#############################################################"
echo
}
# Check system
check_sys(){ check_sys(){
local checkType=$1 local checkType=$1
local value=$2 local value=$2
@ -78,7 +110,7 @@ check_sys(){
# Get version # Get version
getversion(){ getversion(){
if [[ -s /etc/redhat-release ]];then if [[ -s /etc/redhat-release ]]; then
grep -oE "[0-9.]+" /etc/redhat-release grep -oE "[0-9.]+" /etc/redhat-release
else else
grep -oE "[0-9.]+" /etc/issue grep -oE "[0-9.]+" /etc/issue
@ -91,7 +123,7 @@ centosversion(){
local code=$1 local code=$1
local version="$(getversion)" local version="$(getversion)"
local main_ver=${version%%.*} local main_ver=${version%%.*}
if [ "$main_ver" == "$code" ];then if [ "$main_ver" == "$code" ]; then
return 0 return 0
else else
return 1 return 1
@ -101,21 +133,6 @@ centosversion(){
fi 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-installation settings
pre_install(){ pre_install(){
# Check OS system # Check OS system
@ -126,38 +143,54 @@ pre_install(){
exit 1 exit 1
fi fi
else 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 exit 1
fi 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 read -p "(Default password: teddysun.com):" shadowsockspwd
[ -z "$shadowsockspwd" ] && shadowsockspwd="teddysun.com" [ -z "${shadowsockspwd}" ] && shadowsockspwd="teddysun.com"
echo echo
echo "---------------------------" echo "---------------------------"
echo "password = $shadowsockspwd" echo "password = ${shadowsockspwd}"
echo "---------------------------" echo "---------------------------"
echo echo
#Set shadowsocks-libev config port
# Set shadowsocks-libev config port
while true while true
do 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 read -p "(Default port: 8989):" shadowsocksport
[ -z "$shadowsocksport" ] && shadowsocksport="8989" [ -z "$shadowsocksport" ] && shadowsocksport="8989"
expr $shadowsocksport + 0 &>/dev/null expr ${shadowsocksport} + 0 &>/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
if [ $shadowsocksport -ge 1 ] && [ $shadowsocksport -le 65535 ]; then if [ ${shadowsocksport} -ge 1 ] && [ ${shadowsocksport} -le 65535 ]; then
echo echo
echo "---------------------------" echo "---------------------------"
echo "port = $shadowsocksport" echo "port = ${shadowsocksport}"
echo "---------------------------" echo "---------------------------"
echo echo
break break
else else
echo "Input error! Please input correct numbers." echo "Input error, please input correct number"
fi fi
else else
echo "Input error! Please input correct numbers." echo "Input error, please input correct number"
fi fi
done done
get_char(){ get_char(){
@ -170,47 +203,36 @@ pre_install(){
stty $SAVEDSTTY stty $SAVEDSTTY
} }
echo 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` char=`get_char`
#Install necessary dependencies #Install necessary dependencies
yum install -y wget unzip openssl-devel gcc swig python python-devel python-setuptools 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
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"
echo echo
cd ${cur_dir}
} }
# Download latest shadowsocks-libev # Download latest shadowsocks-libev
download_files(){ download_files(){
if [ -f ${shadowsocks_libev_ver}.zip ];then if [ -f ${shadowsocks_libev_ver}.tar.gz ]; then
echo "${shadowsocks_libev_ver}.zip [found]" echo "${shadowsocks_libev_ver}.tar.gz [found]"
else else
if ! wget --no-check-certificate https://github.com/shadowsocks/shadowsocks-libev/archive/v2.5.2.zip -O ${shadowsocks_libev_ver}.zip; then if ! wget --no-check-certificate -O ${shadowsocks_libev_ver}.tar.gz ${download_link}; then
echo "Failed to download ${shadowsocks_libev_ver}.zip" echo "Failed to download ${shadowsocks_libev_ver}.tar.gz"
exit 1 exit 1
fi fi
fi fi
unzip -q ${shadowsocks_libev_ver}.zip
if [ $? -eq 0 ];then # Download init script
cd ${cur_dir}/${shadowsocks_libev_ver}/ if ! wget --no-check-certificate -O /etc/init.d/shadowsocks ${init_script_link}; then
else echo "Failed to download shadowsocks-libev init script!"
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!"
exit 1 exit 1
fi fi
} }
# Config shadowsocks # Config shadowsocks
config_shadowsocks(){ config_shadowsocks(){
if [ ! -d /etc/shadowsocks-libev ];then if [ ! -d /etc/shadowsocks-libev ]; then
mkdir /etc/shadowsocks-libev mkdir -p /etc/shadowsocks-libev
fi fi
cat > /etc/shadowsocks-libev/config.json<<-EOF cat > /etc/shadowsocks-libev/config.json<<-EOF
{ {
@ -225,7 +247,7 @@ config_shadowsocks(){
EOF EOF
} }
# firewall set # Firewall set
firewall_set(){ firewall_set(){
echo "firewall set start..." echo "firewall set start..."
if centosversion 6; then if centosversion 6; then
@ -245,14 +267,14 @@ firewall_set(){
fi fi
elif centosversion 7; then elif centosversion 7; then
systemctl status firewalld > /dev/null 2>&1 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}/tcp
firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp
firewall-cmd --reload firewall-cmd --reload
else else
echo "Firewalld looks like not running, try to start..." echo "Firewalld looks like not running, try to start..."
systemctl start firewalld 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}/tcp
firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp firewall-cmd --permanent --zone=public --add-port=${shadowsocksport}/udp
firewall-cmd --reload firewall-cmd --reload
@ -264,17 +286,13 @@ firewall_set(){
echo "firewall set completed..." echo "firewall set completed..."
} }
# Install # Install Shadowsocks-libev
install(){ install_shadowsocks(){
# Build and Install shadowsocks-libev tar zxf ${shadowsocks_libev_ver}.tar.gz
if [ -s /usr/local/bin/ss-server ];then cd ${shadowsocks_libev_ver}
echo "shadowsocks-libev has been installed!"
exit 0
else
./configure ./configure
make && make install make && make install
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
mv ${cur_dir}/${shadowsocks_libev_ver}/shadowsocks-libev /etc/init.d/shadowsocks
chmod +x /etc/init.d/shadowsocks chmod +x /etc/init.d/shadowsocks
# Add run on system start up # Add run on system start up
chkconfig --add shadowsocks chkconfig --add shadowsocks
@ -291,15 +309,13 @@ install(){
echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/357.html and contact." echo "Shadowsocks-libev install failed! Please visit https://teddysun.com/357.html and contact."
exit 1 exit 1
fi fi
fi
cd ${cur_dir} cd ${cur_dir}
# Delete shadowsocks-libev folder rm -rf ${shadowsocks_libev_ver} ${shadowsocks_libev_ver}.tar.gz
rm -rf ${cur_dir}/${shadowsocks_libev_ver}/
# Delete shadowsocks-libev zip file
rm -f ${cur_dir}/${shadowsocks_libev_ver}.zip
clear clear
echo 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 IP: \033[41;37m $(get_ip) \033[0m"
echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m" echo -e "Your Server Port: \033[41;37m ${shadowsocksport} \033[0m"
echo -e "Your Password: \033[41;37m ${shadowsockspwd} \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 "Welcome to visit:https://teddysun.com/357.html"
echo "Enjoy it!" echo "Enjoy it!"
echo echo
exit 0
} }
# Uninstall Shadowsocks-libev # Uninstall Shadowsocks-libev
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" printf "\n"
read -p "(Default: n):" answer read -p "(Default: n):" answer
if [ -z $answer ]; then [ -z ${answer} ] && answer="n"
answer="n"
fi if [ "${answer}" == "y" ] || [ "${answer}" == "Y" ]; then
if [ "$answer" = "y" ]; then ps -ef | grep -v grep | grep -i "ss-server" > /dev/null 2>&1
ps -ef | grep -v grep | grep -v ps | grep -i "ss-server" > /dev/null 2>&1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
/etc/init.d/shadowsocks stop /etc/init.d/shadowsocks stop
fi fi
chkconfig --del shadowsocks chkconfig --del shadowsocks
# delete config file rm -fr /etc/shadowsocks-libev
rm -rf /etc/shadowsocks-libev
# delete shadowsocks
rm -f /usr/local/bin/ss-local rm -f /usr/local/bin/ss-local
rm -f /usr/local/bin/ss-tunnel rm -f /usr/local/bin/ss-tunnel
rm -f /usr/local/bin/ss-server rm -f /usr/local/bin/ss-server
@ -351,7 +364,9 @@ uninstall_shadowsocks_libev(){
rm -f /etc/init.d/shadowsocks rm -f /etc/init.d/shadowsocks
echo "Shadowsocks-libev uninstall success!" echo "Shadowsocks-libev uninstall success!"
else else
echo "uninstall cancelled, Nothing to do" echo
echo "uninstall cancelled, nothing to do..."
echo
fi fi
} }
@ -363,21 +378,21 @@ install_shadowsocks_libev(){
download_files download_files
config_shadowsocks config_shadowsocks
firewall_set firewall_set
install install_shadowsocks
} }
# Initialization step # Initialization step
action=$1 action=$1
[ -z $1 ] && action=install [ -z $1 ] && action=install
case "$action" in case "$action" in
install) install)
install_shadowsocks_libev install_shadowsocks_libev
;; ;;
uninstall) uninstall)
uninstall_shadowsocks_libev uninstall_shadowsocks_libev
;; ;;
*) *)
echo "Arguments error! [${action} ]" echo "Arguments error! [${action}]"
echo "Usage: `basename $0` {install|uninstall}" echo "Usage: `basename $0` {install|uninstall}"
;; ;;
esac esac