funciones.sh 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. #!/bin/bash
  2. #
  3. [[ -e /bin/ejecutar/msg ]] && source /bin/ejecutar/msg || source <(curl -sSL https://raw.githubusercontent.com/ChumoGH/ChumoGH-Script/master/msg-bar/msg)
  4. cd $HOME
  5. selection_fun () {
  6. local selection="null"
  7. local range
  8. for((i=0; i<=$1; i++)); do range[$i]="$i "; done
  9. while [[ ! $(echo ${range[*]}|grep -w "$selection") ]]; do
  10. echo -ne "\033[1;37m Opcion: " >&2
  11. read selection
  12. tput cuu1 >&2 && tput dl1 >&2
  13. done
  14. echo $selection
  15. }
  16. fun_barin () {
  17. #==comando a ejecutar==
  18. comando="$1"
  19. #==interfas==
  20. in=' ['
  21. en=' ] '
  22. full_in="➛"
  23. full_en='100%'
  24. bar=(────────────────────
  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. #==color==
  72. in="\033[1;33m$in\033[0m"
  73. en="\033[1;33m$en\033[0m"
  74. full_in="\033[1;31m$full_in"
  75. full_en="\033[1;32m$full_en\033[0m"
  76. _=$(
  77. $comando > /dev/null 2>&1
  78. ) & > /dev/null
  79. pid=$!
  80. while [[ -d /proc/$pid ]]; do
  81. for i in "${bar[@]}"; do
  82. echo -ne "\r $in"
  83. echo -ne "ESPERE $en $in \033[1;31m$i"
  84. echo -ne " $en"
  85. sleep 0.2
  86. done
  87. done
  88. echo -e " $full_in $full_en"
  89. sleep 0.1s
  90. }
  91. print_center(){
  92. if [[ -z $2 ]]; then
  93. text="$1"
  94. else
  95. col="$1"
  96. text="$2"
  97. fi
  98. while read line; do
  99. unset space
  100. x=$(( ( 54 - ${#line}) / 2))
  101. for (( i = 0; i < $x; i++ )); do
  102. space+=' '
  103. done
  104. space+="$line"
  105. if [[ -z $2 ]]; then
  106. msg -azu "$space"
  107. else
  108. msg "$col" "$space"
  109. fi
  110. done <<< $(echo -e "$text")
  111. }
  112. ############
  113. SCPdir="/etc/adm-lite"
  114. #SCPfrm="${SCPdir}" && [[ ! -d ${SCPfrm} ]] && exit
  115. #SCPinst="${SCPdir}"&& [[ ! -d ${SCPinst} ]] && exit
  116. declare -A cor=( [0]="\033[1;37m" [1]="\033[1;34m" [2]="\033[1;31m" [3]="\033[1;33m" [4]="\033[1;32m" [5]="\e[1;36m" )
  117. fun_bar () {
  118. comando="$1"
  119. _=$( $comando > /dev/null 2>&1 ) & > /dev/null
  120. pid=$!
  121. while [[ -d /proc/$pid ]]; do
  122. echo -ne " \033[1;33m["
  123. for((i=0; i<20; i++)); do
  124. echo -ne "\033[1;31m##"
  125. sleep 0.5
  126. done
  127. echo -ne "\033[1;33m]"
  128. sleep 1s
  129. echo tput cuu1 tput dl1
  130. done
  131. echo -e " \033[1;33m[\033[1;31m########################################\033[1;33m] - \033[1;32m100%\033[0m"
  132. sleep 1s
  133. }
  134. function install(){
  135. if [ ! -f "$HOME/.nami/bin/nami" ] || [ ! -f "$HOME/.nami/bin/joker" ] || [ ! -f "$HOME/.nami/bin/brook" ] || [ ! -f "$HOME/.nami/bin/jinbe" ] || [ `echo $PATH | grep $HOME/.nami/bin | wc -l` -eq 0 ];then
  136. echo
  137. echo -e "$PC"'>>> bash <(curl https://bash.ooo/nami.sh)'"$NC"
  138. os=""
  139. arch=""
  140. if [ $(uname -s) = "Darwin" ]; then
  141. os="darwin"
  142. fi
  143. if [ $(uname -s) = "Linux" ]; then
  144. os="linux"
  145. fi
  146. if [ $(uname -s | grep "MINGW" | wc -l) -eq 1 ]; then
  147. os="windows"
  148. fi
  149. if [ $(uname -m) = "x86_64" ]; then
  150. arch="amd64"
  151. fi
  152. if [ $(uname -m) = "arm64" ]; then
  153. arch="arm64"
  154. fi
  155. if [ $(uname -m) = "aarch64" ]; then
  156. arch="arm64"
  157. fi
  158. if [ "$os" = "" -o "$arch" = "" ]; then
  159. echo "Nami does not support your OS/ARCH yet. Please submit issue or PR to https://github.com/txthinking/nami"
  160. exit
  161. fi
  162. sfx=""
  163. if [ $os = "windows" ]; then
  164. sfx=".exe"
  165. fi
  166. mkdir -p $HOME/.nami/bin
  167. curl -L -o $HOME/.nami/bin/nami$sfx "https://github.com/txthinking/nami/releases/latest/download/nami_${os}_${arch}$sfx"
  168. chmod +x $HOME/.nami/bin/nami
  169. echo 'export PATH=$HOME/.nami/bin:$PATH' >> $HOME/.bashrc
  170. echo 'export PATH=$HOME/.nami/bin:$PATH' >> $HOME/.bash_profile
  171. echo 'export PATH=$HOME/.nami/bin:$PATH' >> $HOME/.zshenv
  172. export PATH=$HOME/.nami/bin:$PATH
  173. echo
  174. echo -e "$PC"'>>> nami install joker brook jinbe'"$NC"
  175. nami install joker brook jinbe
  176. restartsh="todo"
  177. fi
  178. }
  179. function aguarde() {
  180. sleep 1
  181. helice() {
  182. #install >/dev/null 2>&1 &
  183. tput civis
  184. while [ -d /proc/$! ]; do
  185. for i in / - \\ \|; do
  186. sleep .1
  187. echo -ne "\e[1D$i"
  188. done
  189. done
  190. tput cnorm
  191. }
  192. echo -ne " \033[1;37mINSTALANDO \033[1;32mNAMI \033[1;37m& \033[1;32mBROOK JOKER\033[1;32m.\033[1;33m.\033[1;31m. \033[1;33m"
  193. helice
  194. echo -e "\e[1DDONE"
  195. }
  196. brook_fun () {
  197. msg -bar
  198. aguarde
  199. msg -bar
  200. install
  201. [[ -e /data/cert.key && -e /data/cert.crt ]] || {
  202. unset x
  203. [[ -d /data ]] && rm -rf /data
  204. echo -e " CREAREMOS EL CERTIFICADO BETA EN /data"
  205. read -p " PRESIONA ENTER PARA CONTINUAR O Cntrol + X para salir"
  206. source <(curl -sSL https://www.dropbox.com/s/839d3q8kh72ujr0/certificadossl.sh)
  207. }
  208. msg -bar
  209. ip4=`curl -s -4 ipip.ooo`
  210. ip6=`curl -s -6 ipip.ooo`
  211. PC='\033[0;35m'
  212. NC='\033[0m'
  213. lang=""
  214. restartsh=""
  215. echo
  216. read -p "$(echo -e "\033[1;34m INGRESA TU DOMINIO ( ejemplo.com ) :")" domain
  217. tput cuu1 >&2 && tput dl1 >&2
  218. [[ -z $domain ]] && domain=$(wget -qO- ifconfig.me)
  219. read -p "$(echo -e "\033[1;34m INGRESA PUERTO DEL SERVICIO ( 9999 ) :")" puerto
  220. tput cuu1 >&2 && tput dl1 >&2
  221. read -p "$(echo -e "\033[1;34m INGRESA CLAVE O PASSWD ( tuclave ) :")" password
  222. tput cuu1 >&2 && tput dl1 >&2
  223. read -p "$(echo -e "\033[1;34m INGRESA TU HOST SNI ( whatsapp.net ) :")" sni
  224. tput cuu1 >&2 && tput dl1 >&2
  225. fun_hb () {
  226. echo -e " -> INICIANDO CONFIGURACION " | pv -qL 40
  227. msg -bar
  228. echo -e " -> DOMINIO : $domain"
  229. echo -e " -> PUERTO : $puerto"
  230. echo -e " -> CONTRASEÑA : $password"
  231. echo -e " -> HOST/SNI : $sni"
  232. echo -ne " HABILITANDO CONFIGURACION DEL WSS BROOK"
  233. }
  234. echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m➮ ${cor[3]} I want to run brook server "
  235. echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m➮ ${cor[3]} I want to run brook wsserver "
  236. echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m➮ ${cor[3]} I want to run brook wssserver"
  237. echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;31m➮ ${cor[3]} I want to run brook socks5 "
  238. msg -bar #echo -e "$barra"
  239. selection=$(selection_fun 4)
  240. case ${selection} in
  241. 0)
  242. source menu
  243. exit
  244. ;;
  245. 1)
  246. fun_hb
  247. echo
  248. echo -e "$PC"">>> joker brook server --listen :$puerto --password '$password'""$NC"
  249. joker brook server --listen :$puerto --password "$password"
  250. sleep 3
  251. echo
  252. echo -e "$PC"">>> joker list""$NC"
  253. joker list
  254. echo;
  255. echo -e "$PC"'>>> joker log `joker last`'"$NC"
  256. joker log `joker last`
  257. if [ -n "$ip4" ]; then
  258. echo;
  259. echo -e "$PC"">>> brook link -s $ip4:$puerto -p '$password'""$NC"
  260. brook link -s $ip4:$puerto -p "$password"
  261. fi
  262. if [ -n "$ip6" ]; then
  263. echo;
  264. echo -e "$PC"">>> brook link -s [$ip6]:$puerto -p '$password'""$NC"
  265. brook link -s [$ip6]:$puerto -p "$password"
  266. fi
  267. read -p " Enter";;
  268. 2)
  269. fun_hb
  270. echo
  271. echo -e "$PC"">>> joker brook wsserver --listen :$puerto --password '$password'""$NC"
  272. #screen -dmS new$puerto
  273. joker brook wsserver --listen :$puerto --password "$password" --cert /data/cert.crt --certkey /data/cert.key && loll="ok" || loll=''
  274. echo
  275. echo -e "$PC"">>> joker list""$NC"
  276. joker list
  277. echo;
  278. echo -e "$PC"'>>> joker log `joker last`'"$NC"
  279. joker log `joker last`
  280. if [ -n "$ip4" ]; then
  281. echo;
  282. echo -e "$PC"">>> brook link -s ws://$ip4:$puerto -p '$password'""$NC"
  283. brook link --server ws://$sni:${puerto} -p "$password" -u "@ChumoGH" --address "$domain" --name "@ChumoGH" --insecure
  284. fi
  285. if [ -n "$ip6" ]; then
  286. echo;
  287. echo -e "$PC"">>> brook link -s [$ip6]:$puerto -p '$password'""$NC"
  288. brook link -s ws://[$ip6]:$puerto -p "$password" --cert /data/cert.crt --certkey /data/cert.key && loll="ok" || loll=''
  289. fi
  290. echo;
  291. read -p " Enter";;
  292. 3)
  293. fun_hb
  294. [[ `brook -v | awk '{print $3}'` -le 20210701 ]] && {
  295. echo -e "$PC"">>> joker brook wssserver --domain $domain --password '$password'""$NC"
  296. joker brook wssserver --domain $domain --password "$password" --cert /data/cert.crt --certkey /data/cert.key && loll="ok" || loll=''
  297. }
  298. [[ `brook -v | awk '{print $3}'` -gt 20210701 ]] && {
  299. echo -e "$PC"">>> joker brook wssserver --domainaddress $domain:${puerto} --password '$password'""$NC"
  300. joker brook wssserver --domainaddress $domain:${puerto} --password "$password" --cert /data/cert.crt --certkey /data/cert.key && loll="ok" || loll=''
  301. }
  302. [[ $loll = "ok" ]] && echo -e "DONE" || echo -e "FAIL"
  303. echo
  304. echo -e "$PC"">>> joker list""$NC"
  305. joker list
  306. echo;
  307. echo -e "$PC"'>>> joker log `joker last`'"$NC"
  308. joker log `joker last`
  309. echo;
  310. echo -e "$PC"">>> brook link -s wss://$domain:${puerto} -p '$password'""$NC"
  311. msg -bar
  312. echo
  313. brook link --server wss://$sni:${puerto} -p "$password" -u "@ChumoGH" --address "$domain" --name "@ChumoGH" --insecure
  314. echo
  315. msg -bar
  316. read -p " Enter";;
  317. 4)
  318. fun_hb
  319. read -p " Enter";;
  320. esac
  321. read -p " COPIA TU CONFIG WSS"
  322. }
  323. check_keyoficial () {
  324. IP=$(wget -qO- ifconfig.me)
  325. IP2="$IP"
  326. permited=$(curl -sSL "https://www.dropbox.com/s/a7551062y9ge8bd/RegKeyID")
  327. [[ $(echo $permited|grep "$IP2") = "" ]] && {
  328. clear && clear
  329. echo 'echo -e "\n\n\033[1;91m==============================================================\n
  330. KEY BANEADA! CONTATE A SU VENDEDOR\n==============================================================\n\n" ' > /usr/bin/vps-mx && chmod +x /usr/bin/vps-mx
  331. echo 'echo -e "\n\n\033[1;91m==============================================================\n ??KEY BANEADA! CONTATE A SU VENDEDOR\n==============================================================\n\n" ' > /usr/bin/VPS-MX && chmod +x /usr/bin/VPS-MX
  332. sleep 5s
  333. exit && exit
  334. } || {
  335. echo "OK-OFI-@Kalix1" > /usr/bin/lickal
  336. }
  337. exit && exit && exit
  338. }
  339. #check_keyoficial&
  340. _ports() {
  341. PT=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
  342. x=1
  343. for porta in `echo -e "$PT" | cut -d: -f2 | cut -d' ' -f1 | uniq`; do
  344. porta[$x]="$porta"
  345. svcs[$x]="$(echo -e "$PT" | grep -w "$porta" | awk '{print $1}' | uniq)"
  346. x=$(($x+1))
  347. done
  348. for((i=1; i<$x; i++)); do
  349. [[ ! -z ${svcs[$i]} ]] && texto="\033[1;34m ▸ \033[1;37m${svcs[$i]}: \033[1;31m${porta[$i]}" || texto=''
  350. [[ ${svcs[$i]} = "apache2" ]] && texto="\033[1;34m ▸ \033[1;37mAPACHE: \033[1;31m${porta[$i]}"
  351. [[ ${svcs[$i]} = "node" ]] && texto="\033[1;34m ▸ \033[1;37mWebSocket: \033[1;31m${porta[$i]}"
  352. [[ ${svcs[$i]} = "clash" ]] && texto="\033[1;34m ▸ \033[1;37mClash: \033[1;31m${porta[$i]}"
  353. [[ ${svcs[$i]} = "psiphond" ]] && texto="\033[1;34m ▸ \033[1;37mPSIPHON: \033[1;31m${porta[$i]}"
  354. [[ ${svcs[$i]} = "xray-v2-u" ]] && texto="\033[1;34m ▸ \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
  355. [[ ${svcs[$i]} = "v2-ui" ]] && texto="\033[1;34m ▸ \033[1;37mV2-UI/WEB: \033[1;31m${porta[$i]}"
  356. [[ ${svcs[$i]} = "xray-linu" ]] && texto="\033[1;34m ▸ \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
  357. [[ ${svcs[$i]} = "x-ui" ]] && texto="\033[1;34m ▸ \033[1;37mXUI/WEB: \033[1;31m${porta[$i]}"
  358. [[ ${svcs[$i]} = "openvpn" ]] && texto="\033[1;34m ◂ \033[1;37mOPENVPN-TCP: \033[1;31m${porta[$i]}"
  359. [[ ${svcs[$i]} = "squid" ]] && texto="\033[1;34m ◂ \033[1;37mSQUID: \033[1;31m${porta[$i]}"
  360. [[ ${svcs[$i]} = "squid3" ]] && texto="\033[1;34m ◂ \033[1;37mSQUID: \033[1;31m${porta[$i]}"
  361. [[ ${svcs[$i]} = "dropbear" ]] && texto="\033[1;34m ▸ \033[1;37mDROPBEAR: \033[1;31m${porta[$i]}"
  362. [[ ${svcs[$i]} = "python3" ]] && texto="\033[1;34m ▸ \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
  363. [[ ${svcs[$i]} = "python" ]] && texto="\033[1;34m ▸ \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
  364. [[ ${svcs[$i]} = "obfs-serv" ]] && texto="\033[1;34m ▸ \033[1;37mSSR (OBFS): \033[1;31m${porta[$i]}"
  365. [[ ${svcs[$i]} = "ss-server" ]] && texto="\033[1;34m ▸ \033[1;37mSSR (LIV): \033[1;31m${porta[$i]}"
  366. [[ ${svcs[$i]} = "sshd" ]] && texto="\033[1;34m ▸ \033[1;37mSSH: \033[1;31m${porta[$i]}"
  367. [[ ${svcs[$i]} = "ssh" ]] && texto="\033[1;34m ▸ \033[1;37mSSH: \033[1;31m${porta[$i]}"
  368. [[ ${svcs[$i]} = "systemd-r" ]] && texto="\033[1;34m ▸ \033[1;37mSystem-DNS: \033[1;31m${porta[$i]}"
  369. [[ ${svcs[$i]} = "stunnel4" ]] && texto="\033[1;34m ▸ \033[1;37mSSL: \033[1;31m${porta[$i]}"
  370. [[ ${svcs[$i]} = "v2ray" ]] && texto="\033[1;34m ◂ \033[1;37mV2RAY: \033[1;31m${porta[$i]}"
  371. [[ ${svcs[$i]} = "badvpn-ud" ]] && texto="\033[1;34m ▸ \033[1;37mBadVPN: \033[1;31mON"
  372. [[ ${porta[$i]} = "7200" ]] && texto="\033[1;34m ▸ \033[1;37mNetflix: \033[1;31mON"
  373. [[ ${svcs[$i]} = "trojan" ]] && texto="\033[1;34m ◂ \033[1;37mTrojan-GO: \033[1;31m${porta[$i]}"
  374. [[ ${svcs[$i]} = "sslh" ]] && texto="\033[1;34m ◂ \033[1;37mSSLH: \033[1;31m${porta[$i]}"
  375. [[ ${porta[$i]} = "8888" ]] && texto="\033[1;34m ◂ \033[1;37mKeyGen: \033[1;31mON"
  376. i=$(($i+1))
  377. [[ ! -z ${svcs[$i]} ]] && texto_="\033[1;34m ▸ \033[1;37m${svcs[$i]}: \033[1;31m${porta[$i]}" || texto_=''
  378. [[ ${svcs[$i]} = "apache2" ]] && texto_="\033[1;34m ▸ \033[1;37mAPACHE: \033[1;31m${porta[$i]}"
  379. [[ ${svcs[$i]} = "node" ]] && texto_="\033[1;34m ▸ \033[1;37mWebSocket: \033[1;31m${porta[$i]}"
  380. [[ ${svcs[$i]} = "clash" ]] && texto_="\033[1;34m ▸ \033[1;37mClash: \033[1;31m${porta[$i]}"
  381. [[ ${svcs[$i]} = "psiphond" ]] && texto_="\033[1;34m ▸ \033[1;37mPSIPHON: \033[1;31m${porta[$i]}"
  382. [[ ${svcs[$i]} = "xray-v2-u" ]] && texto_="\033[1;34m ▸ \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
  383. [[ ${svcs[$i]} = "v2-ui" ]] && texto_="\033[1;34m ▸ \033[1;37mV2-UI/WEB: \033[1;31m${porta[$i]}"
  384. [[ ${svcs[$i]} = "xray-linu" ]] && texto_="\033[1;34m ▸ \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
  385. [[ ${svcs[$i]} = "x-ui" ]] && texto_="\033[1;34m ▸ \033[1;37mXUI/WEB: \033[1;31m${porta[$i]}"
  386. [[ ${svcs[$i]} = "openvpn" ]] && texto_="\033[1;34m ◂ \033[1;37mOPENVPN-TCP: \033[1;31m${porta[$i]}"
  387. [[ ${svcs[$i]} = "squid" ]] && texto_="\033[1;34m ◂ \033[1;37mSQUID: \033[1;31m${porta[$i]}"
  388. [[ ${svcs[$i]} = "squid3" ]] && texto_="\033[1;34m ◂ \033[1;37mSQUID: \033[1;31m${porta[$i]}"
  389. [[ ${svcs[$i]} = "dropbear" ]] && texto_="\033[1;34m ▸ \033[1;37mDROPBEAR: \033[1;31m${porta[$i]}"
  390. [[ ${svcs[$i]} = "python3" ]] && texto_="\033[1;34m ▸ \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
  391. [[ ${svcs[$i]} = "python" ]] && texto_="\033[1;34m ▸ \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
  392. [[ ${svcs[$i]} = "obfs-serv" ]] && texto_="\033[1;34m ▸ \033[1;37mSSR (OBFS): \033[1;31m${porta[$i]}"
  393. [[ ${svcs[$i]} = "ss-server" ]] && texto_="\033[1;34m ▸ \033[1;37mSSR (LIV): \033[1;31m${porta[$i]}"
  394. [[ ${svcs[$i]} = "sshd" ]] && texto_="\033[1;34m ▸ \033[1;37mSSH: \033[1;31m${porta[$i]}"
  395. [[ ${svcs[$i]} = "ssh" ]] && texto_="\033[1;34m ▸ \033[1;37mSSH: \033[1;31m${porta[$i]}"
  396. [[ ${svcs[$i]} = "systemd-r" ]] && texto_="\033[1;34m ▸ \033[1;37mSystem-DNS: \033[1;31m${porta[$i]}"
  397. [[ ${svcs[$i]} = "stunnel4" ]] && texto_="\033[1;34m ▸ \033[1;37mSSL: \033[1;31m${porta[$i]}"
  398. [[ ${svcs[$i]} = "v2ray" ]] && texto_="\033[1;34m ◂ \033[1;37mV2RAY: \033[1;31m${porta[$i]}"
  399. [[ ${svcs[$i]} = "xray" ]] && texto_="\033[1;34m ◂ \033[1;37mXRAY: \033[1;31m${porta[$i]}"
  400. [[ ${svcs[$i]} = "badvpn-ud" ]] && texto_="\033[1;34m ▸ \033[1;37mBadVPN: \033[1;31mON"
  401. [[ ${porta[$i]} = "7200" ]] && texto_="\033[1;34m ▸ \033[1;37mNetflix: \033[1;31mON"
  402. [[ ${svcs[$i]} = "trojan" ]] && texto_="\033[1;34m ◂ \033[1;37mTrojan-GO: \033[1;31m${porta[$i]}"
  403. [[ ${svcs[$i]} = "sslh" ]] && texto_="\033[1;34m ◂ \033[1;37mSSLH: \033[1;31m${porta[$i]}"
  404. [[ ${porta[$i]} = "8888" ]] && texto_="\033[1;34m ◂ \033[1;37mKeyGen: \033[1;31mON"
  405. i=$(($i+1))
  406. [[ ! -z ${svcs[$i]} ]] && texto_3="\033[1;34m ▸ \033[1;37m${svcs[$i]}: \033[1;31m${porta[$i]}" || texto_3=''
  407. [[ ${svcs[$i]} = "apache2" ]] && texto_3="\033[1;34m ▸ \033[1;37mAPACHE: \033[1;31m${porta[$i]}"
  408. [[ ${svcs[$i]} = "node" ]] && texto_3="\033[1;34m ▸ \033[1;37mWebSocket: \033[1;31m${porta[$i]}"
  409. [[ ${svcs[$i]} = "clash" ]] && texto_3="\033[1;34m ▸ \033[1;37mClash: \033[1;31m${porta[$i]}"
  410. [[ ${svcs[$i]} = "psiphond" ]] && texto_3="\033[1;34m ▸ \033[1;37mPSIPHON: \033[1;31m${porta[$i]}"
  411. [[ ${svcs[$i]} = "xray-v2-u" ]] && texto_3="\033[1;34m ▸ \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
  412. [[ ${svcs[$i]} = "v2-ui" ]] && texto_3="\033[1;34m ▸ \033[1;37mV2-UI/WEB: \033[1;31m${porta[$i]}"
  413. [[ ${svcs[$i]} = "xray-linu" ]] && texto_3="\033[1;34m ▸ \033[1;37mXRAY/UI: \033[1;31m${porta[$i]}"
  414. [[ ${svcs[$i]} = "x-ui" ]] && texto_3="\033[1;34m ▸ \033[1;37mXUI/WEB: \033[1;31m${porta[$i]}"
  415. [[ ${svcs[$i]} = "openvpn" ]] && texto_3="\033[1;34m ◂ \033[1;37mOPENVPN-TCP: \033[1;31m${porta[$i]}"
  416. [[ ${svcs[$i]} = "squid" ]] && texto_3="\033[1;34m ◂ \033[1;37mSQUID: \033[1;31m${porta[$i]}"
  417. [[ ${svcs[$i]} = "squid3" ]] && texto_3="\033[1;34m ◂ \033[1;37mSQUID: \033[1;31m${porta[$i]}"
  418. [[ ${svcs[$i]} = "dropbear" ]] && texto_3="\033[1;34m ▸ \033[1;37mDROPBEAR: \033[1;31m${porta[$i]}"
  419. [[ ${svcs[$i]} = "python3" ]] && texto_3="\033[1;34m ▸ \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
  420. [[ ${svcs[$i]} = "python" ]] && texto_3="\033[1;34m ▸ \033[1;37mSOCKS/PYTHON: \033[1;31m${porta[$i]}"
  421. [[ ${svcs[$i]} = "obfs-serv" ]] && texto_3="\033[1;34m ▸ \033[1;37mSSR (OBFS): \033[1;31m${porta[$i]}"
  422. [[ ${svcs[$i]} = "ss-server" ]] && texto_3="\033[1;34m ▸ \033[1;37mSSR (LIV): \033[1;31m${porta[$i]}"
  423. [[ ${svcs[$i]} = "sshd" ]] && texto_3="\033[1;34m ▸ \033[1;37mSSH: \033[1;31m${porta[$i]}"
  424. [[ ${svcs[$i]} = "ssh" ]] && texto_3="\033[1;34m ▸ \033[1;37mSSH: \033[1;31m${porta[$i]}"
  425. [[ ${svcs[$i]} = "systemd-r" ]] && texto_3="\033[1;34m ▸ \033[1;37mSystem-DNS: \033[1;31m${porta[$i]}"
  426. [[ ${svcs[$i]} = "stunnel4" ]] && texto_3="\033[1;34m ▸ \033[1;37mSSL: \033[1;31m${porta[$i]}"
  427. [[ ${svcs[$i]} = "v2ray" ]] && texto_3="\033[1;34m ◂ \033[1;37mV2RAY: \033[1;31m${porta[$i]}"
  428. [[ ${svcs[$i]} = "xray" ]] && texto_3="\033[1;34m ◂ \033[1;37mXRAY: \033[1;31m${porta[$i]}"
  429. [[ ${svcs[$i]} = "badvpn-ud" ]] && texto_3="\033[1;34m ▸ \033[1;37mBadVPN: \033[1;31mON"
  430. [[ ${porta[$i]} = "7200" ]] && texto_3="\033[1;34m ▸ \033[1;37mNetflix: \033[1;31mON"
  431. [[ ${svcs[$i]} = "trojan" ]] && texto_3="\033[1;34m ◂ \033[1;37mTrojan-GO: \033[1;31m${porta[$i]}"
  432. [[ ${svcs[$i]} = "sslh" ]] && texto_3="\033[1;34m ◂ \033[1;37mSSLH: \033[1;31m${porta[$i]}"
  433. [[ ${porta[$i]} = "8888" ]] && texto_3="\033[1;34m ◂ \033[1;37mKeyGen: \033[1;31mON"
  434. echo -e "$texto $texto_ $texto_3"
  435. done
  436. PIDGEN=$(ps x | grep "teleBotGen" | grep -v grep |awk '{print $1}')
  437. [[ ! -z $PIDGEN ]] && {
  438. botG="\033[1;34m ▸ \033[1;37m BotGen Telegram 🤖 : \033[1;31m ⚡ ACTIVO ⚡"
  439. msg -bar
  440. echo -e "$botG"
  441. }
  442. }
  443. mportas () {
  444. unset portas
  445. portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
  446. while read port; do
  447. var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
  448. [[ "$(echo -e $portas|grep "$var1:$var2")" ]] || portas+="$var1:$var2\n"
  449. done <<< "$portas_var"
  450. i=1
  451. echo -e "$portas"
  452. }
  453. fun_ports () {
  454. portas1=$(mportas)
  455. for i in ${portas1}; do
  456. b=$(echo $i | awk -F ":" '{print $2}')
  457. echo "$b"
  458. done
  459. }
  460. menu () {
  461. [[ -e /etc/bash.bashrc-bakup ]] && _autorun="\033[0;31m [\033[0;32mON\033[0;31m] " || _autorun="\033[0;31m [OFF]"
  462. _ports
  463. msg -bar2
  464. echo -e "\033[0;35m [\033[0;36m1\033[0;35m]\033[0;31m ➮${cor[3]} ADMINISTRAR USUARIOS "
  465. echo -e "\033[0;35m [\033[0;36m2\033[0;35m]\033[0;31m ➮${cor[3]} HERRAMIENTAS (\033[0;34mBad/VPN$_badvpn${cor[3]}) (\033[0;34mTCP-SPEED$_tcpspeed${cor[3]}) "
  466. echo -e "\033[0;35m [\033[0;36m3\033[0;35m]\033[0;31m ➮\033[0;33m [!]${cor[3]} OPTIMIZAR VPS "
  467. echo -e "\033[0;35m [\033[0;36m4\033[0;35m]\033[0;31m ➮\033[0;33m [!]\033[0;31m DESINSTALAR SCRIPT "
  468. echo -e "\033[0;35m [\033[0;36m6\033[0;35m]\033[0;31m ➮${cor[3]} Cont/Limit DE USUARIOS $VERIFICAR_PID \033[1;31m ║"
  469. echo -e "\033[0;35m [\033[0;36m7\033[0;35m]\033[0;31m ➮ \e[3;32mHERRAMIENTAS BETA\e[0m \033[0;33m (#EXPERIMENTAL) "
  470. echo -e "\033[0;35m [\033[0;36m8\033[0;35m]\033[0;31m ➮${cor[3]} AUTOINICIAR SCRIPT $_autorun "
  471. echo -e "\033[0;35m [\033[0;36m9\033[0;35m]\033[0;31m ➮${cor[3]} INSTALADOR DE PROTOCOLOS "
  472. msg -bar2
  473. echo -e "\033[0;35m [\033[0;36m10\033[0;35m]\033[0;31m ➮\033[0;33m [!] \033[1;32mACTUALIZAR${cor[3]} |\033[0;35m [\033[0;36m0\033[0;35m]\033[0;31m ➮ $(msg -bra "\033[1;41m[ Salir ]\e[0m")"
  474. echo -ne "\033[1;31m ╰══════╣ OPCION :" && read -p "" opt
  475. }
  476. msg -bar
  477. _ports
  478. msg -bar
  479. fun_ports
  480. read -p "D"
  481. #echo "MPORTAS1 ORIGINAL"
  482. #mportas1