This repository was archived by the owner on May 22, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathxwall.sh
executable file
·72 lines (60 loc) · 2.11 KB
/
xwall.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
#!/bin/bash
MAINDIR="/usr/local/deepin-xwall"
generate_chnroute() {
sudo ipset create chnroute hash:net maxelem 65536
wget -qO- http://ftp.apnic.net/stats/apnic/delegated-apnic-latest | awk -F '|' '/CN/&&/ipv4/ {print $4 "/" 32-log($5)/log(2)}' | cat > chnroute.txt
for ip in $(cat chnroute.txt); do
sudo ipset add chnroute $ip
done
rm -f chnroute.txt
sudo ipset save -f chnroute.ipset
sudo ipset destroy chnroute
}
initial() {
sudo mkdir -p $MAINDIR/{sbin,etc,data}
sudo cp -f bin.sh $MAINDIR/sbin/xwall
sudo sed -i "s?{MAINDIR}?$MAINDIR?g" $MAINDIR/sbin/xwall
sudo chmod +x $MAINDIR/sbin/xwall
sudo apt-get install -y wget shadowsocks-libev ipset > /dev/null
sudo cp -f stubs/deepin-xwall.service.stub /lib/systemd/system/deepin-xwall.service
sudo sed -i "7s/{SERVER_IP}/$1/" /lib/systemd/system/deepin-xwall.service
sudo sed -i "s?{MAINDIR}?$MAINDIR?g" /lib/systemd/system/deepin-xwall.service
sudo systemctl daemon-reload
sudo cp -f stubs/shadowsocks.json.stub $MAINDIR/etc/shadowsocks.json
sudo sed -i "2s/{SERVER_IP}/$1/" $MAINDIR/etc/shadowsocks.json
sudo sed -i "3s/{SERVER_PORT}/$2/" $MAINDIR/etc/shadowsocks.json
sudo sed -i "5s/{PASSWORD}/$3/" $MAINDIR/etc/shadowsocks.json
sudo sed -i "7s/{METHOD}/$4/" $MAINDIR/etc/shadowsocks.json
generate_chnroute
sudo cp -f chnroute.ipset $MAINDIR/data
echo 'done'
echo '> now executes "sudo systemctl start deepin-xwall" to launch xwall service.'
}
destroy() {
sudo systemctl stop deepin-xwall
sudo systemctl disable deepin-xwall
sudo rm -f /lib/systemd/system/deepin-xwall.service
sudo systemctl daemon-reload
# sudo apt remove -y shadowsocks-libev
sudo rm -rf $MAINDIR
}
usage() {
echo 'Usage: xwall {install,uninstall}'
echo ' install {server_ip} {server_port} {password} {method} Install deepin-xwall service with Shadowsocks server.'
echo ' uninstall Uninstall deepin-xwall service.'
}
case "$1" in
"install" )
if [[ $# -ne 5 ]]; then
usage
exit
fi
initial $2 $3 $4 $5
;;
"uninstall" )
destroy
;;
*)
usage
;;
esac