From 83d1e045a93a7acc32bc1a83dd35cb379581f7ec Mon Sep 17 00:00:00 2001 From: 233boy <31657650+233boy@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:24:23 +0800 Subject: [PATCH] fix jq install; dns check --- README.md | 1 + install.sh | 40 +++++++++++++++++++++++++++++++++------- src/caddy.sh | 4 ++++ src/core.sh | 27 ++++++++++++++++++++------- src/download.sh | 4 ++++ src/help.sh | 1 + src/init.sh | 2 +- v2ray.sh | 2 +- 8 files changed, 65 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8fde531..e42d15e 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ Usage: v2ray [options]... [args]... dd, ddel [name...] 删除多个配置** fix [name] 修复一个配置 fix-all 修复全部配置 + fix-caddyfile 修复 Caddyfile fix-config.json 修复 config.json 管理: diff --git a/install.sh b/install.sh index 1741f29..221f08c 100644 --- a/install.sh +++ b/install.sh @@ -49,9 +49,11 @@ is_wget=$(type -P wget) # x64 case $(uname -m) in amd64 | x86_64) + is_jq_arch=amd64 is_core_arch="64" ;; *aarch64* | *armv8*) + is_jq_arch=arm64 is_core_arch="arm64-v8a" ;; *) @@ -69,13 +71,15 @@ is_log_dir=/var/log/$is_core is_sh_bin=/usr/local/bin/$is_core is_sh_dir=$is_core_dir/sh is_sh_repo=$author/$is_core -is_pkg="wget unzip jq" +is_pkg="wget unzip" is_config_json=$is_core_dir/config.json tmp_var_lists=( tmpcore tmpsh + tmpjq is_core_ok is_sh_ok + is_jq_ok is_pkg_ok ) @@ -169,6 +173,12 @@ download() { tmpfile=$tmpsh is_ok=$is_sh_ok ;; + jq) + link=https://github.com/jqlang/jq/releases/download/jq-1.7rc1/jq-linux-$is_jq_arch + name="jq" + tmpfile=$tmpjq + is_ok=$is_jq_ok + ;; esac msg warn "下载 ${name} > ${link}" @@ -179,8 +189,8 @@ download() { # get server ip get_ip() { - export "$(_wget -4 -qO- https://www.cloudflare.com/cdn-cgi/trace | grep ip=)" &>/dev/null - [[ -z $ip ]] && export "$(_wget -6 -qO- https://www.cloudflare.com/cdn-cgi/trace | grep ip=)" &>/dev/null + export "$(_wget -4 -qO- https://cloudflare-dns.com/cdn-cgi/trace | grep ip=)" &>/dev/null + [[ -z $ip ]] && export "$(_wget -6 -qO- https://cloudflare-dns.com/cdn-cgi/trace | grep ip=)" &>/dev/null } # check background tasks status @@ -201,11 +211,16 @@ check_status() { msg err "下载 ${is_core_name} 脚本失败" is_fail=1 } + [[ ! -f $is_jq_ok ]] && { + msg err "下载 jq 失败" + is_fail=1 + } else [[ ! $is_fail ]] && { is_wget=1 [[ ! $is_core_file ]] && download core & [[ ! $local_install ]] && download sh & + [[ $jq_not_found ]] && download jq & get_ip wait check_status @@ -308,7 +323,7 @@ main() { # if is_core_file, copy file [[ $is_core_file ]] && { cp -f $is_core_file $is_core_ok - msg warn "${is_core_name} 文件使用 > ${yellow}$is_core_file${none}" + msg warn "${yellow}${is_core_name} 文件使用 > $is_core_file${none}" } # local dir install sh script [[ $local_install ]] && { @@ -324,10 +339,17 @@ main() { # install dependent pkg install_pkg $is_pkg & - # if wget installed. download core, sh, get ip + # jq + if [[ $(type -P jq) ]]; then + >$is_jq_ok + else + jq_not_found=1 + fi + # if wget installed. download core, sh, jq, get ip [[ $is_wget ]] && { [[ ! $is_core_file ]] && download core & [[ ! $local_install ]] && download sh & + [[ $jq_not_found ]] && download jq & get_ip } @@ -377,14 +399,18 @@ main() { else unzip -qo $is_core_ok -d $is_core_dir/bin fi - chmod +x $is_core_bin # add alias echo "alias $is_core=$is_sh_bin" >>/root/.bashrc # core command ln -sf $is_sh_dir/$is_core.sh $is_sh_bin - chmod +x $is_sh_bin + + # jq + [[ $jq_not_found ]] && mv -f $is_jq_ok /usr/bin/jq + + # chmod + chmod +x $is_core_bin $is_sh_bin /usr/bin/jq # create log dir mkdir -p $is_log_dir diff --git a/src/caddy.sh b/src/caddy.sh index 177da84..3ad01e7 100644 --- a/src/caddy.sh +++ b/src/caddy.sh @@ -8,6 +8,10 @@ caddy_config() { # for more info, see https://233boy.com/$is_core/caddy-auto-tls/ # 不要编辑这个文件 # # 更多相关请阅读此文章: https://233boy.com/$is_core/caddy-auto-tls/ +# https://caddyserver.com/docs/caddyfile/options +{ + admin off +} import $is_caddy_conf/*.conf import $is_caddy_dir/sites/*.conf EOF diff --git a/src/core.sh b/src/core.sh index bb0a7e7..af137f4 100644 --- a/src/core.sh +++ b/src/core.sh @@ -125,8 +125,8 @@ get_uuid() { get_ip() { [[ $ip || $is_no_auto_tls || $is_gen ]] && return - export "$(_wget -4 -qO- https://www.cloudflare.com/cdn-cgi/trace | grep ip=)" &>/dev/null - [[ ! $ip ]] && export "$(_wget -6 -qO- https://www.cloudflare.com/cdn-cgi/trace | grep ip=)" &>/dev/null + export "$(_wget -4 -qO- https://cloudflare-dns.com/cdn-cgi/trace | grep ip=)" &>/dev/null + [[ ! $ip ]] && export "$(_wget -6 -qO- https://cloudflare-dns.com/cdn-cgi/trace | grep ip=)" &>/dev/null [[ ! $ip ]] && { err "获取服务器 IP 失败.." } @@ -1061,7 +1061,7 @@ add() { fi if [[ $is_use_tls ]]; then - if [[ ! $is_no_auto_tls && ! $is_caddy ]]; then + if [[ ! $is_no_auto_tls && ! $is_caddy && ! $is_gen ]]; then # test auto tls [[ $(is_test port_used 80) || $(is_test port_used 443) ]] && { warn "端口 (80 或 443) 已经被占用, 无法完成自动配置 TLS. 请考虑使用 no-auto-tls" @@ -1383,9 +1383,12 @@ get() { [[ $? != 0 ]] && err "无法生成 Shadowsocks 2022 密码, 请安装 openssl." ;; ping) - is_ip_type="-4" - [[ $(grep ":" <<<$ip) ]] && is_ip_type="-6" - is_host_dns=$(ping $host $is_ip_type -c 1 -W 2 | head -1) + # is_ip_type="-4" + # [[ $(grep ":" <<<$ip) ]] && is_ip_type="-6" + # is_host_dns=$(ping $host $is_ip_type -c 1 -W 2 | head -1) + is_dns_type="a" + [[ $(grep ":" <<<$ip) ]] && is_dns_type="aaaa" + is_host_dns=$(_wget -qO- --header="accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=$host&type=$is_dns_type") ;; log | logerr) msg "\n 提醒: 按 $(_green Ctrl + C) 退出\n" @@ -1760,7 +1763,7 @@ main() { msg "fix: $v" change $v full done - msg "\nfix 完成.\n" + _green "\nfix 完成.\n" ;; *) is_dont_auto_exit=1 @@ -1785,6 +1788,16 @@ main() { fix-config.json) create config.json ;; + fix-caddyfile) + if [[ $is_caddy ]]; then + load caddy.sh + caddy_config new + manage restart caddy & + _green "\nfix 完成.\n" + else + err "无法执行此操作" + fi + ;; i | info) info $2 ;; diff --git a/src/download.sh b/src/download.sh index e0f6eac..cb43abc 100644 --- a/src/download.sh +++ b/src/download.sh @@ -51,6 +51,10 @@ download() { # https://github.com/caddyserver/caddy/releases/download/v2.6.4/caddy_2.6.4_linux_amd64.tar.gz link="https://github.com/${is_caddy_repo}/releases/download/${latest_ver}/caddy_${latest_ver:1}_linux_${caddy_arch}.tar.gz" download_file + [[ ! $(type -P tar) ]] && { + rm -rf $tmpdir + err "请安装 tar" + } tar zxf $tmpfile -C $tmpdir cp -f $tmpdir/caddy $is_caddy_bin chmod +x $is_caddy_bin diff --git a/src/help.sh b/src/help.sh index aec89b0..e748823 100644 --- a/src/help.sh +++ b/src/help.sh @@ -43,6 +43,7 @@ show_help() { " dd, ddel [name...] 删除多个配置**" " fix [name] 修复一个配置" " fix-all 修复全部配置" + " fix-caddyfile 修复 Caddyfile" " fix-config.json 修复 config.json\n" "管理:" " un, uninstall 卸载" diff --git a/src/init.sh b/src/init.sh index 30ff055..d7895b4 100644 --- a/src/init.sh +++ b/src/init.sh @@ -128,7 +128,7 @@ load() { # wget add --no-check-certificate _wget() { # [[ $proxy ]] && export https_proxy=$proxy - wget --no-check-certificate $@ + wget --no-check-certificate "$@" } load core.sh diff --git a/v2ray.sh b/v2ray.sh index 0948a09..027dc76 100644 --- a/v2ray.sh +++ b/v2ray.sh @@ -1,6 +1,6 @@ #!/bin/bash args=$@ -is_sh_ver=v4.12 +is_sh_ver=v4.13 . /etc/v2ray/sh/src/init.sh