-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall.sh
executable file
·120 lines (95 loc) · 3.22 KB
/
install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/bash
# global param
gport=9797
gpasswd=default_password
workspace=/etc/ssmini
function getConfParam() {
while true; do
read -p "listen port:" port
read -p "password:" passwd
echo
echo "+++++++++++++++++++++++"
echo "listen port: $port"
echo "password : $passwd"
echo "-----------------------"
echo
read -r -p "Are You Sure? [Y/n] " input
case $input in
[yY][eE][sS] | [yY])
echo "Yes"
gport=$port
gpasswd=$passwd
# ./test -port $port -passwd $passwd
return 0
;;
[nN][oO] | [nN])
echo "restart \n"
;;
*)
echo "Invalid input..."
;;
esac
done
}
function genSSminiConf() {
if [ ! -d "$workspace" ]; then
mkdir $workspace
fi
if [ ! -d "$workspace/log" ]; then
mkdir $workspace/log
fi
chmod -R 777 $workspace
touch conf.json
echo "{" >>conf.json
echo " \"listen_port\":\"$gport\", " >>conf.json
echo " \"password\":\"$gpasswd\", " >>conf.json
echo " \"method\":\"AEAD_CHACHA20_POLY1305\", " >>conf.json
echo " \"logdir\":\"$workspace/log\" " >>conf.json
echo "}" >>conf.json
mv -f conf.json $workspace
}
function downloadExec() {
if [ -f "/usr/local/bin/ssmini" ]; then
rm "/usr/local/bin/ssmini"
fi
wget --tries=5 --timeout=3 -cO /usr/local/bin/ssmini https://github.com/Howard0o0/shadowsocks-mini/releases/download/v3.1/ssmini
if [ $? != 0 ]; then
echo "download ssmini failed, please check your network situation and try again"
exit 1
fi
chmod +x /usr/local/bin/ssmini
echo "export PATH=$PATH:/usr/local/bin" >>/etc/profile
source /etc/profile
}
function genSysctlConf() {
touch ssmini.service
echo "[Unit]" >>ssmini.service
echo "Description=\"ssmini daemonize systemd\"" >>ssmini.service
echo "After=network.target" >>ssmini.service
echo "After=network-online.target" >>ssmini.service
echo "Wants=network-online.target" >>ssmini.service
echo >>ssmini.service
echo "[Service]" >>ssmini.service
echo "ExecStart=/usr/local/bin/ssmini /etc/ssmini/conf.json" >>ssmini.service
echo >>ssmini.service
echo "[Install]" >>ssmini.service
echo "WantedBy=multi-user.target" >>ssmini.service
mv -f ssmini.service /etc/systemd/system/
}
# 查看当前用户是否为root
function checkUser() {
if [ "$(whoami)" == "root" ]; then
return 0
fi
echo "current user is not root, please login as root and try again"
exit 1
}
checkUser
getConfParam
genSSminiConf
downloadExec
genSysctlConf
systemctl enable ssmini
systemctl start ssmini
echo "ssmini installed"
ssmini -uri -conf $workspace/conf.json