pull/971/head
TelksBr 3 years ago
parent 166884121f
commit ad142bfe92
  1. 302
      install.sh
  2. 2
      src/bbr.sh
  3. 24
      src/bt.sh
  4. 4
      src/client_file.sh
  5. 16
      src/download-v2ray.sh
  6. 90
      src/mtproto.sh
  7. 12
      src/qr.sh
  8. 110
      src/socks.sh
  9. 18
      src/ss-info.sh
  10. 24
      src/uninstall.sh
  11. 74
      src/v2ray-info.sh
  12. 782
      v2ray.sh

@ -13,38 +13,38 @@ _magenta() { echo -e ${magenta}$*${none}; }
_cyan() { echo -e ${cyan}$*${none}; } _cyan() { echo -e ${cyan}$*${none}; }
# Root # Root
[[ $(id -u) != 0 ]] && echo -e "\n 哎呀……请使用 ${red}root ${none}用户运行 ${yellow}~(^_^) ${none}\n" && exit 1 [[ $(id -u) != 0 ]] && echo -e "\n opa... por favor use ${red}root ${none}execução do usuário ${yellow}~(^_^) ${none}\n" && exit 1
cmd="apt-get" cmd="apt-get"
sys_bit=$(uname -m) sys_bit=$(uname -m)
case $sys_bit in case $sys_bit in
# i[36]86) i[36]86)
# v2ray_bit="32" v2ray_bit="32"
# caddy_arch="386" caddy_arch="386"
# ;; ;;
'amd64' | x86_64) 'amd64' | x86_64)
v2ray_bit="64" v2ray_bit="64"
caddy_arch="amd64" caddy_arch="amd64"
;; ;;
# *armv6*) *armv6*)
# v2ray_bit="arm32-v6" v2ray_bit="arm32-v6"
# caddy_arch="arm6" caddy_arch="arm6"
# ;; ;;
# *armv7*) *armv7*)
# v2ray_bit="arm32-v7a" v2ray_bit="arm32-v7a"
# caddy_arch="arm7" caddy_arch="arm7"
# ;; ;;
*aarch64* | *armv8*) *aarch64* | *armv8*)
v2ray_bit="arm64-v8a" v2ray_bit="arm64-v8a"
caddy_arch="arm64" caddy_arch="arm64"
;; ;;
*) *)
echo -e " echo -e "
哈哈……这个 ${red}辣鸡脚本${none} 不支持你的系统。 ${yellow}(-_-) ${none} Haha... este ${red}script${none} não suporta o seu sistema. ${yellow}(-_-) ${none}
备注: 仅支持 Ubuntu 16+ / Debian 8+ / CentOS 7+ 系统 Nota: Suporta apenas sistemas Ubuntu 16+ / Debian 8+ / CentOS 7+
" && exit 1 " && exit 1
;; ;;
esac esac
@ -61,9 +61,9 @@ if [[ $(command -v apt-get) || $(command -v yum) ]] && [[ $(command -v systemctl
else else
echo -e " echo -e "
哈哈……这个 ${red}辣鸡脚本${none} 不支持你的系统。 ${yellow}(-_-) ${none} Haha... este ${red}script${none} não suporta o seu sistema. ${yellow}(-_-) ${none}
备注: 仅支持 Ubuntu 16+ / Debian 8+ / CentOS 7+ 系统 Nota: Suporta apenas sistemas Ubuntu 16+ / Debian 8+ / CentOS 7+
" && exit 1 " && exit 1
fi fi
@ -132,19 +132,19 @@ _sys_timezone() {
echo echo
timedatectl set-timezone Asia/Shanghai timedatectl set-timezone Asia/Shanghai
timedatectl set-ntp true timedatectl set-ntp true
echo "已将你的主机设置为Asia/Shanghai时区并通过systemd-timesyncd自动同步时间。" echo "Seu host foi definido para o fuso horário da Ásia/Xangai e sincronizado automaticamente com o systemd-timesyncd."
echo echo
if [[ $IS_OPENVZ ]]; then if [[ $IS_OPENVZ ]]; then
echo echo
echo -e "你的主机环境为 ${yellow}Openvz${none} ,建议使用${yellow}v2ray mkcp${none}系列协议。" echo -e "Seu ambiente de host é ${yellow}Openvz${none} , é recomendável usar a série de protocolos ${yellow}v2ray mkcp${none}."
echo -e "注意:${yellow}Openvz${none} 系统时间无法由虚拟机内程序控制同步。" echo -e "Observação: a hora do sistema ${yellow}Openvz${none} não pode ser sincronizada pelo controle do programa in-vm."
echo -e "如果主机时间跟实际相差${yellow}超过90秒${none},v2ray将无法正常通信,请发ticket联系vps主机商调整。" echo -e "Se a hora do host diferir do host real em ${yellow} por mais de 90 segundos ${none}, v2ray não poderá se comunicar normalmente. Por favor, envie um ticket para entrar em contato com o host vps para ajuste."
fi fi
} }
_sys_time() { _sys_time() {
echo -e "\n主机时间:${yellow}" echo -e "\n hora do host:${yellow}"
timedatectl status | sed -n '1p;4p' timedatectl status | sed -n '1p;4p'
echo -e "${none}" echo -e "${none}"
[[ $IS_OPENV ]] && pause [[ $IS_OPENV ]] && pause
@ -153,7 +153,7 @@ v2ray_config() {
# clear # clear
echo echo
while :; do while :; do
echo -e "请选择 "$yellow"V2Ray"$none" 传输协议 [${magenta}1-${#transport[*]}$none]" echo -e "Por favor, selecione o protocolo de transporte "$yellow"V2Ray"$none" [${magenta}1-${#transport[*]}$none]"
echo echo
for ((i = 1; i <= ${#transport[*]}; i++)); do for ((i = 1; i <= ${#transport[*]}; i++)); do
Stream="${transport[$i - 1]}" Stream="${transport[$i - 1]}"
@ -166,16 +166,16 @@ v2ray_config() {
fi fi
done done
echo echo
echo "备注1: 含有 [dynamicPort] 的即启用动态端口.." echo "Nota 1: uma porta dinâmica é habilitada com [dynamicPort].."
echo "备注2: [utp | srtp | wechat-video | dtls | wireguard] 分别伪装成 [BT下载 | 视频通话 | 微信视频通话 | DTLS 1.2 数据包 | WireGuard 数据包]" echo "Nota 2: [utp | srtp | wechat-video | dtls | wireguard] respectivamente disfarçados como [BT download | videochamada | WeChat videochamada | DTLS 1.2 packet | WireGuard packet]"
echo echo
read -p "$(echo -e "(默认协议: ${cyan}TCP$none)"):" v2ray_transport read -p "$(echo -e "(Protocolo padrão: ${cyan}TCP$none)"):" v2ray_transport
[ -z "$v2ray_transport" ] && v2ray_transport=1 [ -z "$v2ray_transport" ] && v2ray_transport=1
case $v2ray_transport in case $v2ray_transport in
[1-9] | [1-2][0-9] | 3[0-3]) [1-9] | [1-2][0-9] | 3[0-3])
echo echo
echo echo
echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$v2ray_transport - 1]}$none" echo -e "$yellow Protocolo de transporte V2Ray = $cyan${transport[$v2ray_transport - 1]}$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -195,14 +195,14 @@ v2ray_port_config() {
*) *)
local random=$(shuf -i20001-65535 -n1) local random=$(shuf -i20001-65535 -n1)
while :; do while :; do
echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"]" echo -e "Por favor, insira "$yellow"V2Ray"$none" porta ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):")" v2ray_port read -p "$(echo -e "(porta padrão: ${cyan}${random}$none):")" v2ray_port
[ -z "$v2ray_port" ] && v2ray_port=$random [ -z "$v2ray_port" ] && v2ray_port=$random
case $v2ray_port in case $v2ray_port in
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
echo echo
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow Porta V2Ray = $cyan$v2ray_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -222,21 +222,21 @@ v2ray_port_config() {
v2ray_dynamic_port_start() { v2ray_dynamic_port_start() {
while :; do while :; do
echo -e "请输入 "$yellow"V2Ray 动态端口开始 "$none"范围 ["$magenta"1-65535"$none"]" echo -e "Por favor, digite "$yellow" V2Ray dynamic port start "$none" range ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(默认开始端口: ${cyan}10000$none):")" v2ray_dynamic_port_start_input read -p "$(echo -e "(Porta inicial padrão: ${cyan}10000$none):")" v2ray_dynamic_port_start_input
[ -z $v2ray_dynamic_port_start_input ] && v2ray_dynamic_port_start_input=10000 [ -z $v2ray_dynamic_port_start_input ] && v2ray_dynamic_port_start_input=10000
case $v2ray_dynamic_port_start_input in case $v2ray_dynamic_port_start_input in
$v2ray_port) $v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo " Não pode ser o mesmo que a porta V2Ray...."
echo echo
echo -e " 当前 V2Ray 端口${cyan}$v2ray_port${none}" echo -e " Porta V2Ray atual${cyan}$v2ray_port${none}"
error error
;; ;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
echo echo
echo echo
echo -e "$yellow V2Ray 动态端口开始 = $cyan$v2ray_dynamic_port_start_input$none" echo -e "$yellow A porta dinâmica V2Ray é iniciada = $cyan$v2ray_dynamic_port_start_input$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -257,28 +257,28 @@ v2ray_dynamic_port_start() {
v2ray_dynamic_port_end() { v2ray_dynamic_port_end() {
while :; do while :; do
echo -e "请输入 "$yellow"V2Ray 动态端口结束 "$none"范围 ["$magenta"1-65535"$none"]" echo -e "Por favor, insira "$yellow" V2Ray final da porta dinâmica "$none" intervalo ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(默认结束端口: ${cyan}20000$none):")" v2ray_dynamic_port_end_input read -p "$(echo -e "(Porta final padrão: ${cyan}20000$none):")" v2ray_dynamic_port_end_input
[ -z $v2ray_dynamic_port_end_input ] && v2ray_dynamic_port_end_input=20000 [ -z $v2ray_dynamic_port_end_input ] && v2ray_dynamic_port_end_input=20000
case $v2ray_dynamic_port_end_input in case $v2ray_dynamic_port_end_input in
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
if [[ $v2ray_dynamic_port_end_input -le $v2ray_dynamic_port_start_input ]]; then if [[ $v2ray_dynamic_port_end_input -le $v2ray_dynamic_port_start_input ]]; then
echo echo
echo " 不能小于或等于 V2Ray 动态端口开始范围" echo "Não pode ser menor ou igual ao intervalo de início da porta dinâmica V2Ray"
echo echo
echo -e " 当前 V2Ray 动态端口开始:${cyan}$v2ray_dynamic_port_start_input${none}" echo -e "A porta dinâmica atual do V2Ray inicia: ${cyan}$v2ray_dynamic_port_start_input${none}"
error error
elif [ $lt_v2ray_port ] && [[ ${v2ray_dynamic_port_end_input} -ge $v2ray_port ]]; then elif [ $lt_v2ray_port ] && [[ ${v2ray_dynamic_port_end_input} -ge $v2ray_port ]]; then
echo echo
echo " V2Ray 动态端口结束范围 不能包括 V2Ray 端口..." echo " O intervalo de extremidade da porta dinâmica V2Ray não pode incluir portas V2Ray..."
echo echo
echo -e " 当前 V2Ray 端口:${cyan}$v2ray_port${none}" echo -e " Porta V2Ray atual: ${cyan}$v2ray_port${none}"
error error
else else
echo echo
echo echo
echo -e "$yellow V2Ray 动态端口结束 = $cyan$v2ray_dynamic_port_end_input$none" echo -e "$yellow A porta dinâmica V2Ray termina = $cyan$v2ray_dynamic_port_end_input$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -298,24 +298,24 @@ tls_config() {
echo echo
local random=$(shuf -i20001-65535 -n1) local random=$(shuf -i20001-65535 -n1)
while :; do while :; do
echo -e "请输入 "$yellow"V2Ray"$none" 端口 ["$magenta"1-65535"$none"],不能选择 "$magenta"80"$none" "$magenta"443"$none" 端口" echo -e "Por favor, insira a porta "$yellow"V2Ray"$none" ["$magenta"1-65535"$none"], não é possível selecionar a porta "$magenta"80"$none" ou "$magenta"443"$none""
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):")" v2ray_port read -p "$(echo -e "(porta padrão: ${cyan}${random}$none):")" v2ray_port
[ -z "$v2ray_port" ] && v2ray_port=$random [ -z "$v2ray_port" ] && v2ray_port=$random
case $v2ray_port in case $v2ray_port in
80) 80)
echo echo
echo " ...都说了不能选择 80 端口了咯....." echo " ... eles disseram que você não pode escolher a porta 80 ..."
error error
;; ;;
443) 443)
echo echo
echo " ..都说了不能选择 443 端口了咯....." echo ".. eles disseram que você não pode mais escolher a porta 443..."
error error
;; ;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
echo echo
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow Porta V2Ray = $cyan$v2ray_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -328,29 +328,29 @@ tls_config() {
while :; do while :; do
echo echo
echo -e "请输入一个 ${magenta}正确的域名${none},一定一定一定要正确,不!能!出!错!" echo -e "Por favor, digite um nome de domínio ${magenta}correto${none}, deve estar correto, não! Sim! Errado! Errado!"
read -p "(例如:233blog.com): " domain read -p "(Por exemplo: 233blog.com): " domain
[ -z "$domain" ] && error && continue [ -z "$domain" ] && error && continue
echo echo
echo echo
echo -e "$yellow 你的域名 = $cyan$domain$none" echo -e "$yellow seu nome de domínio = $cyan$domain$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
break break
done done
get_ip get_ip
echo echo
echo echo
echo -e "$yellow 请将 $magenta$domain$none $yellow 解析到: $cyan$ip$none" echo -e "$yellow por favor $magenta$domain$none $yellow resolver: $cyan$ip$none"
echo echo
echo -e "$yellow 请将 $magenta$domain$none $yellow 解析到: $cyan$ip$none" echo -e "$yellow por favor $magenta$domain$none $yellow resolver: $cyan$ip$none"
echo echo
echo -e "$yellow 请将 $magenta$domain$none $yellow 解析到: $cyan$ip$none" echo -e "$yellow por favor $magenta$domain$none $yellow resolver: $cyan$ip$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
while :; do while :; do
read -p "$(echo -e "(是否已经正确解析: [${magenta}Y$none]):") " record read -p "$(echo -e "(Está analisado corretamente: [${magenta}Y$none]):") " record
if [[ -z "$record" ]]; then if [[ -z "$record" ]]; then
error error
else else
@ -358,7 +358,7 @@ tls_config() {
domain_check domain_check
echo echo
echo echo
echo -e "$yellow 域名解析 = ${cyan}我确定已经有解析了$none" echo -e "$yellow DNS = ${cyan}Tenho certeza que já foi analisado$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -373,7 +373,7 @@ tls_config() {
auto_tls_config auto_tls_config
else else
caddy=true caddy=true
install_caddy_info="打开" install_caddy_info="ativado"
fi fi
if [[ $caddy ]]; then if [[ $caddy ]]; then
@ -383,37 +383,37 @@ tls_config() {
auto_tls_config() { auto_tls_config() {
echo -e " echo -e "
安装 Caddy 来实现 自动配置 TLS Instale o Caddy para configurar automaticamente o TLS
如果你已经安装 Nginx 或 Caddy Se você tiver o Nginx ou o Caddy instalado
$yellow并且..自己能搞定配置 TLS$none $yellow e.. você mesmo pode configurar o TLS $none
那么就不需要 打开自动配置 TLS então não há necessidade de ativar o TLS de configuração automática
" "
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
while :; do while :; do
read -p "$(echo -e "(是否自动配置 TLS: [${magenta}Y/N$none]):") " auto_install_caddy read -p "$(echo -e "(Se configurar automaticamente TLS: [${magenta}Y/N$none]):") " auto_install_caddy
if [[ -z "$auto_install_caddy" ]]; then if [[ -z "$auto_install_caddy" ]]; then
error error
else else
if [[ "$auto_install_caddy" == [Yy] ]]; then if [[ "$auto_install_caddy" == [Yy] ]]; then
caddy=true caddy=true
install_caddy_info="打开" install_caddy_info="ativado"
echo echo
echo echo
echo -e "$yellow 自动配置 TLS = $cyan$install_caddy_info$none" echo -e "$yellow Configuração TLS automática = $cyan$install_caddy_info$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
elif [[ "$auto_install_caddy" == [Nn] ]]; then elif [[ "$auto_install_caddy" == [Nn] ]]; then
install_caddy_info="关闭" install_caddy_info="desativado"
echo echo
echo echo
echo -e "$yellow 自动配置 TLS = $cyan$install_caddy_info$none" echo -e "$yellow Configurar TLS automaticamente = $cyan$install_caddy_info$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -427,8 +427,8 @@ auto_tls_config() {
path_config_ask() { path_config_ask() {
echo echo
while :; do while :; do
echo -e "是否开启 网站伪装 和 路径分流 [${magenta}Y/N$none]" echo -e "Se habilitar o mascaramento do site e o desvio de caminho [${magenta}Y/N$none]"
read -p "$(echo -e "(默认: [${cyan}N$none]):")" path_ask read -p "$(echo -e "(padrão: [${cyan}N$none]):")" path_ask
[[ -z $path_ask ]] && path_ask="n" [[ -z $path_ask ]] && path_ask="n"
case $path_ask in case $path_ask in
@ -439,7 +439,7 @@ path_config_ask() {
N | n) N | n)
echo echo
echo echo
echo -e "$yellow 网站伪装 和 路径分流 = $cyan 不想配置 $none" echo -e "$yellow Mascaramento de site e divisão de caminho = $cyan não deseja configurar $none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -453,21 +453,21 @@ path_config_ask() {
path_config() { path_config() {
echo echo
while :; do while :; do
echo -e "请输入想要 ${magenta} 用来分流的路径 $none , 例如 /233blog , 那么只需要输入 233blog 即可" echo -e "Por favor, digite o caminho que você deseja que ${magenta} use para desviar $none, como /233blog, então apenas digite 233blog."
read -p "$(echo -e "(默认: [${cyan}233blog$none]):")" path read -p "$(echo -e "(padrão: [${cyan}233blog$none]):")" path
[[ -z $path ]] && path="233blog" [[ -z $path ]] && path="233blog"
case $path in case $path in
*[/$]*) *[/$]*)
echo echo
echo -e " 由于这个脚本太辣鸡了..所以分流的路径不能包含$red / $none或$red $ $none这两个符号.... " echo -e " Porque este script é muito picante.. então o caminho do desvio não pode conter os dois símbolos $red / $none ou $red $ $none ...."
echo echo
error error
;; ;;
*) *)
echo echo
echo echo
echo -e "$yellow 分流的路径 = ${cyan}/${path}$none" echo -e "$yellow caminho de desvio = ${cyan}/${path}$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -480,25 +480,25 @@ path_config() {
proxy_site_config() { proxy_site_config() {
echo echo
while :; do while :; do
echo -e "请输入 ${magenta}一个正确的 $none ${cyan}网址$none 用来作为 ${cyan}网站的伪装$none , 例如 https://liyafly.com" echo -e "Por favor, insira ${magenta} um $none ${cyan} URL$none válido para usar como $none para sites ${cyan}, por exemplo https://liyafly.com"
echo -e "举例...你当前的域名是 $green$domain$none , 伪装的网址的是 https://liyafly.com" echo -e "Exemplo... seu nome de domínio atual é $green$domain$none , o URL falso é https://liyafly.com"
echo -e "然后打开你的域名时候...显示出来的内容就是来自 https://liyafly.com 的内容" echo -e "Então, quando você abre seu domínio... o conteúdo exibido é o conteúdo de https://liyafly.com"
echo -e "其实就是一个反代...明白就好..." echo -e "Na verdade, é uma anti-geração... apenas entenda..."
echo -e "如果不能伪装成功...可以使用 v2ray config 修改伪装的网址" echo -e "Se você não conseguir disfarçar com sucesso... você pode usar a configuração v2ray para modificar o URL disfarçado"
read -p "$(echo -e "(默认: [${cyan}https://liyafly.com$none]):")" proxy_site read -p "$(echo -e "(padrão: [${cyan}https://liyafly.com$none]):")" proxy_site
[[ -z $proxy_site ]] && proxy_site="https://liyafly.com" [[ -z $proxy_site ]] && proxy_site="https://liyafly.com"
case $proxy_site in case $proxy_site in
*[#$]*) *[#$]*)
echo echo
echo -e " 由于这个脚本太辣鸡了..所以伪装的网址不能包含$red # $none或$red $ $none这两个符号.... " echo -e " Como esse script é muito picante, o URL falso não pode conter os símbolos $red # $none ou $red $ $none. "
echo echo
error error
;; ;;
*) *)
echo echo
echo echo
echo -e "$yellow 伪装的网址 = ${cyan}${proxy_site}$none" echo -e "$yellow URL falso = ${cyan}${proxy_site}$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -510,26 +510,26 @@ proxy_site_config() {
blocked_hosts() { blocked_hosts() {
echo echo
while :; do while :; do
echo -e "是否开启广告拦截(会影响性能) [${magenta}Y/N$none]" echo -e "Se habilitar o bloqueio de anúncios (afetará o desempenho) [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):")" blocked_ad read -p "$(echo -e "(padrão [${cyan}N$none]):")" blocked_ad
[[ -z $blocked_ad ]] && blocked_ad="n" [[ -z $blocked_ad ]] && blocked_ad="n"
case $blocked_ad in case $blocked_ad in
Y | y) Y | y)
blocked_ad_info="开启" blocked_ad_info="ativado"
ban_ad=true ban_ad=true
echo echo
echo echo
echo -e "$yellow 广告拦截 = $cyan开启$none" echo -e "bloqueador de anúncios $yellow = $cyan em $none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
;; ;;
N | n) N | n)
blocked_ad_info="关闭" blocked_ad_info="desativado"
echo echo
echo echo
echo -e "$yellow 广告拦截 = $cyan 关闭 $none" echo -e "$yellow adblock = $cyan off $none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -545,8 +545,8 @@ shadowsocks_config() {
echo echo
while :; do while :; do
echo -e "是否配置 ${yellow}Shadowsocks${none} [${magenta}Y/N$none]" echo -e "Quer configurar ${yellow}Shadowsocks${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " install_shadowsocks read -p "$(echo -e "(padrão [${cyan}N$none]):") " install_shadowsocks
[[ -z "$install_shadowsocks" ]] && install_shadowsocks="n" [[ -z "$install_shadowsocks" ]] && install_shadowsocks="n"
if [[ "$install_shadowsocks" == [Yy] ]]; then if [[ "$install_shadowsocks" == [Yy] ]]; then
echo echo
@ -566,13 +566,13 @@ shadowsocks_config() {
shadowsocks_port_config() { shadowsocks_port_config() {
local random=$(shuf -i20001-65535 -n1) local random=$(shuf -i20001-65535 -n1)
while :; do while :; do
echo -e "请输入 "$yellow"Shadowsocks"$none" 端口 ["$magenta"1-65535"$none"],不能和 "$yellow"V2Ray"$none" 端口相同" echo -e "Por favor, insira a porta "$yellow"Shadowsocks"$none" ["$magenta"1-65535"$none"], não pode ser a mesma que a porta "$yellow"V2Ray"$none""
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):") " ssport read -p "$(echo -e "(porta padrão: ${cyan}${random}$none):") " ssport
[ -z "$ssport" ] && ssport=$random [ -z "$ssport" ] && ssport=$random
case $ssport in case $ssport in
$v2ray_port) $v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo " Não pode ser o mesmo que a porta V2Ray...."
error error
;; ;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
@ -581,24 +581,24 @@ shadowsocks_port_config() {
fi fi
if [[ $tls && $ssport == "80" ]] || [[ $tls && $ssport == "443" ]]; then if [[ $tls && $ssport == "80" ]] || [[ $tls && $ssport == "443" ]]; then
echo echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none$green HTTP/2"$none" 传输协议." echo -e "Porque você selecionou o transporte "$green"WebSocket + TLS $none ou $green HTTP/2"$none"."
echo echo
echo -e "所以不能选择 "$magenta"80"$none" "$magenta"443"$none" 端口" echo -e "Assim, as portas "$magenta"80"$none" ou "$magenta"443"$none" não podem ser selecionadas"
error error
elif [[ $v2ray_dynamic_port_start_input == $ssport || $v2ray_dynamic_port_end_input == $ssport ]]; then elif [[ $v2ray_dynamic_port_start_input == $ssport || $v2ray_dynamic_port_end_input == $ssport ]]; then
local multi_port="${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}" local multi_port="${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}"
echo echo
echo " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为$multi_port" echo " Desculpe, esta porta está em conflito com a porta dinâmica V2Ray, o intervalo de porta dinâmica V2Ray atual é$multi_port"
error error
elif [[ $v2ray_dynamic_port_start_input -lt $ssport && $ssport -le $v2ray_dynamic_port_end_input ]]; then elif [[ $v2ray_dynamic_port_start_input -lt $ssport && $ssport -le $v2ray_dynamic_port_end_input ]]; then
local multi_port="${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}" local multi_port="${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}"
echo echo
echo " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为$multi_port" echo " Desculpe, esta porta está em conflito com a porta dinâmica V2Ray, o intervalo de porta dinâmica V2Ray atual é$multi_port"
error error
else else
echo echo
echo echo
echo -e "$yellow Shadowsocks 端口 = $cyan$ssport$none" echo -e "$yellow Porta Shadowsocks = $cyan$ssport$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -616,20 +616,20 @@ shadowsocks_port_config() {
shadowsocks_password_config() { shadowsocks_password_config() {
while :; do while :; do
echo -e "请输入 "$yellow"Shadowsocks"$none" 密码" echo -e "Por favor, digite "$yellow"Shadowsocks"$none"password"
read -p "$(echo -e "(默认密码: ${cyan}233blog.com$none)"): " sspass read -p "$(echo -e "(senha padrão: ${cyan}233blog.com$none)"): " sspass
[ -z "$sspass" ] && sspass="233blog.com" [ -z "$sspass" ] && sspass="233blog.com"
case $sspass in case $sspass in
*[/$]*) *[/$]*)
echo echo
echo -e " 由于这个脚本太辣鸡了..所以密码不能包含$red / $none或$red $ $none这两个符号.... " echo -e " Como este script é muito picante, a senha não pode conter os dois símbolos $red / $none ou $red $ $none. ..."
echo echo
error error
;; ;;
*) *)
echo echo
echo echo
echo -e "$yellow Shadowsocks 密码 = $cyan$sspass$none" echo -e "$yellow Senha do Shadowsocks = $cyan$sspass$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -643,21 +643,21 @@ shadowsocks_password_config() {
shadowsocks_ciphers_config() { shadowsocks_ciphers_config() {
while :; do while :; do
echo -e "请选择 "$yellow"Shadowsocks"$none" 加密协议 [${magenta}1-${#ciphers[*]}$none]" echo -e "Por favor, selecione o protocolo de criptografia "$yellow"Shadowsocks"$none" [${magenta}1-${#ciphers[*]}$none]"
for ((i = 1; i <= ${#ciphers[*]}; i++)); do for ((i = 1; i <= ${#ciphers[*]}; i++)); do
ciphers_show="${ciphers[$i - 1]}" ciphers_show="${ciphers[$i - 1]}"
echo echo
echo -e "$yellow $i. $none${ciphers_show}" echo -e "$yellow $i. $none${ciphers_show}"
done done
echo echo
read -p "$(echo -e "(默认加密协议: ${cyan}${ciphers[1]}$none)"):" ssciphers_opt read -p "$(echo -e "(Protocolo de criptografia padrão: ${cyan}${ciphers[1]}$none)"):" ssciphers_opt
[ -z "$ssciphers_opt" ] && ssciphers_opt=2 [ -z "$ssciphers_opt" ] && ssciphers_opt=2
case $ssciphers_opt in case $ssciphers_opt in
[1-3]) [1-3])
ssciphers=${ciphers[$ssciphers_opt - 1]} ssciphers=${ciphers[$ssciphers_opt - 1]}
echo echo
echo echo
echo -e "$yellow Shadowsocks 加密协议 = $cyan${ssciphers}$none" echo -e "$yellow Protocolo de criptografia Shadowsocks = $cyan${ssciphers}$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -674,62 +674,62 @@ shadowsocks_ciphers_config() {
install_info() { install_info() {
clear clear
echo echo
echo " ....准备安装了咯..看看有毛有配置正确了..." echo " ....Pronto para instalar..Veja se a configuração está correta..."
echo echo
echo "---------- 安装信息 -------------" echo "---------- Informações de instalação -------------"
echo echo
echo -e "$yellow V2Ray 传输协议 = $cyan${transport[$v2ray_transport - 1]}$none" echo -e "$yellow Protocolo de transporte V2Ray = $cyan${transport[$v2ray_transport - 1]}$none"
if [[ $v2ray_transport == [45] || $v2ray_transport == 33 ]]; then if [[ $v2ray_transport == [45] || $v2ray_transport == 33 ]]; then
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow Porta V2Ray = $cyan$v2ray_port$none"
echo echo
echo -e "$yellow 你的域名 = $cyan$domain$none" echo -e "$yellow seu nome de domínio = $cyan$domain$none"
echo echo
echo -e "$yellow 域名解析 = ${cyan}我确定已经有解析了$none" echo -e "$yellow DNS = ${cyan}!!!analisado!!!$none"
echo echo
echo -e "$yellow 自动配置 TLS = $cyan$install_caddy_info$none" echo -e "$yellow Configurar TLS automaticamente = $cyan$install_caddy_info$none"
if [[ $ban_ad ]]; then if [[ $ban_ad ]]; then
echo echo
echo -e "$yellow 广告拦截 = $cyan$blocked_ad_info$none" echo -e "$yellow bloqueio de anúncios = $cyan$blocked_ad_info$none"
fi fi
if [[ $is_path ]]; then if [[ $is_path ]]; then
echo echo
echo -e "$yellow 路径分流 = ${cyan}/${path}$none" echo -e "$yellow desvio de caminho = ${cyan}/${path}$none"
fi fi
elif [[ $v2ray_transport -ge 18 && $v2ray_transport -ne 33 ]]; then elif [[ $v2ray_transport -ge 18 && $v2ray_transport -ne 33 ]]; then
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow Porta V2Ray = $cyan$v2ray_port$none"
echo echo
echo -e "$yellow V2Ray 动态端口范围 = $cyan${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}$none" echo -e "$yellow Faixa de portas dinâmicas V2Ray = $cyan${v2ray_dynamic_port_start_input} - ${v2ray_dynamic_port_end_input}$none"
if [[ $ban_ad ]]; then if [[ $ban_ad ]]; then
echo echo
echo -e "$yellow 广告拦截 = $cyan$blocked_ad_info$none" echo -e "$yellow bloqueio de anúncios = $cyan$blocked_ad_info$none"
fi fi
else else
echo echo
echo -e "$yellow V2Ray 端口 = $cyan$v2ray_port$none" echo -e "$yellow Porta V2Ray = $cyan$v2ray_port$none"
if [[ $ban_ad ]]; then if [[ $ban_ad ]]; then
echo echo
echo -e "$yellow 广告拦截 = $cyan$blocked_ad_info$none" echo -e "$yellow bloqueio de anúncios = $cyan$blocked_ad_info$none"
fi fi
fi fi
if [ $shadowsocks ]; then if [ $shadowsocks ]; then
echo echo
echo -e "$yellow Shadowsocks 端口 = $cyan$ssport$none" echo -e "$yellow Porta Shadowsocks = $cyan$ssport$none"
echo echo
echo -e "$yellow Shadowsocks 密码 = $cyan$sspass$none" echo -e "$yellow Shadowsocks 密码 = $cyan$sspass$none"
echo echo
echo -e "$yellow Shadowsocks 加密协议 = $cyan${ssciphers}$none" echo -e "$yellow Protocolo de criptografia Shadowsocks = $cyan${ssciphers}$none"
else else
echo echo
echo -e "$yellow 是否配置 Shadowsocks = ${cyan}未配置${none}" echo -e "$yellow Se deve configurar Shadowsocks = ${cyan}Não configurado${none}"
fi fi
echo echo
echo "---------- END -------------" echo "---------- FIM -------------"
echo echo
pause pause
echo echo
@ -747,13 +747,13 @@ domain_check() {
test_domain=$(curl -sH 'accept: application/dns-json' "https://cloudflare-dns.com/dns-query?name=$domain&type=A" | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1) test_domain=$(curl -sH 'accept: application/dns-json' "https://cloudflare-dns.com/dns-query?name=$domain&type=A" | grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1)
if [[ $test_domain != $ip ]]; then if [[ $test_domain != $ip ]]; then
echo echo
echo -e "$red 检测域名解析错误....$none" echo -e "$red Detectar erros de resolução de nomes de domínio....$none"
echo echo
echo -e " 你的域名: $yellow$domain$none 未解析到: $cyan$ip$none" echo -e "Seu domínio: $yellow$domain$none não foi resolvido para: $cyan$ip$none"
echo echo
echo -e " 你的域名当前解析到: $cyan$test_domain$none" echo -e " Seu domínio atualmente resolve para: $cyan$test_domain$none"
echo echo
echo "备注...如果你的域名是使用 Cloudflare 解析的话..在 Status 那里点一下那图标..让它变灰" echo "Observação... se o seu domínio for resolvido usando Cloudflare.. clique nesse ícone em Status.. deixe-o acinzentado"
echo echo
exit 1 exit 1
fi fi
@ -792,9 +792,9 @@ install_v2ray() {
if [[ $local_install ]]; then if [[ $local_install ]]; then
if [[ ! -d $(pwd)/config ]]; then if [[ ! -d $(pwd)/config ]]; then
echo echo
echo -e "$red 哎呀呀...安装失败了咯...$none" echo -e "$red Ops... falha na instalação... $none"
echo echo
echo -e " 请确保你有完整的上传 233v2.com 的 V2Ray 一键安装脚本 & 管理脚本到当前 ${green}$(pwd) $none目录下" echo -e "Certifique-se de ter o script de instalação e gerenciamento de um clique completo do V2Ray carregado de 233v2.com para o diretório ${green}$(pwd) $none atual"
echo echo
exit 1 exit 1
fi fi
@ -809,9 +809,9 @@ install_v2ray() {
if [[ ! -d /etc/v2ray/233boy/v2ray ]]; then if [[ ! -d /etc/v2ray/233boy/v2ray ]]; then
echo echo
echo -e "$red 哎呀呀...克隆脚本仓库出错了...$none" echo -e "$red Ops...Erro ao clonar repositório de script...$none"
echo echo
echo -e " 温馨提示..... 请尝试自行安装 Git: ${green}$cmd install -y git $none 之后再安装此脚本" echo -e " Lembrete..... Por favor, tente instalar o Git sozinho: ${green}$cmd install -y git $none e depois instale este script"
echo echo
exit 1 exit 1
fi fi
@ -891,13 +891,13 @@ get_ip() {
error() { error() {
echo -e "\n$red 输入错误!$none\n" echo -e "\n$red erro de entrada! $nenhum\n"
} }
pause() { pause() {
read -rsp "$(echo -e "$green Enter 回车键 $none 继续....或按 $red Ctrl + C $none 取消.")" -d $'\n' read -rsp "$(echo -e "Pressione $green Digite $none para continuar... ou $red Ctrl + C $none para cancelar.")" -d $'\n'
echo echo
} }
do_service() { do_service() {
@ -919,16 +919,16 @@ show_config_info() {
install() { install() {
if [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f $backup && -d /etc/v2ray/233boy/v2ray ]]; then if [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f $backup && -d /etc/v2ray/233boy/v2ray ]]; then
echo echo
echo " 大佬...你已经安装 V2Ray 啦...无需重新安装" echo "Grande cara... você já instalou o V2Ray... não precisa reinstalar"
echo echo
echo -e " $yellow输入 ${cyan}v2ray${none} $yellow即可管理 V2Ray${none}" echo -e " $yellow type ${cyan}v2ray${none} $yellow para gerenciar V2Ray${none}"
echo echo
exit 1 exit 1
elif [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f /etc/v2ray/233blog_v2ray_backup.txt && -d /etc/v2ray/233boy/v2ray ]]; then elif [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f /etc/v2ray/233blog_v2ray_backup.txt && -d /etc/v2ray/233boy/v2ray ]]; then
echo echo
echo " 如果你需要继续安装.. 请先卸载旧版本" echo " Se você precisar continuar a instalação, desinstale a versão antiga primeiro"
echo echo
echo -e " $yellow输入 ${cyan}v2ray uninstall${none} $yellow即可卸载${none}" echo -e " $yellow digite ${cyan}v2ray uninstall${none} $yellow irá desinstalar ${none}"
echo echo
exit 1 exit 1
fi fi
@ -965,19 +965,19 @@ uninstall() {
_load uninstall.sh _load uninstall.sh
else else
echo echo
echo -e " $yellow输入 ${cyan}v2ray uninstall${none} $yellow即可卸载${none}" echo -e " $amarelo Digite ${cyan}v2ray uninstall${none} $yellow para desinstalar ${none}"
echo echo
fi fi
elif [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f /etc/v2ray/233blog_v2ray_backup.txt && -d /etc/v2ray/233boy/v2ray ]]; then elif [[ -f /usr/bin/v2ray/v2ray && -f /etc/v2ray/config.json ]] && [[ -f /etc/v2ray/233blog_v2ray_backup.txt && -d /etc/v2ray/233boy/v2ray ]]; then
echo echo
echo -e " $yellow输入 ${cyan}v2ray uninstall${none} $yellow即可卸载${none}" echo -e "$yellow digite ${cyan}v2ray uninstall${none} $yellow irá desinstalar ${none}"
echo echo
else else
echo -e " echo -e "
$red 大胸弟...你貌似毛有安装 V2Ray ....卸载个鸡鸡哦...$none $red Peitos grandes... Parece que você instalou o V2Ray.... Desinstale um pau...$none
备注...仅支持卸载使用我 (233v2.com) 提供的 V2Ray 一键安装脚本 Observações...Suporta apenas a desinstalação e uso do script de instalação de um clique do V2Ray fornecido por mim (233v2.com)
" && exit 1 " && exit 1
fi fi
@ -996,13 +996,13 @@ local)
;; ;;
*) *)
echo echo
echo -e " 你输入的这个参数 <$red $args $none> ...这个是什么鬼啊...脚本不认识它哇" echo -e " O parâmetro que você digitou <$red $args $none>... que diabos é isso... o script não reconhece, uau"
echo echo
echo -e " 这个辣鸡脚本仅支持输入$green local / online $none参数" echo -e " Este script de frango picante suporta apenas o parâmetro de entrada $green local / online $none"
echo echo
echo -e " 输入$yellow local $none即是使用本地安装" echo -e " Digite $yellow local $none para usar a instalação local"
echo echo
echo -e " 输入$yellow online $none即是使用在线安装 (默认)" echo -e " Digite $yellow online $none para usar a instalação online (padrão)"
echo echo
exit 1 exit 1
;; ;;
@ -1011,21 +1011,21 @@ esac
clear clear
while :; do while :; do
echo echo
echo "........... V2Ray 一键安装脚本 & 管理脚本 by 233v2.com .........." echo "...........Script de instalação e script de gerenciamento de um clique V2Ray por 233v2.com .........."
echo echo
echo "帮助说明: https://233v2.com/post/1/" echo "Descrição da ajuda: https://233v2.com/post/1/"
echo echo
echo "搭建教程: https://233v2.com/post/2/" echo "Criar tutorial: https://233v2.com/post/2/"
echo echo
echo " 1. 安装" echo " 1. Instalar"
echo echo
echo " 2. 卸载" echo " 2. Desinstalar"
echo echo
if [[ $local_install ]]; then if [[ $local_install ]]; then
echo -e "$yellow 温馨提示.. 本地安装已启用 ..$none" echo -e "$yellow Lembrete.. A instalação local está habilitada..$none"
echo echo
fi fi
read -p "$(echo -e "请选择 [${magenta}1-2$none]:")" choose read -p "$(echo -e "por favor escolha [${magenta}1-2$none]:")" choose
case $choose in case $choose in
1) 1)
install install

@ -5,7 +5,7 @@ _open_bbr() {
echo "net.core.default_qdisc = fq" >>/etc/sysctl.conf echo "net.core.default_qdisc = fq" >>/etc/sysctl.conf
sysctl -p >/dev/null 2>&1 sysctl -p >/dev/null 2>&1
echo echo
_green "..由于你的 VPS 内核支持开启 BBR ...已经为你启用 BBR 优化...." _green "..Como seu kernel VPS suporta a habilitação do BBR... a otimização do BBR foi habilitada para você..."
echo echo
} }

@ -1,19 +1,19 @@
_ban_bt_main() { _ban_bt_main() {
if [[ $ban_bt ]]; then if [[ $ban_bt ]]; then
local _info="$green已开启$none" local _info="$green ativado$none"
else else
local _info="$red已关闭$none" local _info="$red desativado$none"
fi fi
_opt='' _opt=''
while :; do while :; do
echo echo
echo -e "$yellow 1. $none开启 BT 屏蔽" echo -e "$yellow 1. $none Ative o bloqueio de BT"
echo echo
echo -e "$yellow 2. $none关闭 BT 屏蔽" echo -e "$yellow 2. $none Desligue o bloqueio de BT"
echo echo
echo -e "当前 BT 屏蔽状态: $_info" echo -e "Status atual de bloqueio de BT: $_info"
echo echo
read -p "$(echo -e "请选择 [${magenta}1-2$none]:")" _opt read -p "$(echo -e "por favor escolha [${magenta}1-2$none]:")" _opt
if [[ -z $_opt ]]; then if [[ -z $_opt ]]; then
error error
else else
@ -21,12 +21,12 @@ _ban_bt_main() {
1) 1)
if [[ $ban_bt ]]; then if [[ $ban_bt ]]; then
echo echo
echo -e " 大胸弟...难不成你没有看到 (当前 BT 屏蔽状态: $_info) 这个帅帅的提示么.....还开启个鸡鸡哦" echo -e " Peitos grandes... É possível que você não tenha visto (status atual de BT bloqueado: $_info) este belo lembrete...
echo echo
else else
echo echo
echo echo
echo -e "$yellow BT 屏蔽 = $cyan开启$none" echo -e "$yellow escudo BT = $cyan ligar$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause
@ -35,7 +35,7 @@ _ban_bt_main() {
config config
echo echo
echo echo
echo -e "$green BT 屏蔽已开启...如果出现异常..那就关闭它咯$none" echo -e "$green O bloqueio de BT está ativado... se algo der errado... desligue-o$none"
echo echo
fi fi
break break
@ -44,7 +44,7 @@ _ban_bt_main() {
if [[ $ban_bt ]]; then if [[ $ban_bt ]]; then
echo echo
echo echo
echo -e "$yellow BT 屏蔽 = $cyan关闭$none" echo -e "$yellow escudo BT = $cyan desligar$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause
@ -53,11 +53,11 @@ _ban_bt_main() {
config config
echo echo
echo echo
echo -e "$red BT 屏蔽已关闭...不过你也可以随时重新开启 ...只要你喜欢$none" echo -e "$red O bloqueio de BT está desativado... mas você sempre pode ativá-lo novamente... se quiser$none"
echo echo
else else
echo echo
echo -e " 大胸弟...难不成你没有看到 (当前 BT 屏蔽状态: $_info) 这个帅帅的提示么.....还关闭个鸡鸡哦" echo -e " Peitos grandes... Será que você não viu (status atual de BT bloqueado: $_info) este belo lembrete... e feche o pau."
echo echo
fi fi
break break

@ -4,11 +4,11 @@ _get_client_file() {
local _link="$(cat $v2ray_client_config | tr -d [:space:] | base64 -w0)" local _link="$(cat $v2ray_client_config | tr -d [:space:] | base64 -w0)"
local link="https://233boy.github.io/tools/json.html#${_link}" local link="https://233boy.github.io/tools/json.html#${_link}"
echo echo
echo "---------- V2Ray 客户端配置文件链接 -------------" echo "---------- Link do arquivo de configuração do cliente V2Ray -------------"
echo echo
echo -e ${cyan}$link${none} echo -e ${cyan}$link${none}
echo echo
echo " V2Ray 客户端使用教程: https://233v2.com/post/4/" echo " Tutorial do cliente V2Ray: https://233v2.com/post/4/"
echo echo
echo echo
} }

@ -4,11 +4,11 @@ _get_latest_version() {
if [[ ! $v2ray_latest_ver ]]; then if [[ ! $v2ray_latest_ver ]]; then
echo echo
echo -e " $red获取 V2Ray 最新版本失败!!!$none" echo -e " $red Falha ao obter a versão mais recente do V2Ray!!!$none"
echo echo
echo -e " 请尝试执行如下命令: $green echo 'nameserver 8.8.8.8' >/etc/resolv.conf $none" echo -e "Por favor, tente executar o seguinte comando: $green echo 'nameserver 8.8.8.8' >/etc/resolv.conf $none"
echo echo
echo " 然后再重新运行脚本...." echo " Em seguida, execute novamente o script...."
echo echo
exit 1 exit 1
fi fi
@ -21,7 +21,7 @@ _download_v2ray_file() {
if ! wget --no-check-certificate -O "$v2ray_tmp_file" $v2ray_download_link; then if ! wget --no-check-certificate -O "$v2ray_tmp_file" $v2ray_download_link; then
echo -e " echo -e "
$red 下载 V2Ray 失败啦..可能是你的 VPS 网络太辣鸡了...请重试...$none $red Falha ao baixar o V2Ray.. Talvez sua rede VPS esteja muito quente... Por favor, tente novamente...$none
" && exit 1 " && exit 1
fi fi
@ -71,18 +71,18 @@ _update_v2ray_version() {
_get_latest_version _get_latest_version
if [[ $v2ray_ver != $v2ray_latest_ver ]]; then if [[ $v2ray_ver != $v2ray_latest_ver ]]; then
echo echo
echo -e " $green 咦...发现新版本耶....正在拼命更新.......$none" echo -e " $green Huh... Encontrei uma nova versão.... está desesperadamente atualizando....$none"
echo echo
_download_v2ray_file _download_v2ray_file
do_service restart v2ray do_service restart v2ray
echo echo
echo -e " $green 更新成功啦...当前 V2Ray 版本: ${cyan}$v2ray_latest_ver$none" echo -e " $green A atualização foi bem sucedida...a versão atual do V2Ray: ${cyan}$v2ray_latest_ver$none"
echo echo
echo -e " $yellow 温馨提示: 为了避免出现莫名其妙的问题...V2Ray 客户端的版本最好和服务器的版本保持一致$none" echo -e " $yellow Lembrete: Para evitar problemas inexplicáveis... A versão do cliente V2Ray deve ser consistente com a versão do servidor$none"
echo echo
else else
echo echo
echo -e " $green 木有发现新版本....$none" echo -e " $green Nenhuma nova versão encontrada....$none"
echo echo
fi fi
} }

@ -1,8 +1,8 @@
###---- ###----
echo echo
echo -e "$red V2RAY Telegram MTProto 相关配置暂时不推荐使用 $none" echo -e "$red A configuração relacionada ao V2RAY Telegram MTProto não é recomendada temporariamente $none"
echo echo
echo -e "$green 推荐使用 https://github.com/cutelua/mtg-dist $none" echo -e "$green Uso recomendado https://github.com/cutelua/mtg-dist $none"
echo echo
exit exit
###---- ###----
@ -17,15 +17,15 @@ _view_mtproto_info() {
_mtproto_info() { _mtproto_info() {
[[ -z $ip ]] && get_ip [[ -z $ip ]] && get_ip
echo echo
echo "---------- Telegram MTProto 配置信息 -------------" echo "---------- Informações de configuração do Telegram MTProto -------------"
echo echo
echo -e "$yellow 主机 (Hostname) = $cyan${ip}$none" echo -e "$yellow hospedeiro (Hostname) = $cyan${ip}$none"
echo echo
echo -e "$yellow 端口 (Port) = $cyan$mtproto_port$none" echo -e "$yellow porta (Port) = $cyan$mtproto_port$none"
echo echo
echo -e "$yellow 密钥 (Secret) = $cyan$mtproto_secret$none" echo -e "$yellow chave (Secret) = $cyan$mtproto_secret$none"
echo echo
echo -e "$yellow Telegram 代理配置链接 = ${cyan}https://t.me/proxy?server=${ip}&port=${mtproto_port}&secret=${mtproto_secret}$none" echo -e "$yellow Link de configuração do proxy do Telegram = ${cyan}https://t.me/proxy?server=${ip}&port=${mtproto_port}&secret=${mtproto_secret}$none"
echo echo
} }
_mtproto_main() { _mtproto_main() {
@ -33,15 +33,15 @@ _mtproto_main() {
while :; do while :; do
echo echo
echo -e "$yellow 1. $none查看 Telegram MTProto 配置信息" echo -e "$yellow 1. $none Ver informações de configuração do Telegram MTProto"
echo echo
echo -e "$yellow 2. $none修改 Telegram MTProto 端口" echo -e "$yellow 2. $none Modificar a porta MTProto do Telegram"
echo echo
echo -e "$yellow 3. $none修改 Telegram MTProto 密钥" echo -e "$yellow 3. $none Modificar a chave MTProto do Telegram"
echo echo
echo -e "$yellow 4. $none关闭 Telegram MTProto" echo -e "$yellow 4. $none Fechar Telegram MTProto"
echo echo
read -p "$(echo -e "请选择 [${magenta}1-4$none]:")" _opt read -p "$(echo -e "por favor escolha [${magenta}1-4$none]:")" _opt
if [[ -z $_opt ]]; then if [[ -z $_opt ]]; then
error error
else else
@ -76,13 +76,13 @@ _mtproto_main() {
_mtproto_ask() { _mtproto_ask() {
echo echo
echo echo
echo -e " $red大佬...你没有配置 Telegram MTProto $none...不过现在想要配置的话也是可以的 ^_^" echo -e " $red Chefe...você não configurou o Telegram MTProto $none...mas você pode configurá-lo agora se quiser ^_^"
echo echo
echo echo
new_mtproto_secret="dd$(date | md5sum | cut -c-30)" new_mtproto_secret="dd$(date | md5sum | cut -c-30)"
while :; do while :; do
echo -e "是否配置 ${yellow}Telegram MTProto${none} [${magenta}Y/N$none]" echo -e "Quer configurar ${yellow}Telegram MTProto${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " new_mtproto read -p "$(echo -e "(padrão [${cyan}N$none]):") " new_mtproto
[[ -z "$new_mtproto" ]] && new_mtproto="n" [[ -z "$new_mtproto" ]] && new_mtproto="n"
if [[ "$new_mtproto" == [Yy] ]]; then if [[ "$new_mtproto" == [Yy] ]]; then
echo echo
@ -99,7 +99,7 @@ _mtproto_ask() {
break break
elif [[ "$new_mtproto" == [Nn] ]]; then elif [[ "$new_mtproto" == [Nn] ]]; then
echo echo
echo -e " $green已取消配置 Telegram MTProto ....$none" echo -e " $green Telegram MTProto foi desconfigurado....$none"
echo echo
break break
else else
@ -112,13 +112,13 @@ disable_mtproto() {
echo echo
while :; do while :; do
echo -e "是否关闭 ${yellow}Telegram MTProto${none} [${magenta}Y/N$none]" echo -e "se fechar ${yellow}Telegram MTProto${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " y_n read -p "$(echo -e "(padrão [${cyan}N$none]):") " y_n
[[ -z "$y_n" ]] && y_n="n" [[ -z "$y_n" ]] && y_n="n"
if [[ "$y_n" == [Yy] ]]; then if [[ "$y_n" == [Yy] ]]; then
echo echo
echo echo
echo -e "$yellow 关闭 Telegram MTProto = $cyan是$none" echo -e "$yellow Fechar Telegram MTProto = $cyan是$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause
@ -129,12 +129,12 @@ disable_mtproto() {
echo echo
echo echo
echo echo
echo -e "$green Telegram MTProto 已关闭...不过你也可以随时重新启用 Telegram MTProto ...只要你喜欢$none" echo -e "$green O Telegram MTProto está desativado... mas você sempre pode reativar o Telegram MTProto... como quiser$none"
echo echo
break break
elif [[ "$y_n" == [Nn] ]]; then elif [[ "$y_n" == [Nn] ]]; then
echo echo
echo -e " $green已取消关闭 Telegram MTProto ....$none" echo -e " $green Cancelado fechamento do Telegram MTProto ....$none"
echo echo
break break
else else
@ -147,13 +147,13 @@ mtproto_port_config() {
local random=$(shuf -i20001-65535 -n1) local random=$(shuf -i20001-65535 -n1)
echo echo
while :; do while :; do
echo -e "请输入 "$yellow"Telegram MTProto"$none" 端口 ["$magenta"1-65535"$none"],不能和 "$yellow"V2Ray"$none" 端口相同" echo -e "Por favor, digite "$yellow"Telegram MTProto"$none" port ["$magenta"1-65535"$none"], não pode ser o mesmo que "$yellow"V2Ray"$none" port"
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):") " new_mtproto_port read -p "$(echo -e "(porta padrão: ${cyan}${random}$none):") " new_mtproto_port
[ -z "$new_mtproto_port" ] && new_mtproto_port=$random [ -z "$new_mtproto_port" ] && new_mtproto_port=$random
case $new_mtproto_port in case $new_mtproto_port in
$v2ray_port) $v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo " Nada como a porta V2Ray..."
error error
;; ;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
@ -162,30 +162,30 @@ mtproto_port_config() {
fi fi
if [[ $tls && $new_mtproto_port == "80" ]] || [[ $tls && $new_mtproto_port == "443" ]]; then if [[ $tls && $new_mtproto_port == "80" ]] || [[ $tls && $new_mtproto_port == "443" ]]; then
echo echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none$green HTTP/2"$none" 传输协议." echo -e "Porque você selecionou o transporte "$green"WebSocket + TLS $none ou $green HTTP/2"$none"."
echo echo
echo -e "所以不能选择 "$magenta"80"$none" "$magenta"443"$none" 端口" echo -e "Assim, as portas "$magenta"80"$none" ou "$magenta"443"$none" não podem ser selecionadas"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_mtproto_port || $v2ray_dynamicPort_end == $new_mtproto_port ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_mtproto_port || $v2ray_dynamicPort_end == $new_mtproto_port ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}" echo -e "Desculpe, esta porta está em conflito com a porta dinâmica do V2Ray. O intervalo de portas dinâmicas do V2Ray atual é: ${cyan}$port_range${none}"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_mtproto_port && $new_mtproto_port -le $v2ray_dynamicPort_end ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_mtproto_port && $new_mtproto_port -le $v2ray_dynamicPort_end ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为${cyan}$port_range${none}" echo -e "Desculpe, esta porta está em conflito com a porta dinâmica V2Ray, o intervalo de porta dinâmica V2Ray atual é${cyan}$port_range${none}"
error error
elif [[ $shadowsocks && $new_mtproto_port == $ssport ]]; then elif [[ $shadowsocks && $new_mtproto_port == $ssport ]]; then
echo echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none" echo -e "Desculpe, esta porta está em conflito com a porta Shadowsocks...porta atual do Shadowsocks: ${cyan}$ssport$none"
error error
elif [[ $socks && $new_mtproto_port == $socks_port ]]; then elif [[ $socks && $new_mtproto_port == $socks_port ]]; then
echo echo
echo -e "抱歉, 此端口跟 Socks 端口冲突...当前 Socks 端口: ${cyan}$socks_port$none" echo -e "Desculpe, esta porta está em conflito com a porta Socks...Porta atual do Socks: ${cyan}$socks_port$none"
error error
else else
echo echo
echo echo
echo -e "$yellow Telegram MTProto 端口 = $cyan$new_mtproto_port$none" echo -e "$yellow Porta do Telegram MTProto = $cyan$new_mtproto_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -203,19 +203,19 @@ change_mtproto_secret() {
new_mtproto_secret="dd$(date | md5sum | cut -c-30)" new_mtproto_secret="dd$(date | md5sum | cut -c-30)"
echo echo
while :; do while :; do
read -p "$(echo -e "是否更改 ${yellow}Telegram MTProto 密钥${none} [${magenta}Y/N$none]"): " y_n read -p "$(echo -e "Se deve alterar a chave ${yellow}Telegram MTProto${none} [${magenta}Y/N$none]"): " y_n
[ -z "$y_n" ] && error && continue [ -z "$y_n" ] && error && continue
case $y_n in case $y_n in
n | N) n | N)
echo echo
echo -e " 已取消更改.... " echo -e " Alteração cancelada.... "
echo echo
break break
;; ;;
y | Y) y | Y)
echo echo
echo echo
echo -e "$yellow 更改 Telegram MTProto 密钥 = $cyan是$none" echo -e "$yellow Alterar a chave MTProto do Telegram = $cyan sim$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause
@ -232,18 +232,18 @@ change_mtproto_secret() {
change_mtproto_port() { change_mtproto_port() {
echo echo
while :; do while :; do
echo -e "请输入新的 "$yellow"Telegram MTProto"$none" 端口 ["$magenta"1-65535"$none"]" echo -e "Por favor, digite a nova porta "$yellow"Telegram MTProto"$none" ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(当前端口: ${cyan}${mtproto_port}$none):") " new_mtproto_port read -p "$(echo -e "(porta atual: ${cyan}${mtproto_port}$none):") " new_mtproto_port
[ -z "$new_mtproto_port" ] && error && continue [ -z "$new_mtproto_port" ] && error && continue
case $new_mtproto_port in case $new_mtproto_port in
$mtproto_port) $mtproto_port)
echo echo
echo " 不能跟当前端口一毛一样...." echo " Não pode ser igual à porta atual..."
error error
;; ;;
$v2ray_port) $v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo " Nada como a porta V2Ray..."
error error
;; ;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
@ -252,30 +252,30 @@ change_mtproto_port() {
fi fi
if [[ $tls && $new_mtproto_port == "80" ]] || [[ $tls && $new_mtproto_port == "443" ]]; then if [[ $tls && $new_mtproto_port == "80" ]] || [[ $tls && $new_mtproto_port == "443" ]]; then
echo echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none$green HTTP/2"$none" 传输协议." echo -e"Porque você selecionou o transporte "$green"WebSocket + TLS $none ou $green HTTP/2"$none"."
echo echo
echo -e "所以不能选择 "$magenta"80"$none" "$magenta"443"$none" 端口" echo -e "Assim, as portas "$magenta"80"$none" ou "$magenta"443"$none" não podem ser selecionadas"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_mtproto_port || $v2ray_dynamicPort_end == $new_mtproto_port ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_mtproto_port || $v2ray_dynamicPort_end == $new_mtproto_port ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}" echo -e "Desculpe, esta porta está em conflito com a porta dinâmica do V2Ray, o intervalo de portas dinâmicas do V2Ray atual é: ${cyan}$port_range${none}"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_mtproto_port && $new_mtproto_port -le $v2ray_dynamicPort_end ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_mtproto_port && $new_mtproto_port -le $v2ray_dynamicPort_end ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为:${cyan}$port_range${none}" echo -e " Desculpe, esta porta está em conflito com a porta dinâmica V2Ray. O intervalo de portas dinâmicas V2Ray atual é:${cyan}$port_range${none}"
error error
elif [[ $shadowsocks && $new_mtproto_port == $ssport ]]; then elif [[ $shadowsocks && $new_mtproto_port == $ssport ]]; then
echo echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none" echo -e "Desculpe, esta porta está em conflito com a porta Shadowsocks...porta atual do Shadowsocks: ${cyan}$ssport$none"
error error
elif [[ $socks && $new_mtproto_port == $socks_port ]]; then elif [[ $socks && $new_mtproto_port == $socks_port ]]; then
echo echo
echo -e "抱歉, 此端口跟 Socks 端口冲突...当前 Socks 端口: ${cyan}$socks_port$none" echo -e "Desculpe, esta porta está em conflito com a porta Socks...Porta atual do Socks: ${cyan}$socks_port$none"
error error
else else
echo echo
echo echo
echo -e "$yellow socks 端口 = $cyan$new_mtproto_port$none" echo -e "$yellow porta meias = $cyan$new_mtproto_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause

@ -10,14 +10,14 @@ _qr_create() {
echo echo
qrencode -s 1 -m 1 -t ansi "${vmess}" qrencode -s 1 -m 1 -t ansi "${vmess}"
echo echo
echo "如果无法正常显示二维码,请使用下面的链接来生成二维码:" echo "Se o código QR não puder ser exibido corretamente, use o link abaixo para gerar o código QR:"
echo -e ${cyan}$link${none} echo -e ${cyan}$link${none}
echo echo
echo echo
echo -e "$red 友情提醒: 请务必核对扫码结果 (V2RayNG 除外) $none" echo -e "$red Lembrete amigável: Certifique-se de verificar o resultado da verificação (exceto V2RayNG)$none"
echo echo
echo echo
echo " V2Ray 客户端使用教程: https://233v2.com/post/4/" echo "Tutorial do cliente V2Ray: https://233v2.com/post/4/"
echo echo
echo echo
rm -rf /etc/v2ray/vmess_qr.json rm -rf /etc/v2ray/vmess_qr.json
@ -26,14 +26,14 @@ _ss_qr() {
local ss_link="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#233v2.com_ss_${ip}" local ss_link="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#233v2.com_ss_${ip}"
local link="https://233boy.github.io/tools/qr.html#${ss_link}" local link="https://233boy.github.io/tools/qr.html#${ss_link}"
echo echo
echo "---------- Shadowsocks 二维码 -------------" echo "---------- Código QR Shadowsocks -------------"
echo echo
qrencode -s 1 -m 1 -t ansi "${ss_link}" qrencode -s 1 -m 1 -t ansi "${ss_link}"
echo echo
echo "如果无法正常显示二维码,请使用下面的链接来生成二维码:" echo "Se o código QR não puder ser exibido corretamente, use o link abaixo para gerar o código QR:"
echo -e ${cyan}$link${none} echo -e ${cyan}$link${none}
echo echo
echo -e " 温馨提示...$red Shadowsocks Win 4.0.6 $none客户端可能无法识别该二维码" echo -e " Lembrete...$red Shadowsocks Win 4.0.6 $none cliente pode não reconhecer o código QR"
echo echo
echo echo
} }

@ -8,17 +8,17 @@ _view_socks_info() {
_socks_info() { _socks_info() {
[[ -z $ip ]] && get_ip [[ -z $ip ]] && get_ip
echo echo
echo "---------- Socks 配置信息 -------------" echo "---------- Informações de configuração de meias -------------"
echo echo
echo -e "$yellow 主机 (Hostname) = $cyan${ip}$none" echo -e "$yellow hospedeiro (Hostname) = $cyan${ip}$none"
echo echo
echo -e "$yellow 端口 (Port) = $cyan$socks_port$none" echo -e "$yellow porta (Port) = $cyan$socks_port$none"
echo echo
echo -e "$yellow 用户名 (Username) = $cyan$socks_username$none" echo -e "$yellow nome de usuário (Username) = $cyan$socks_username$none"
echo echo
echo -e "$yellow 密码 (Password) = $cyan$socks_userpass$none" echo -e "$yellow senha (Password) = $cyan$socks_userpass$none"
echo echo
echo -e "$yellow Telegram 代理配置链接 = ${cyan}tg://socks?server=${ip}&port=${socks_port}&user=${socks_username}&pass=${socks_userpass}$none" echo -e "$yellow Link de configuração do proxy do Telegram = ${cyan}tg://socks?server=${ip}&port=${socks_port}&user=${socks_username}&pass=${socks_userpass}$none"
echo echo
} }
_socks_main() { _socks_main() {
@ -26,17 +26,17 @@ _socks_main() {
while :; do while :; do
echo echo
echo -e "$yellow 1. $none查看 Socks 配置信息" echo -e "$yellow 1. $none Ver informações de configuração do Socks"
echo echo
echo -e "$yellow 2. $none修改 Socks 端口" echo -e "$yellow 2. $none Modificar porta Meias"
echo echo
echo -e "$yellow 3. $none修改 Socks 用户名" echo -e "$yellow 3. $none Modificar nome de usuário de meias"
echo echo
echo -e "$yellow 4. $none修改 Socks 密码" echo -e "$yellow 4. $none Modifique a senha do Meias"
echo echo
echo -e "$yellow 5. $none关闭 Socks" echo -e "$yellow 5. $none Fechar meias"
echo echo
read -p "$(echo -e "请选择 [${magenta}1-4$none]:")" _opt read -p "$(echo -e "por favor escolha [${magenta}1-4$none]:")" _opt
if [[ -z $_opt ]]; then if [[ -z $_opt ]]; then
error error
else else
@ -75,13 +75,13 @@ _socks_main() {
_socks_ask() { _socks_ask() {
echo echo
echo echo
echo -e " $red大佬...你没有配置 Socks $none...不过现在想要配置的话也是可以的 ^_^" echo -e " $red Cara grande... você não configurou o Socks $none...mas você pode configurá-lo agora se quiser ^_^"
echo echo
echo echo
while :; do while :; do
echo -e "是否配置 ${yellow}Socks${none} [${magenta}Y/N$none]" echo -e "Quer configurar ${yellow}Socks${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " new_socks read -p "$(echo -e "(padrão [${cyan}N$none]):") " new_socks
[[ -z "$new_socks" ]] && new_socks="n" [[ -z "$new_socks" ]] && new_socks="n"
if [[ "$new_socks" == [Yy] ]]; then if [[ "$new_socks" == [Yy] ]]; then
echo echo
@ -101,7 +101,7 @@ _socks_ask() {
break break
elif [[ "$new_socks" == [Nn] ]]; then elif [[ "$new_socks" == [Nn] ]]; then
echo echo
echo -e " $green已取消配置 Socks ....$none" echo -e " $green Meias desconfiguradas ....$none"
echo echo
break break
else else
@ -114,13 +114,13 @@ disable_socks() {
echo echo
while :; do while :; do
echo -e "是否关闭 ${yellow}Socks${none} [${magenta}Y/N$none]" echo -e "se fechar ${yellow}Socks${none} [${magenta}Y/N$none]"
read -p "$(echo -e "(默认 [${cyan}N$none]):") " y_n read -p "$(echo -e "(padrão [${cyan}N$none]):") " y_n
[[ -z "$y_n" ]] && y_n="n" [[ -z "$y_n" ]] && y_n="n"
if [[ "$y_n" == [Yy] ]]; then if [[ "$y_n" == [Yy] ]]; then
echo echo
echo echo
echo -e "$yellow 关闭 Socks = $cyan是$none" echo -e "$yellow Fechar meias = $cyan sim$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause
@ -131,12 +131,12 @@ disable_socks() {
echo echo
echo echo
echo echo
echo -e "$green Socks 已关闭...不过你也可以随时重新启用 Socks ...只要你喜欢$none" echo -e "$green As meias estão desativadas... mas você sempre pode reativar as meias... se quiser$none"
echo echo
break break
elif [[ "$y_n" == [Nn] ]]; then elif [[ "$y_n" == [Nn] ]]; then
echo echo
echo -e " $green已取消关闭 Socks ....$none" echo -e " $green Fechar Meias cancelada....$none"
echo echo
break break
else else
@ -149,13 +149,13 @@ socks_port_config() {
local random=$(shuf -i20001-65535 -n1) local random=$(shuf -i20001-65535 -n1)
echo echo
while :; do while :; do
echo -e "请输入 "$yellow"Socks"$none" 端口 ["$magenta"1-65535"$none"],不能和 "$yellow"V2Ray"$none" 端口相同" echo -e "Por favor, insira a porta "$yellow"Meias"$none" ["$magenta"1-65535"$none"], não pode ser a mesma que a porta "$yellow"V2Ray"$none""
read -p "$(echo -e "(默认端口: ${cyan}${random}$none):") " new_socks_port read -p "$(echo -e "(porta padrão: ${cyan}${random}$none):") " new_socks_port
[ -z "$new_socks_port" ] && new_socks_port=$random [ -z "$new_socks_port" ] && new_socks_port=$random
case $new_socks_port in case $new_socks_port in
$v2ray_port) $v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo "Não pode ser tão ruim quanto a porta V2Ray...."
error error
;; ;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
@ -164,30 +164,30 @@ socks_port_config() {
fi fi
if [[ $tls && $new_socks_port == "80" ]] || [[ $tls && $new_socks_port == "443" ]]; then if [[ $tls && $new_socks_port == "80" ]] || [[ $tls && $new_socks_port == "443" ]]; then
echo echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none$green HTTP/2"$none" 传输协议." echo -e "Porque você selecionou o transporte "$green"WebSocket + TLS $none ou $green HTTP/2"$none"."
echo echo
echo -e "所以不能选择 "$magenta"80"$none" "$magenta"443"$none" 端口" echo -e "Assim, as portas "$magenta"80"$none" ou "$magenta"443"$none" não podem ser selecionadas"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_socks_port || $v2ray_dynamicPort_end == $new_socks_port ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_socks_port || $v2ray_dynamicPort_end == $new_socks_port ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为${cyan}$port_range${none}" echo -e " Desculpe, esta porta está em conflito com a porta dinâmica V2Ray, o intervalo de porta dinâmica V2Ray atual é${cyan}$port_range${none}"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_socks_port && $new_socks_port -le $v2ray_dynamicPort_end ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_socks_port && $new_socks_port -le $v2ray_dynamicPort_end ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为${cyan}$port_range${none}" echo -e " Desculpe, esta porta está em conflito com a porta dinâmica V2Ray, o intervalo de porta dinâmica V2Ray atual é${cyan}$port_range${none}"
error error
elif [[ $shadowsocks && $new_socks_port == $ssport ]]; then elif [[ $shadowsocks && $new_socks_port == $ssport ]]; then
echo echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none" echo -e "Desculpe, esta porta está em conflito com a porta Shadowsocks...Porta atual do Shadowsocks: ${cyan}$ssport$none"
error error
elif [[ $mtproto && $new_socks_port == $mtproto_port ]]; then elif [[ $mtproto && $new_socks_port == $mtproto_port ]]; then
echo echo
echo -e "抱歉, 此端口跟 MTProto 端口冲突...当前 MTProto 端口: ${cyan}$mtproto_port$none" echo -e "Desculpe, esta porta está em conflito com a porta MTProto...porta MTProto atual: ${cyan}$mtproto_port$none"
error error
else else
echo echo
echo echo
echo -e "$yellow Socks 端口 = $cyan$new_socks_port$none" echo -e "$yellow Porta meias = $cyan$new_socks_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -204,19 +204,19 @@ socks_port_config() {
socks_user_config() { socks_user_config() {
echo echo
while :; do while :; do
read -p "$(echo -e "请输入$yellow用户名$none...(默认用户名: ${cyan}233blog$none)"): " new_socks_username read -p "$(echo -e "Por favor, digite $yellow username $none...(username default: ${cyan}233blog$none)"): " new_socks_username
[ -z "$new_socks_username" ] && new_socks_username="233blog" [ -z "$new_socks_username" ] && new_socks_username="233blog"
case $new_socks_username in case $new_socks_username in
*[/$]* | *\&*) *[/$]* | *\&*)
echo echo
echo -e " 由于这个脚本太辣鸡了..所以用户名不能包含$red / $none或$red $ $none$red & $none这三个符号.... " echo -e " Porque este script é muito picante .. então o nome de usuário não pode conter os três símbolos $red / $none ou $red $ $none ou $red & $none .... "
echo echo
error error
;; ;;
*) *)
echo echo
echo echo
echo -e "$yellow 用户名 = $cyan$new_socks_username$none" echo -e "$yellow nome de usuário = $cyan$new_socks_username$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -228,19 +228,19 @@ socks_user_config() {
socks_pass_config() { socks_pass_config() {
echo echo
while :; do while :; do
read -p "$(echo -e "请输入$yellow密码$none...(默认密码: ${cyan}233blog.com$none)"): " new_socks_userpass read -p "$(echo -e "Por favor, digite a senha $yellow $none...(senha padrão: ${cyan}233blog.com$none)")): " new_socks_userpass
[ -z "$new_socks_userpass" ] && new_socks_userpass="233blog.com" [ -z "$new_socks_userpass" ] && new_socks_userpass="233blog.com"
case $new_socks_userpass in case $new_socks_userpass in
*[/$]* | *\&*) *[/$]* | *\&*)
echo echo
echo -e " 由于这个脚本太辣鸡了..所以密码不能包含$red / $none或$red $ $none$red & $none这三个符号.... " echo -e " Porque este script é muito picante .. então a senha não pode conter os três símbolos $red / $none ou $red $ $none ou $red & $none .... "
echo echo
error error
;; ;;
*) *)
echo echo
echo echo
echo -e "$yellow 密码 = $cyan$new_socks_userpass$none" echo -e "$yellow senha = $cyan$new_socks_userpass$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
break break
@ -251,25 +251,25 @@ socks_pass_config() {
change_socks_user_config() { change_socks_user_config() {
echo echo
while :; do while :; do
read -p "$(echo -e "请输入$yellow用户名$none...(当前用户名: ${cyan}$socks_username$none)"): " new_socks_username read -p "$(echo -e "Por favor, digite $yellow username $none...(Nome de usuário atual: ${cyan}$socks_username$none)"): " new_socks_username
[ -z "$new_socks_username" ] && error && continue [ -z "$new_socks_username" ] && error && continue
case $new_socks_username in case $new_socks_username in
$socks_username) $socks_username)
echo echo
echo -e " 大佬...跟 当前用户名 一毛一样啊...修改个鸡鸡哦 " echo -e " Cara grande... é o mesmo que o nome de usuário atual... modifique um pau."
echo echo
error error
;; ;;
*[/$]* | *\&*) *[/$]* | *\&*)
echo echo
echo -e " 由于这个脚本太辣鸡了..所以用户名不能包含$red / $none或$red $ $none$red & $none这三个符号.... " echo -e " Porque este script é muito picante .. então o nome de usuário não pode conter os três símbolos $red / $none ou $red $ $none ou $red & $none ...."
echo echo
error error
;; ;;
*) *)
echo echo
echo echo
echo -e "$yellow 用户名 = $cyan$new_socks_username$none" echo -e "$yellow nome de usuário = $cyan$new_socks_username$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause
@ -286,18 +286,18 @@ change_socks_user_config() {
change_socks_pass_config() { change_socks_pass_config() {
echo echo
while :; do while :; do
read -p "$(echo -e "请输入$yellow密码$none...(当前密码: ${cyan}$socks_userpass$none)"): " new_socks_userpass read -p "$(echo -e "Por favor, digite a senha $yellow $none...(senha atual: ${cyan}$socks_userpass$none)"): " new_socks_userpass
[ -z "$new_socks_userpass" ] && error && continue [ -z "$new_socks_userpass" ] && error && continue
case $new_socks_userpass in case $new_socks_userpass in
$socks_userpass) $socks_userpass)
echo echo
echo -e " 大佬...跟 当前密码 一毛一样啊...修改个鸡鸡哦 " echo -e " Cara grande... é a mesma senha atual... modifique algo"
echo echo
error error
;; ;;
*[/$]* | *\&*) *[/$]* | *\&*)
echo echo
echo -e " 由于这个脚本太辣鸡了..所以密码不能包含$red / $none或$red $ $none$red & $none这三个符号.... " echo -e " Porque este script é muito picante .. então a senha não pode conter os três símbolos $red / $none ou $red $ $none ou $red & $none ...."
echo echo
error error
;; ;;
@ -321,18 +321,18 @@ change_socks_pass_config() {
change_socks_port_config() { change_socks_port_config() {
echo echo
while :; do while :; do
echo -e "请输入新的 "$yellow"Socks"$none" 端口 ["$magenta"1-65535"$none"]" echo -e "Por favor, insira a nova porta "$yellow"Meias"$none" ["$magenta"1-65535"$none"]"
read -p "$(echo -e "(当前端口: ${cyan}${socks_port}$none):") " new_socks_port read -p "$(echo -e "(porta atual: ${cyan}${socks_port}$none):") " new_socks_port
[ -z "$new_socks_port" ] && error && continue [ -z "$new_socks_port" ] && error && continue
case $new_socks_port in case $new_socks_port in
$socks_port) $socks_port)
echo echo
echo " 不能和当前端口一毛一样...." echo " Não pode ser o mesmo que a porta atual...."
error error
;; ;;
$v2ray_port) $v2ray_port)
echo echo
echo " 不能和 V2Ray 端口一毛一样...." echo " Não pode ser o mesmo que a porta V2Ray...."
error error
;; ;;
[1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5]) [1-9] | [1-9][0-9] | [1-9][0-9][0-9] | [1-9][0-9][0-9][0-9] | [1-5][0-9][0-9][0-9][0-9] | 6[0-4][0-9][0-9][0-9] | 65[0-4][0-9][0-9] | 655[0-3][0-5])
@ -341,30 +341,30 @@ change_socks_port_config() {
fi fi
if [[ $tls && $new_socks_port == "80" ]] || [[ $tls && $new_socks_port == "443" ]]; then if [[ $tls && $new_socks_port == "80" ]] || [[ $tls && $new_socks_port == "443" ]]; then
echo echo
echo -e "由于你已选择了 "$green"WebSocket + TLS $none$green HTTP/2"$none" 传输协议." echo -e "Como você selecionou o transporte "$green"WebSocket + TLS $none ou $green HTTP/2"$none"."
echo echo
echo -e "所以不能选择 "$magenta"80"$none" "$magenta"443"$none" 端口" echo -e "Portanto, as portas "$magenta"80"$none" ou "$magenta"443"$none" não podem ser selecionadas"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_socks_port || $v2ray_dynamicPort_end == $new_socks_port ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start == $new_socks_port || $v2ray_dynamicPort_end == $new_socks_port ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为${cyan}$port_range${none}" echo -e " Desculpe, esta porta está em conflito com a porta dinâmica V2Ray, o intervalo de porta dinâmica V2Ray atual é${cyan}$port_range${none}"
error error
elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_socks_port && $new_socks_port -le $v2ray_dynamicPort_end ]]; then elif [[ $dynamicPort ]] && [[ $v2ray_dynamicPort_start -lt $new_socks_port && $new_socks_port -le $v2ray_dynamicPort_end ]]; then
echo echo
echo -e " 抱歉,此端口和 V2Ray 动态端口 冲突,当前 V2Ray 动态端口范围为${cyan}$port_range${none}" echo -e " Desculpe, esta porta está em conflito com a porta dinâmica V2Ray, o intervalo de porta dinâmica V2Ray atual é${cyan}$port_range${none}"
error error
elif [[ $shadowsocks && $new_socks_port == $ssport ]]; then elif [[ $shadowsocks && $new_socks_port == $ssport ]]; then
echo echo
echo -e "抱歉, 此端口跟 Shadowsocks 端口冲突...当前 Shadowsocks 端口: ${cyan}$ssport$none" echo -e "Desculpe, esta porta está em conflito com a porta Shadowsocks...porta atual do Shadowsocks: ${cyan}$ssport$none"
error error
elif [[ $mtproto && $new_socks_port == $mtproto_port ]]; then elif [[ $mtproto && $new_socks_port == $mtproto_port ]]; then
echo echo
echo -e "抱歉, 此端口跟 MTProto 端口冲突...当前 MTProto 端口: ${cyan}$mtproto_port$none" echo -e "Desculpe, esta porta está em conflito com a porta MTProto...porta MTProto atual: ${cyan}$mtproto_port$none"
error error
else else
echo echo
echo echo
echo -e "$yellow socks 端口 = $cyan$new_socks_port$none" echo -e "$yellow porta meias = $cyan$new_socks_port$none"
echo "----------------------------------------------------------------" echo "----------------------------------------------------------------"
echo echo
pause pause

@ -2,22 +2,22 @@
if [[ $shadowsocks ]]; then if [[ $shadowsocks ]]; then
local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#233v2.com_ss_${ip}" local ss="ss://$(echo -n "${ssciphers}:${sspass}@${ip}:${ssport}" | base64 -w 0)#233v2.com_ss_${ip}"
echo echo
echo "---------- Shadowsocks 配置信息 -------------" echo "---------- Informações de configuração do Shadowsocks -------------"
echo echo
echo -e "$yellow 服务器地址 = $cyan${ip}$none" echo -e "$yellow endereço do servidor = $cyan${ip}$none"
echo echo
echo -e "$yellow 服务器端口 = $cyan$ssport$none" echo -e "$yellow porta do servidor = $cyan$ssport$none"
echo echo
echo -e "$yellow 密码 = $cyan$sspass$none" echo -e "$yellow senha = $cyan$sspass$none"
echo echo
echo -e "$yellow 加密协议 = $cyan${ssciphers}$none" echo -e "$yellow protocolo de criptografia = $cyan${ssciphers}$none"
echo echo
echo -e "$yellow SS 链接 = ${cyan}$ss$none" echo -e "$yellow link SS= ${cyan}$ss$none"
echo echo
echo -e " 备注: $red Shadowsocks Win 4.0.6 $none 客户端可能无法识别该 SS 链接" echo -e " Nota: $red Shadowsocks Win 4.0.6 $none cliente pode não reconhecer o link SS"
echo echo
echo -e "提示: 输入 $cyan v2ray ssqr $none 可生成 Shadowsocks 二维码链接" echo -e "Dica: digite $cyan v2ray ssqr $none para gerar um link de código QR do Shadowsocks"
echo echo
echo -e "${yellow}免被墙..推荐使用JMS: ${cyan}https://getjms.com${none}" echo -e "${yellow}Livre de ser emparedado. JMS é recomendado: ${cyan}https://getjms.com${none}"
echo echo
fi fi

@ -1,6 +1,6 @@
while :; do while :; do
echo echo
read -p "$(echo -e "是否卸载 ${yellow}V2Ray$none [${magenta}Y/N$none]:")" uninstall_v2ray_ask read -p "$(echo -e "Quer desinstalar ${yellow}V2Ray$none [${magenta}Y/N$none]:")" uninstall_v2ray_ask
if [[ -z $uninstall_v2ray_ask ]]; then if [[ -z $uninstall_v2ray_ask ]]; then
error error
else else
@ -8,13 +8,13 @@ while :; do
Y | y) Y | y)
is_uninstall_v2ray=true is_uninstall_v2ray=true
echo echo
echo -e "$yellow 卸载 V2Ray = ${cyan}${none}" echo -e "$yellow Desinstalar V2Ray = ${cyan}sim${none}"
echo echo
break break
;; ;;
N | n) N | n)
echo echo
echo -e "$red 卸载已取消...$none" echo -e "$red Desinstalação cancelada...$none"
echo echo
break break
;; ;;
@ -28,7 +28,7 @@ done
if [[ $caddy && $is_uninstall_v2ray ]] && [[ -f /usr/local/bin/caddy && -f /etc/caddy/Caddyfile ]]; then if [[ $caddy && $is_uninstall_v2ray ]] && [[ -f /usr/local/bin/caddy && -f /etc/caddy/Caddyfile ]]; then
while :; do while :; do
echo echo
read -p "$(echo -e "是否卸载 ${yellow}Caddy$none [${magenta}Y/N$none]:")" uninstall_caddy_ask read -p "$(echo -e "Quer desinstalar ${yellow}Caddy$none [${magenta}Y/N$none]:")" uninstall_caddy_ask
if [[ -z $uninstall_caddy_ask ]]; then if [[ -z $uninstall_caddy_ask ]]; then
error error
else else
@ -36,13 +36,13 @@ if [[ $caddy && $is_uninstall_v2ray ]] && [[ -f /usr/local/bin/caddy && -f /etc/
Y | y) Y | y)
is_uninstall_caddy=true is_uninstall_caddy=true
echo echo
echo -e "$yellow 卸载 Caddy = ${cyan}${none}" echo -e "$yellow Desinstalar Caddy = ${cyan}sim${none}"
echo echo
break break
;; ;;
N | n) N | n)
echo echo
echo -e "$yellow 卸载 Caddy = ${cyan}${none}" echo -e "$yellow Desinstalar Caddy = ${cyan}nao${none}"
echo echo
break break
;; ;;
@ -110,11 +110,11 @@ if [[ $is_uninstall_v2ray && $is_uninstall_caddy ]]; then
fi fi
# clear # clear
echo echo
echo -e "$green V2Ray 卸载完成啦 ....$none" echo -e "$green A desinstalação do V2Ray está concluída ....$none"
echo echo
echo "如果你觉得这个脚本有哪些地方不够好的话...请告诉我" echo "Se você não acha que este script é bom o suficiente... me avise"
echo echo
echo "反馈问题: https://github.com/233boy/v2ray/issues" echo "perguntas de feedback: https://github.com/233boy/v2ray/issues"
echo echo
elif [[ $is_uninstall_v2ray ]]; then elif [[ $is_uninstall_v2ray ]]; then
@ -161,10 +161,10 @@ elif [[ $is_uninstall_v2ray ]]; then
fi fi
# clear # clear
echo echo
echo -e "$green V2Ray 卸载完成啦 ....$none" echo -e "$green A desinstalação do V2Ray está concluída ....$none"
echo echo
echo "如果你觉得这个脚本有哪些地方不够好的话...请告诉我" echo "Se você acha que este script não é bom o suficiente..."
echo echo
echo "反馈问题: https://github.com/233boy/v2ray/issues" echo "perguntas de feedback: https://github.com/233boy/v2ray/issues"
echo echo
fi fi

@ -73,94 +73,94 @@ _v2_args() {
_v2_info() { _v2_info() {
echo echo
echo echo
echo "---------- V2Ray 配置信息 -------------" echo "---------- Informações de configuração do V2Ray -------------"
if [[ $v2ray_transport == [45] ]]; then if [[ $v2ray_transport == [45] ]]; then
if [[ ! $caddy ]]; then if [[ ! $caddy ]]; then
echo echo
echo -e " $red警告$none$yellow请自行配置 TLS...教程: https://233v2.com/post/3/$none" echo -e " $red aviso! $none$yellow Configure o TLS você mesmo...tutorial: https://233v2.com/post/3/$none"
fi fi
echo echo
echo -e "$yellow 地址 (Address) = $cyan${domain}$none" echo -e "$yellow Endereço (Address) = $cyan${domain}$none"
echo echo
echo -e "$yellow 端口 (Port) = ${cyan}443${none}" echo -e "$yellow porta (Port) = ${cyan}443${none}"
echo echo
echo -e "$yellow 用户ID (User ID / UUID) = $cyan${v2ray_id}$none" echo -e "$yellow ID do usuário (User ID / UUID) = $cyan${v2ray_id}$none"
echo echo
echo -e "$yellow 额外ID (Alter Id) = ${cyan}${alterId}${none}" echo -e "$yellow ID extra (Alter Id) = ${cyan}${alterId}${none}"
echo echo
echo -e "$yellow 传输协议 (Network) = ${cyan}${net}$none" echo -e "$yellow Protocolo de Transferência (Network) = ${cyan}${net}$none"
echo echo
echo -e "$yellow 伪装类型 (header type) = ${cyan}${header}$none" echo -e "$yellow tipo de camuflagem (header type) = ${cyan}${header}$none"
echo echo
echo -e "$yellow 伪装域名 (host) = ${cyan}${domain}$none" echo -e "$yellow nome de domínio falso (host) = ${cyan}${domain}$none"
echo echo
echo -e "$yellow 路径 (path) = ${cyan}${_path}$none" echo -e "$yellow caminho (path) = ${cyan}${_path}$none"
echo echo
echo -e "$yellow 底层传输安全 (TLS) = ${cyan}tls$none" echo -e "$yellow segurança de transporte subjacente (TLS) = ${cyan}tls$none"
echo echo
if [[ $ban_ad ]]; then if [[ $ban_ad ]]; then
echo " 备注: 广告拦截已开启.." echo " Observação: o bloqueio de anúncios está ativado."
echo echo
fi fi
elif [[ $v2ray_transport == 33 ]]; then elif [[ $v2ray_transport == 33 ]]; then
echo echo
echo -e "$green ---提示..这是 VLESS 服务器配置--- $none" echo -e "$green ---DICA..ESTA É A CONFIGURAÇÃO DO SERVIDOR VLESS--- $none"
echo echo
echo -e "$yellow 地址 (Address) = $cyan${domain}$none" echo -e "$yellow Endereço (Address) = $cyan${domain}$none"
echo echo
echo -e "$yellow 端口 (Port) = ${cyan}443${none}" echo -e "$yellow porta (Port) = ${cyan}443${none}"
echo echo
echo -e "$yellow 用户ID (User ID / UUID) = $cyan${v2ray_id}$none" echo -e "$yellow ID do usuário (User ID / UUID) = $cyan${v2ray_id}$none"
echo echo
echo -e "$yellow 流控 (Flow) = ${cyan}${none}" echo -e "$yellow Controle de fluxo (Flow) = ${cyan}${none}"
echo echo
echo -e "$yellow 加密 (Encryption) = ${cyan}none${none}" echo -e "$yellow criptografia (Encryption) = ${cyan}none${none}"
echo echo
echo -e "$yellow 传输协议 (Network) = ${cyan}${net}$none" echo -e "$yellow Protocolo de Transferência (Network) = ${cyan}${net}$none"
echo echo
echo -e "$yellow 伪装类型 (header type) = ${cyan}${header}$none" echo -e "$yellow tipo de camuflagem (header type) = ${cyan}${header}$none"
echo echo
echo -e "$yellow 伪装域名 (host) = ${cyan}${domain}$none" echo -e "$yellow nome de domínio falso (host) = ${cyan}${domain}$none"
echo echo
echo -e "$yellow 路径 (path) = ${cyan}${_path}$none" echo -e "$yellow caminho (path) = ${cyan}${_path}$none"
echo echo
echo -e "$yellow 底层传输安全 (TLS) = ${cyan}tls$none" echo -e "$yellow segurança de transporte subjacente (TLS) = ${cyan}tls$none"
echo echo
if [[ $ban_ad ]]; then if [[ $ban_ad ]]; then
echo " 备注: 广告拦截已开启.." echo " Observação: o bloqueio de anúncios está ativado.."
echo echo
fi fi
else else
echo echo
echo -e "$yellow 地址 (Address) = $cyan${ip}$none" echo -e "$yellow Endereço (Address) = $cyan${ip}$none"
echo echo
echo -e "$yellow 端口 (Port) = $cyan$v2ray_port$none" echo -e "$yellow porta (Port) = $cyan$v2ray_port$none"
echo echo
echo -e "$yellow 用户ID (User ID / UUID) = $cyan${v2ray_id}$none" echo -e "$yellow ID do usuário (User ID / UUID) = $cyan${v2ray_id}$none"
echo echo
echo -e "$yellow 额外ID (Alter Id) = ${cyan}${alterId}${none}" echo -e "$yellow ID extra (Alter Id) = ${cyan}${alterId}${none}"
echo echo
echo -e "$yellow 传输协议 (Network) = ${cyan}${net}$none" echo -e "$yellow Protocolo de Transferência (Network) = ${cyan}${net}$none"
echo echo
echo -e "$yellow 伪装类型 (header type) = ${cyan}${header}$none" echo -e "$yellow tipo de camuflagem (header type) = ${cyan}${header}$none"
echo echo
fi fi
if [[ $v2ray_transport -ge 18 && $v2ray_transport -ne 33 ]] && [[ $ban_ad ]]; then if [[ $v2ray_transport -ge 18 && $v2ray_transport -ne 33 ]] && [[ $ban_ad ]]; then
echo " 备注: 动态端口已启用...广告拦截已开启..." echo " Observação: portas dinâmicas ativadas...Bloqueio de anúncios ativado..."
echo echo
elif [[ $v2ray_transport -ge 18 && $v2ray_transport -ne 33 ]]; then elif [[ $v2ray_transport -ge 18 && $v2ray_transport -ne 33 ]]; then
echo " 备注: 动态端口已启用..." echo " Nota: As portas dinâmicas estão habilitadas..."
echo echo
elif [[ $ban_ad ]]; then elif [[ $ban_ad ]]; then
echo " 备注: 广告拦截已开启.." echo "Observação: o bloqueio de anúncios está ativado..."
echo echo
fi fi
echo "---------- END -------------" echo "---------- FIM -------------"
echo echo
echo "V2Ray 客户端使用教程: https://233v2.com/post/4/" echo "Tutorial do cliente V2Ray: https://233v2.com/post/4/"
echo echo
echo -e "提示: 输入 $cyan v2ray url $none 可生成 vmess URL 链接 / 输入 $cyan v2ray qr $none 可生成二维码链接" echo -e "Dica: digite $cyan v2ray url $none para gerar um link de URL vmess / digite $cyan v2ray qr $none para gerar um link de código QR"
echo echo
echo -e "${yellow}免被墙..推荐使用JMS: ${cyan}https://getjms.com${none}" echo -e "${yellow}Livre de ser emparedado. JMS é recomendado: ${cyan}https://getjms.com${none}"
echo echo
} }

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save