forked from yeahwu/v2ray-wss
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathss-rust.sh
127 lines (107 loc) · 3.32 KB
/
ss-rust.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
121
122
123
124
125
126
127
#!/bin/sh
# forum: https://1024.day
if [[ $EUID -ne 0 ]]; then
clear
echo "Error: This script must be run as root!" 1>&2
exit 1
fi
timedatectl set-timezone Asia/Shanghai
sspasswd=$(cat /proc/sys/kernel/random/uuid)
ssport=$(shuf -i 2000-65000 -n 1)
getIP(){
local serverIP=
serverIP=$(curl -s -4 http://www.cloudflare.com/cdn-cgi/trace | grep "ip" | awk -F "[=]" '{print $2}')
if [[ -z "${serverIP}" ]]; then
serverIP=$(curl -s -6 http://www.cloudflare.com/cdn-cgi/trace | grep "ip" | awk -F "[=]" '{print $2}')
fi
echo "${serverIP}"
}
install_UP(){
if [ -f "/usr/bin/apt-get" ];then
apt-get update && apt-get upgrade -y
apt-get install gzip wget curl unzip xz-utils jq -y
else
yum update && yum upgrade -y
yum install epel-release -y
yum install gzip wget curl unzip xz jq -y
fi
}
sysArch() {
uname=$(uname -m)
if [[ "$uname" == "i686" ]] || [[ "$uname" == "i386" ]]; then
arch="i686"
elif [[ "$uname" == *"armv7"* ]] || [[ "$uname" == "armv6l" ]]; then
arch="arm"
elif [[ "$uname" == *"armv8"* ]] || [[ "$uname" == "aarch64" ]]; then
arch="aarch64"
else
arch="x86_64"
fi
}
install_SS() {
new_ver=$(wget -qO- https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases| jq -r '[.[] | select(.prerelease == false) | select(.draft == false) | .tag_name] | .[0]')
wget --no-check-certificate -N "https://github.com/shadowsocks/shadowsocks-rust/releases/download/${new_ver}/shadowsocks-${new_ver}.${arch}-unknown-linux-gnu.tar.xz"
if [[ ! -e "shadowsocks-${new_ver}.${arch}-unknown-linux-gnu.tar.xz" ]]; then
echo -e "${Error} Shadowsocks Rust 官方源下载失败!"
return 1 && exit 1
else
tar -xvf "shadowsocks-${new_ver}.${arch}-unknown-linux-gnu.tar.xz"
fi
if [[ ! -e "ssserver" ]]; then
echo -e "${Error} Shadowsocks Rust 解压失败!"
echo -e "${Error} Shadowsocks Rust 安装失败 !"
return 1 && exit 1
else
rm -rf "shadowsocks-${new_ver}.${arch}-unknown-linux-gnu.tar.xz"
chmod +x ssserver
mv -f ssserver /usr/local/bin/
rm sslocal ssmanager ssservice ssurl
echo -e "${Info} Shadowsocks Rust 主程序下载安装完毕!"
return 0
fi
}
config_SS(){
mkdir -p /etc/shadowsocks
cat >/etc/shadowsocks/config.json<<EOF
{
"server":"::",
"server_port":$ssport,
"password":"$sspasswd",
"timeout":600,
"mode":"tcp_and_udp",
"method":"aes-128-gcm"
}
EOF
cat >/etc/systemd/system/shadowsocks.service<<EOF
[Unit]
Description=Shadowsocks Server
After=network.target
[Service]
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && systemctl enable shadowsocks.service && systemctl restart shadowsocks.service
rm -f tcp-wss.sh ss-rust.sh
}
client_SS(){
sslink=$(echo -n "aes-128-gcm:${sspasswd}@$(getIP):${ssport}" | base64 -w 0)
echo
echo "安装已经完成"
echo
echo "===========Shadowsocks配置参数============"
echo "地址:$(getIP)"
echo "端口:${ssport}"
echo "密码:${sspasswd}"
echo "加密方式:aes-128-gcm"
echo "传输协议:tcp+udp"
echo "========================================="
echo "ss://${sslink}"
echo
}
install_UP
sysArch
install_SS
config_SS
client_SS