add_libev.sh 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #!/bin/bash
  2. clear
  3. TEXT='\033[30;107;2m'
  4. INFO='\033[97;44m'
  5. WARNING='\033[97;43m'
  6. ERROR='\033[97;41m'
  7. SUCCESS='\033[97;42m'
  8. GREEN='\033[92m'
  9. YELLOW='\033[93m'
  10. RESET='\033[0m'
  11. if [ "${EUID}" -ne 0 ]; then
  12. echo -e "${ERROR} ERROR ${RESET}${TEXT} You need to run this script as root! ${RESET}"; exit 1
  13. fi
  14. alamat_ip=$(wget -qO- ipv4.icanhazip.com)
  15. alamat_hos=$(cat /etc/environment | grep 'DOMAIN' | cut -d '=' -f 2)
  16. last_port_tls=$( cat /etc/shadowsocks-libev/.accounts | tail -n1 | awk '{print $3}' )
  17. last_port_http=$( cat /etc/shadowsocks-libev/.accounts | tail -n1 | awk '{print $4}' )
  18. read -p "Enter Username" _namapengguna
  19. read -p "Enter password" _katalaluan
  20. read -p "Active duration" _tempohaktif
  21. tarikh_luput=$(date -d "$_tempohaktif days" +"%F")
  22. egrep "^$_namapengguna" /etc/shadowsocks-libev/.accounts &>/dev/null
  23. if [[ $? -eq 0 ]]; then
  24. echo -e "${ERROR} ERROR ${RESET}${TEXT} Username already exist! ${RESET}"; exit 1
  25. fi
  26. egrep "^$_katalaluan" /etc/shadowsocks-libev/.accounts &>/dev/null
  27. if [[ $? -eq 0 ]]; then
  28. echo -e "${ERROR} ERROR ${RESET}${TEXT} Invalid password! ${RESET}"; exit 1
  29. fi
  30. if [[ $last_port_tls = '' ]]; then
  31. port_tls=6101
  32. else
  33. port_tls="$(( $last_port_tls + 1 ))"
  34. fi
  35. if [[ $last_port_http = '' ]]; then
  36. port_http=6001
  37. else
  38. port_http="$(( $last_port_http + 1 ))"
  39. fi
  40. cat > /etc/shadowsocks-libev/$_namapengguna-tls.json<<END
  41. {
  42. "server":"0.0.0.0",
  43. "server_port":$port_tls,
  44. "local_port":1080,
  45. "password":"$_katalaluan",
  46. "method":"chacha20-ietf-poly1305",
  47. "timeout":60,
  48. "fast_open":true,
  49. "no_delay":true,
  50. "plugin":"obfs-server",
  51. "plugin_opts":"obfs=tls",
  52. "nameserver":"1.1.1.1",
  53. "mode":"tcp"
  54. }
  55. END
  56. cat > /etc/shadowsocks-libev/$_namapengguna-http.json <<-END
  57. {
  58. "server":"0.0.0.0",
  59. "server_port":$port_http,
  60. "local_port":1080,
  61. "password":"$_katalaluan",
  62. "method":"chacha20-ietf-poly1305",
  63. "timeout":60,
  64. "fast_open":true,
  65. "no_delay":true,
  66. "plugin":"obfs-server",
  67. "plugin_opts":"obfs=http",
  68. "nameserver":"1.1.1.1",
  69. "mode":"tcp"
  70. }
  71. END
  72. systemctl start shadowsocks-libev-server@$_namapengguna-tls.service &>/dev/null
  73. systemctl enable shadowsocks-libev-server@$_namapengguna-tls.service &>/dev/null
  74. systemctl start shadowsocks-libev-server@$_namapengguna-http.service &>/dev/null
  75. systemctl enable shadowsocks-libev-server@$_namapengguna-http.service &>/dev/null
  76. libev_tls=$( echo -n "chacha20-ietf-poly1305:$_katalaluan@$alamat_hos:$port_tls" | base64 )
  77. libev_http=$( echo -n "chacha20-ietf-poly1305:$_katalaluan@$alamat_hos:$port_http" | base64 )
  78. echo "$_namapengguna $_katalaluan $port_tls $port_http $tarikh_luput" >> /etc/shadowsocks-libev/.accounts
  79. clear
  80. echo
  81. echo -e "${TEXT} ========================================================== ${RESET}"
  82. echo -e "${TEXT} SS-LIBEV - CREATE ACCOUNT ${RESET}"
  83. echo -e "${TEXT} ---------------------------------------------------------- ${RESET}"
  84. echo
  85. echo -e "${YELLOW} Address:${PLAIN} ${GREEN}$alamat_ip${PLAIN}"
  86. echo -e "${YELLOW} Hostname:${PLAIN} ${GREEN}$alamat_hos${PLAIN}"
  87. echo -e "${YELLOW} Ports:${PLAIN} ${GREEN}$port_tls(tls) $port_http(http)${PLAIN}"
  88. echo -e "${YELLOW} Username:${PLAIN} ${GREEN}$_namapengguna${PLAIN}"
  89. echo -e "${YELLOW} Password:${PLAIN} ${GREEN}$_katalaluan${PLAIN}"
  90. echo -e "${YELLOW} Duration:${PLAIN} ${GREEN}$_tempohaktif days${PLAIN}"
  91. echo -e "${YELLOW} Expired:${PLAIN} ${GREEN}$tarikh_luput${PLAIN}"
  92. echo
  93. echo " TLS File: $libev_tls#$_namapengguna"
  94. echo " HTTP File: $libev_http#$_namapengguna"
  95. echo
  96. echo -e "${TEXT} ---------------------------------------------------------- ${RESET}"
  97. echo -e "${TEXT} Created by Doctype, Powered by Cybertize. ${RESET}"
  98. echo -e "${TEXT} Copyright 2021, Allright Reserved. ${RESET}"
  99. echo -e "${TEXT} ========================================================== ${RESET}"
  100. echo