centos6|Ubuntu14一键安装ss-manyusr多用户板【默认开启udp】

SS技术 优优 254℃ 0评论

关于一键安装单用户板的shadowsocks,网上已经有很多个脚本,很多个版本,但是一直没有一个一键安装ss-manyuser多用户版的脚本,折腾一个,献给新手级别的折腾户

填写好数据库信息,然后上传到服务器,授予执行权限

nano ss.sh #新建ss.sh脚本,将下面的代码复制进去
chmod 777 ss.sh #授予权限
./ss.sh   #执行,执行时提示输入密码(ss数据库密码)

代码如下:

#!/bin/bash
##########################################
# File Name: setup_ssmanyuser.sh
# Author: power
# Email: power4342@sina.com】
##########################################

#----------------------------------------
#mysql data
HOST="" 		#数据库地址
USER="" 		#数据库用户名
PORT="3306" 	#数据库端口
ROOT_PASSWD="" 	#数据库密码
DB_NAME="" 	#数据库名
RESET=1
#----------------------------------------

#check OS version
CHECK_OS_VERSION=`cat /etc/issue |sed -n 1"$1"p|awk '{printf $1}' |tr 'a-z' 'A-Z'`

#list the software need to be installed to the variable FILELIST
UBUNTU_TOOLS_LIBS="python-pip python-m2crypto php5-cli git \
				language-pack-zh*"

CENTOS_TOOLS_LIBS="git wget \
				libmcrypt m2crypto python-setuptools"

## check whether system is Ubuntu or not
function check_OS_distributor(){
	echo "checking distributor and release ID ..."
	if [[ "${CHECK_OS_VERSION}" == "UBUNTU" ]] ;then
		echo -e "\tCurrent OS: ${CHECK_OS_VERSION}"
		UBUNTU=1
	elif [[ "${CHECK_OS_VERSION}" == "CENTOS" ]] ;then
		echo -e "\tCurrent OS: ${CHECK_OS_VERSION}!!!"
		CENTOS=1
	else
		echo "not support ${CHECK_OS_VERSION} now"
		exit 1
	fi
}

## update system
function update_system()
{
	if [[ ${UNUNTU} -eq 1 ]];then
	{
		echo "apt-get update"
		apt-get update
	}
	elif [[ ${CENTOS} -eq 1 ]];then
	{
		##Webtatic EL6 for CentOS/RHEL 6.x
		rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
	}
	fi
}

#install one software every cycle
function install_soft_for_each(){
	echo "check OS version..."
	check_OS_distributor
	if [[ ${UBUNTU} -eq 1 ]];then
		echo "Will install below software on your Ubuntu system:"
		update_system
		for file in ${UBUNTU_TOOLS_LIBS}
		do
			trap 'echo -e "\ninterrupted by user, exit";exit' INT
			echo "========================="
			echo "installing $file ..."
			echo "-------------------------"
			apt-get install $file -y
			sleep 1
			echo "$file installed ."
		done
		pip install cymysql shadowsocks
		echo "=======ready to reset mysql root password========"
		reset_mysql_root_pwd
	elif [[ ${CENTOS} -eq 1 ]];then
		echo "Will install softwears on your CentOs system:"
		update_system
		for file in ${CENTOS_TOOLS_LIBS}
		do
			trap 'echo -e "\ninterrupted by user, exit";exit' INT
			echo "========================="
			echo "installing $file ..."
			echo "-------------------------"
			yum install $file -y
			sleep 3
			echo "$file installed ."
		done
		easy_install pip
		pip install cymysql shadowsocks
		echo "=======ready to reset mysql root password========"
		reset_mysql_root_pwd
		if [ $RESET -eq 0 ];then
			reset_mysql_root_pwd
		fi
	else
		echo "Other OS not support yet, please try Ubuntu or CentOs"
		exit 1
	fi
}

#setup manyuser ss
function setup_manyuser_ss()
{
	SS_ROOT=/root/shadowsocks/shadowsocks
	echo -e "download manyuser shadowsocks\n"
	cd /root
	git clone -b manyuser https://github.com/mengskysama/shadowsocks.git
	cd ${SS_ROOT}
	#modify Config.py
	echo -e "modify Config.py...\n"
	sed -i "/^MYSQL_HOST/ s#'.*'#'${HOST}'#" ${SS_ROOT}/Config.py
	sed -i "/^MYSQL_USER/ s#'.*'#'${USER}'#" ${SS_ROOT}/Config.py
	sed -i "/^MYSQL_PASS/ s#'.*'#'${ROOT_PASSWD}'#" ${SS_ROOT}/Config.py
	sed -i "/^MYSQL_DB/ s#'.*'#'${DB_NAME}'#" ${SS_ROOT}/Config.py
	sed -i "s/0.0.0.0/::/g" ${SS_ROOT}/config.json
	sed -i "s/aes-256-cfb/rc4-md5/g" ${SS_ROOT}/config.json
	sed -i "s/#self.udp_servers_pool = {}/self.udp_servers_pool = {}/g" ${SS_ROOT}/Config.py
	sed -i "s/#udp_server = udprelay.UDPRelay(a_config, self.dns_resolver, False)/udp_server = udprelay.UDPRelay(a_config, self.dns_resolver, False)/g" ${SS_ROOT}/Config.py
	sed -i "s/#udp_server.add_to_loop(self.loop)/udp_server.add_to_loop(self.loop)/g" ${SS_ROOT}/Config.py
	sed -i "s/#self.udp_servers_pool.update({port: udp_server})/self.udp_servers_pool.update({port: udp_server})/g" ${SS_ROOT}/Config.py
	
}
#start shadowsocks server
function start_ss()
{
	if [[ $UBUNTU -eq 1 ]];then
		service apache2 restart
	elif [[ $CENTOS -eq 1 ]];then
		/etc/init.d/crond start
	fi
	if [[ $? != 0 ]];then
		echo "Web server restart failed, please check!"
		echo "ERROR!!!"
		exit 1
	fi
	cd /root/shadowsocks/shadowsocks
	nohup python server.py > /var/log/shadowsocks.log 2>&1 &
	echo "setup firewall..."
	#add start-up
	echo "cd /root/shadowsocks/shadowsocks;nohup python server.py > /var/log/shadowsocks.log 2>&1 &" >> /etc/rc.d/rc.local
	####
	echo ""
	echo "========================================================================e"
	echo "congratulations, shadowsocks server starting..."
	echo "========================================================================"
	echo "The log file is in /var/log/shadowsocks.log..."
	echo "========================================================================"
}

#====================
# main
#
#judge whether root or not
if [ "$UID" -eq 0 ];then
read -p "(Please input New MySQL root password):" ROOT_PASSWD
if [ "$ROOT_PASSWD" = "" ]; then
echo "Error: Password can't be NULL!!"
exit 1
fi
	install_soft_for_each
	setup_manyuser_ss
	start_ss
else
	echo -e "please run it as root user again !!!\n"
	exit 1
fi

转载请注明:优优 » centos6|Ubuntu14一键安装ss-manyusr多用户板【默认开启udp】

喜欢 (2)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
HTTP/1.1 502 Bad Gateway Content-Type: text/html Connection: close Content-Length: 303 Date: Mon, 16 Jan 2017 22:56:07 GMT X-Via: 1.1 VM_36_107_centos (random:423408 Fikker/Webcache/3.7.1) 502 Bad Gateway

502 Bad Gateway - Cann't Connect To Upstream Server By SSL Read

Server: VM_36_107_centos
Date: 2017-01-16 22:56:07

Fikker/Webcache/3.7.1