|
| 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