Skip to content

Commit 26f40e8

Browse files
author
root
committed
arch
1 parent f1713e0 commit 26f40e8

File tree

3 files changed

+220
-0
lines changed

3 files changed

+220
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ This script is designed to install shadowsocks(R) manyuser painlessly.
55
## Supported OS
66

77
+ Debian/Ubuntu Linux
8+
+ Arch Linux
89

910
## Supported server
1011

py/ssmu_py_install_archlinux.sh

+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
#!/bin/bash
2+
3+
# A script to automatically install and config ss mu py.
4+
# Author: LJH from 2645 Studio
5+
# Date: 2017-4-27
6+
7+
# Update system and get some packages
8+
pacman -Syu --noconfirm
9+
pacman -S --noconfirm supervisor git wget curl python2 python2-pip python2-m2crypto
10+
source ../patch/libsodium.sh
11+
12+
# Source config file and copy iptables config file
13+
source ./ssmu.cfg
14+
if [ $is_iptables != 0 ];
15+
then
16+
cp iptables.banmailports.rules /etc/iptables.banmailports.rules
17+
fi
18+
19+
# Install and ss py mu
20+
cd /root
21+
git clone https://github.com/fsgmhoward/shadowsocks-py-mu.git
22+
23+
# Write ssmu-py config file
24+
cd /root/shadowsocks-py-mu/shadowsocks
25+
echo "import logging" >> config.py
26+
echo "CONFIG_VERSION = '20160623-2'" >> config.py
27+
echo "API_ENABLED = $api_enable" >> config.py
28+
echo "MYSQL_HOST = '$my_host'" >> config.py
29+
echo "MYSQL_PORT = $my_port" >> config.py
30+
echo "MYSQL_USER = '$my_user'" >> config.py
31+
echo "MYSQL_PASS = '$my_pass'" >> config.py
32+
echo "MYSQL_DB = '$my_db'" >> config.py
33+
echo "MYSQL_USER_TABLE = '$my_table'" >> config.py
34+
echo "MYSQL_TIMEOUT = 30" >> config.py
35+
echo "API_URL = '$api_url'" >> config.py
36+
echo "API_PASS = '$api_key'" >> config.py
37+
echo "NODE_ID = '$api_node_id'" >> config.py
38+
echo "CHECKTIME = 30" >> config.py
39+
echo "SYNCTIME = 120" >> config.py
40+
echo "CUSTOM_METHOD = $custom_method" >> config.py
41+
echo "MANAGE_PASS = 'passwd'" >> config.py
42+
echo "MANAGE_BIND_IP = '127.0.0.1'" >> config.py
43+
echo "MANAGE_PORT = 65000" >> config.py
44+
echo "SS_BIND_IP = '::'" >> config.py
45+
echo "SS_METHOD = '$ss_method'" >> config.py
46+
echo "SS_OTA = False" >> config.py
47+
echo "SS_SKIP_PORTS = $ss_skip_ports" >> config.py
48+
echo "SS_FASTOPEN = False" >> config.py
49+
echo "SS_TIMEOUT = 185" >> config.py
50+
echo "SS_FIREWALL_ENABLED = $firewall_enable" >> config.py
51+
echo "SS_FIREWALL_MODE = '$firewall_mode'" >> config.py
52+
echo "SS_BAN_PORTS = $ban_ports" >> config.py
53+
echo "SS_ALLOW_PORTS = $allow_ports" >> config.py
54+
echo "SS_FIREWALL_TRUSTED = [443]" >> config.py
55+
echo "SS_FORBIDDEN_IP = []" >> config.py
56+
echo "LOG_ENABLE = True" >> config.py
57+
echo "SS_VERBOSE = False" >> config.py
58+
echo "LOG_LEVEL = logging.INFO" >> config.py
59+
echo "LOG_FILE = 'shadowsocks.log'" >> config.py
60+
echo "LOG_FORMAT = '%(asctime)s %(levelname)s %(message)s'" >> config.py
61+
echo "LOG_DATE_FORMAT = '%b %d %H:%M:%S'" >> config.py
62+
63+
# Write supervisor config file
64+
cd /etc/supervisor.d
65+
echo "[program:ssserver]" >> ssserver.ini
66+
echo "command = python2 /root/shadowsocks-py-mu/shadowsocks/servers.py" >> ssserver.ini
67+
echo "directory = /root/shadowsocks-py-mu/shadowsocks/" >> ssserver.ini
68+
echo "user = root" >> ssserver.ini
69+
echo "autostart = true" >> ssserver.ini
70+
echo "autorestart = true" >> ssserver.ini
71+
echo "stdout_logfile = /var/log/supervisor/ssserver.log" >> ssserver.ini
72+
echo "stderr_logfile = /var/log/supervisor/ssserver_err.log" >> ssserver.ini
73+
74+
# Install serverspeeder if necessary
75+
cd /root
76+
if [ $is_serverspeeder != 0 ];
77+
then
78+
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh
79+
fi
80+
81+
# Overwrite iptables if necessary
82+
if [ $is_iptables != 0 ];
83+
then
84+
pacman -S --noconfirm iptables rsyslog
85+
iptables-restore < /etc/iptables.banmailports.rules
86+
iptables-save > /etc/iptables/iptables.rules
87+
mkdir -p "/var/spool/rsyslog"
88+
mkdir -p "/etc/rsyslog.d"
89+
echo ':msg,contains,"IPTABLES" /var/log/iptables.log' >> /etc/rsyslog.d/my_iptables.conf
90+
systemctl enable iptables
91+
systemctl restart iptables
92+
systemctl enable rsyslog
93+
systemctl restart rsyslog
94+
fi
95+
96+
# Reload supervisor
97+
systemctl enable supervisord
98+
systemctl restart supervisord
99+
supervisorctl reload
100+
101+
echo "ssmu-py install complete QwQ"

ssr/ssr_mu_install_archlinux.sh

+118
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
#!/bin/bash
2+
3+
# A script to automatically install and config ssr mu.
4+
# Author: LJH from 2645 Studio
5+
# Date: 2017-4-15
6+
7+
# Update system and get some packages
8+
pacman -Syu --noconfirm
9+
pacman -Syu --noconfirm supervisor git wget curl python2 python2-pip python2-m2crypto
10+
pip2 install cymysql
11+
source ../patch/libsodium.sh
12+
13+
# Source config file and copy iptables config file
14+
source ./ssmu.cfg
15+
if [ $is_iptables != 0 ];
16+
then
17+
cp iptables.banmailports.rules /etc/iptables.banmailports.rules
18+
fi
19+
20+
# Install ssr mu
21+
cd /root
22+
git clone https://github.com/2645Corp/shadowsocksr.git
23+
24+
# Write ssmu-py config file
25+
cd /root/shadowsocksr
26+
bash initcfg.sh
27+
28+
echo "API_INTERFACE = 'sspanelv3'" > userapiconfig.py
29+
echo "UPDATE_TIME = 60" >> userapiconfig.py
30+
echo "MYSQL_CONFIG = 'usermysql.json'" >> userapiconfig.py
31+
32+
echo '{' > usermysql.json
33+
echo " \"host\": \"$my_host\"," >> usermysql.json
34+
echo " \"port\": $my_port," >> usermysql.json
35+
echo " \"user\": \"$my_user\"," >> usermysql.json
36+
echo " \"password\": \"$my_pass\"," >> usermysql.json
37+
echo " \"db\": \"$my_db\"," >> usermysql.json
38+
echo " \"node_id\": $api_node_id," >> usermysql.json
39+
echo " \"transfer_mul\": $transfer_mul," >> usermysql.json
40+
echo " \"ssl_enable\": 0," >> usermysql.json
41+
echo " \"ssl_ca\": \"\"," >> usermysql.json
42+
echo " \"ssl_cert\": \"\"," >> usermysql.json
43+
echo " \"ssl_key\": \"\"" >> usermysql.json
44+
echo "}" >> usermysql.json
45+
46+
echo "{" > user-config.json
47+
echo " \"server\": \"0.0.0.0\"," >> user-config.json
48+
echo " \"server_ipv6\": \"::\"," >> user-config.json
49+
echo " \"password\": \"$password\"," >> user-config.json
50+
echo " \"protocol\": \"$protocol\"," >> user-config.json
51+
echo " \"protocol_param\": \"$protocol_param\"," >> user-config.json
52+
echo " \"obfs\": \"$obfs\"," >> user-config.json
53+
echo " \"obfs_param\": \"$obfs_param\"," >> user-config.json
54+
echo " \"redirect\": \"$redirect\"," >> user-config.json
55+
if [[ $add_enable ]]; then
56+
echo " \"additional_ports\": {" >> user-config.json
57+
echo " \"$add_port\": {" >> user-config.json
58+
echo " \"passwd\": \"$add_passwd\"," >> user-config.json
59+
echo " \"method\": \"$add_method\"," >> user-config.json
60+
echo " \"protocol\": \"$add_protocol\"," >> user-config.json
61+
echo " \"protocol_param\": \"$add_protocol_param\"," >> user-config.json
62+
echo " \"obfs\": \"$add_obfs\"," >> user-config.json
63+
echo " \"obfs_param\": \"$add_obfs_param\"" >> user-config.json
64+
echo " }" >> user-config.json
65+
echo " }," >> user-config.json
66+
fi
67+
echo " \"additional_ports_only\": \"$add_only\"," >> user-config.json
68+
echo " \"timeout\": 120," >> user-config.json
69+
echo " \"udp_timeout\": 60," >> user-config.json
70+
echo " \"dns_ipv6\": false," >> user-config.json
71+
echo " \"connect_verbose_info\": 0," >> user-config.json
72+
echo " \"fast_open\": $fast_open" >> user-config.json
73+
echo "}" >> user-config.json
74+
75+
# Write supervisor config file
76+
cd /etc/supervisor.d
77+
echo "[program:ssrserver_prq]" >> ssrserver.ini
78+
echo "command = ulimit -n 512000" >> ssrserver.ini
79+
echo "autostart = true" >> ssrserver.ini
80+
echo "stdout_logfile = /var/log/supervisor/ssrserver_prq.log" >> ssrserver.ini
81+
echo "stderr_logfile = /var/log/supervisor/ssrserver_prq_err.log" >> ssrserver.ini
82+
echo "[program:ssrserver]" >> ssrserver.ini
83+
echo "command = python2 /root/shadowsocksr/server.py" >> ssrserver.ini
84+
echo "directory = /root/shadowsocksr/" >> ssrserver.ini
85+
echo "user = root" >> ssrserver.ini
86+
echo "autostart = true" >> ssrserver.ini
87+
echo "autorestart = true" >> ssrserver.ini
88+
echo "stdout_logfile = /var/log/supervisor/ssrserver.log" >> ssrserver.ini
89+
echo "stderr_logfile = /var/log/supervisor/ssrserver_err.log" >> ssrserver.ini
90+
91+
# Install serverspeeder if necessary
92+
cd /root
93+
if [ $is_serverspeeder != 0 ];
94+
then
95+
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh
96+
fi
97+
98+
# Overwrite iptables if necessary
99+
if [ $is_iptables != 0 ];
100+
then
101+
pacman -S --noconfirm iptables rsyslog
102+
iptables-restore < /etc/iptables.banmailports.rules
103+
iptables-save > /etc/iptables/iptables.rules
104+
mkdir -p "/var/spool/rsyslog"
105+
mkdir -p "/etc/rsyslog.d"
106+
echo ':msg,contains,"IPTABLES" /var/log/iptables.log' >> /etc/rsyslog.d/my_iptables.conf
107+
systemctl enable iptables
108+
systemctl restart iptables
109+
systemctl enable rsyslog
110+
systemctl restart rsyslog
111+
fi
112+
113+
# Reload supervisor
114+
systemctl enable supervisord
115+
systemctl restart supervisord
116+
supervisorctl reload
117+
118+
echo "ssr mu install complete QwQ"

0 commit comments

Comments
 (0)