重构代码, update 端口相关函数

This commit is contained in:
Olia Lisa
2026-05-28 15:08:00 +08:00
parent 499b085f05
commit c0824d99c0
3 changed files with 38 additions and 23 deletions
+8 -6
View File
@@ -27,15 +27,16 @@ create_hysteria_config(){
create_hysteria_self_tls_config() { create_hysteria_self_tls_config() {
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
local CONFIG_FILE="$SCRIPT_DIR/../config/config.json" local CONFIG_DIR="$SCRIPT_DIR/../config"
local CONFIG_FILE="$CONFIG_DIR/config.json"
cp "$SCRIPT_DIR/../config/template/hysteria/hysteria_self_tls_config.json" "$CONFIG_FILE" cp "$CONFIG_DIR/template/hysteria/hysteria_self_tls_config.json" "$CONFIG_FILE"
# 生成自签名证书和设置域名 # 生成自签名证书和设置域名
update_self_tls "$CONFIG_FILE" "bing.com" update_self_tls "$CONFIG_FILE" "bing.com"
# 设置端口 # 设置端口
update_port update_port "$CONFIG_FILE"
# 设置密码 # 设置密码
update_password "$CONFIG_FILE" update_password "$CONFIG_FILE"
@@ -48,14 +49,15 @@ create_hysteria_self_tls_config() {
create_hysteria_acme_tls_config() { create_hysteria_acme_tls_config() {
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
local CONFIG_FILE="$SCRIPT_DIR/../config/config.json" local CONFIG_DIR="$SCRIPT_DIR/../config"
local CONFIG_FILE="$CONFIG_DIR/config.json"
cp "$SCRIPT_DIR/../config/template/hysteria/hysteria_acme_tls_config.json" "$CONFIG_FILE" cp "$CONFIG_DIR/template/hysteria/hysteria_acme_tls_config.json" "$CONFIG_FILE"
update_acme_tls "$CONFIG_FILE" update_acme_tls "$CONFIG_FILE"
# 设置端口 # 设置端口
update_port update_port "$CONFIG_FILE"
# 设置密码 # 设置密码
update_password "$CONFIG_FILE" update_password "$CONFIG_FILE"
+5 -4
View File
@@ -35,7 +35,7 @@ create_tuic_acme_tls_config() {
update_acme_tls "$CONFIG_FILE" update_acme_tls "$CONFIG_FILE"
# 设置端口 # 设置端口
update_port update_port "$CONFIG_FILE"
# 设置密码 # 设置密码
update_password "$CONFIG_FILE" update_password "$CONFIG_FILE"
@@ -48,15 +48,16 @@ create_tuic_acme_tls_config() {
create_tuic_self_tls_config() { create_tuic_self_tls_config() {
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
local CONFIG_FILE="$SCRIPT_DIR/../config/config.json" local CONFIG_DIR="$SCRIPT_DIR/../config"
local CONFIG_FILE="$CONFIG_DIR/config.json"
cp "$SCRIPT_DIR/../config/template/tuic/tuic_self_tls_config.json" "$CONFIG_FILE" cp "$CONFIG_DIR/template/tuic/tuic_self_tls_config.json" "$CONFIG_FILE"
# 生成自签名证书和设置域名 # 生成自签名证书和设置域名
update_self_tls "$CONFIG_FILE" "bing.com" update_self_tls "$CONFIG_FILE" "bing.com"
# 设置端口 # 设置端口
update_port update_port "$CONFIG_FILE"
# 设置密码 # 设置密码
update_password "$CONFIG_FILE" update_password "$CONFIG_FILE"
+25 -13
View File
@@ -2,21 +2,25 @@
# ========================================== # ==========================================
# 更新 sing-box 配置文件中的监听端口,并开放对应防火墙规则 # 更新 sing-box 配置文件中的监听端口,并开放对应防火墙规则
# 参数: 端口号(可选,不传则设置一个5000 到 15000的空闲端口) # 参数1: 配置文件路径
# 参数2: 端口号(可选,不传则设置一个5000 到 15000的空闲端口)
# --- 使用示例 --- # --- 使用示例 ---
# 指定端口 # 指定端口
# update_port 8080 # update_port "$CONFIG_FILE" 8080
# ========================================== # ==========================================
update_port(){ update_port(){
local PORT=$1 local CONFIG_FILE="$1"
local PORT="$2"
if [[ -z "$CONFIG_FILE" ]]; then
echo "[Error] config_file配置文件路径 不能为空"
return 1
fi
# 如果没有提供端口参数,则自动查找一个随机空闲端口 # 如果没有提供端口参数,则自动查找一个随机空闲端口
if [[ -z "$PORT" ]]; then if [[ -z "$PORT" ]]; then
PORT=$(find_free_port 5000 15000) PORT=$(find_free_port 5000 15000)
fi fi
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径 modify_json_file "$CONFIG_FILE" ".inbounds[0].listen_port" "$PORT"
local CONFIG_DIR="$SCRIPT_DIR/../config"
modify_json_file "$CONFIG_DIR/config.json" ".inbounds[0].listen_port" "$PORT"
port_manage allow "$PORT" port_manage allow "$PORT"
echo "设置端口成功" echo "设置端口成功"
} }
@@ -187,18 +191,26 @@ port_manage() {
# 通过交互方式更新端口 # 通过交互方式更新端口
ask_update_port(){ ask_update_port(){
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" local CONFIG_FILE="${1}"
local CONFIG_FILE="$SCRIPT_DIR/../config/config.json"
local CURRENT_PORT=$(get_listen_port) if [[ -z "$CONFIG_FILE" ]]; then
echo "[Error] config_file配置文件路径 不能为空"
return 1
fi
local CURRENT_PORT=$(get_listen_port "$CONFIG_FILE")
local NEW_PORT=$(ask_update "请输入新的端口号" "$CURRENT_PORT") local NEW_PORT=$(ask_update "请输入新的端口号" "$CURRENT_PORT")
update_port "$NEW_PORT" update_port "$CONFIG_FILE" "$NEW_PORT"
} }
# 获取当前配置的监听端口 # 获取当前配置的监听端口
get_listen_port(){ get_listen_port(){
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" local CONFIG_FILE="${1}"
local CONFIG_FILE="$SCRIPT_DIR/../config/config.json"
if [[ -z "$CONFIG_FILE" ]]; then
echo "[Error] config_file配置文件路径 不能为空"
return 1
fi
local PORT=$(jq -r ".inbounds[0].listen_port" "$CONFIG_FILE") local PORT=$(jq -r ".inbounds[0].listen_port" "$CONFIG_FILE")
echo $PORT echo $PORT