From 4c0123184e37b45a51b48a90d04a95a359de41ab Mon Sep 17 00:00:00 2001 From: Olia Lisa Date: Mon, 20 Apr 2026 18:03:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9"=E8=AE=BE=E7=BD=AE=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3=E6=96=B9=E5=BC=8F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/create_config.sh | 4 ++-- bin/update_port.sh | 15 ++++++++++++++- bin/utils/base.sh | 16 ++++++++++++++++ install.sh | 2 +- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/bin/create_config.sh b/bin/create_config.sh index bac1b78..9556d98 100644 --- a/bin/create_config.sh +++ b/bin/create_config.sh @@ -16,7 +16,7 @@ create_reality_config(){ update_key # 设置端口 - update_port + update_port 443 # 设置reality_dest目标域名 update_reality_dest @@ -46,7 +46,7 @@ create_xhttp_reality_config(){ update_reality_dest # 设置端口 - update_port + update_port 443 green "成功创建配置" } diff --git a/bin/update_port.sh b/bin/update_port.sh index b05bed9..6663964 100644 --- a/bin/update_port.sh +++ b/bin/update_port.sh @@ -78,7 +78,20 @@ update_port(){ local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹路径 local config_file="$script_dir/../conf/config.json" - local port=$(find_free_port) + local port=$1 + # 如果参数为空,则设置为443 + if [ -z "$port" ]; then + port=443 + fi modify_json_file "$config_file" ".inbounds[0].port" "$port" echo "设置端口成功" } + +ask_update_port(){ + local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹路径 + local config_file="$script_dir/../conf/config.json" + + local current_port=$(jq -r '.inbounds[0].port' $config_dir/config.json) + local new_port=ask_update "请输入新的端口号" "$current_port" + update_port $new_port +} diff --git a/bin/utils/base.sh b/bin/utils/base.sh index 34d7d5a..19f878e 100644 --- a/bin/utils/base.sh +++ b/bin/utils/base.sh @@ -135,3 +135,19 @@ restart_docker() { docker-compose -f $script_dir/../docker-compose.yml down docker-compose -f $script_dir/../docker-compose.yml up -d } + + + +# 通用:展示当前值并询问新值 +# 用法: ask_update "提示语" "当前值(当前配置文件的值)" +# 示例: +# new_port=$(ask_update "请输入新的端口号" "$(jq -r '.inbounds[0].port' $config_dir/config.json)") +ask_update() { + local prompt="$1" # 提示语 + local current_value="$2" + local input + + read -p "${prompt} [当前: ${current_value}]: " input + # 用户直接回车则保留当前值,否则使用新输入 + echo "${input:-$current_value}" +} \ No newline at end of file diff --git a/install.sh b/install.sh index 1c5df9f..deda36e 100644 --- a/install.sh +++ b/install.sh @@ -101,7 +101,7 @@ main(){ 7) # 修改端口 check_config - update_port + ask_update_port restart_docker ;; 8)