重构代码, update 端口相关函数
This commit is contained in:
@@ -27,15 +27,16 @@ create_hysteria_config(){
|
||||
|
||||
create_hysteria_self_tls_config() {
|
||||
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_port
|
||||
update_port "$CONFIG_FILE"
|
||||
|
||||
# 设置密码
|
||||
update_password "$CONFIG_FILE"
|
||||
@@ -48,14 +49,15 @@ create_hysteria_self_tls_config() {
|
||||
|
||||
create_hysteria_acme_tls_config() {
|
||||
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_port
|
||||
update_port "$CONFIG_FILE"
|
||||
|
||||
# 设置密码
|
||||
update_password "$CONFIG_FILE"
|
||||
|
||||
@@ -35,7 +35,7 @@ create_tuic_acme_tls_config() {
|
||||
update_acme_tls "$CONFIG_FILE"
|
||||
|
||||
# 设置端口
|
||||
update_port
|
||||
update_port "$CONFIG_FILE"
|
||||
|
||||
# 设置密码
|
||||
update_password "$CONFIG_FILE"
|
||||
@@ -48,15 +48,16 @@ create_tuic_acme_tls_config() {
|
||||
|
||||
create_tuic_self_tls_config() {
|
||||
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_port
|
||||
update_port "$CONFIG_FILE"
|
||||
|
||||
# 设置密码
|
||||
update_password "$CONFIG_FILE"
|
||||
|
||||
+24
-12
@@ -2,21 +2,25 @@
|
||||
|
||||
# ==========================================
|
||||
# 更新 sing-box 配置文件中的监听端口,并开放对应防火墙规则
|
||||
# 参数: 端口号(可选,不传则设置一个5000 到 15000的空闲端口)
|
||||
# 参数1: 配置文件路径
|
||||
# 参数2: 端口号(可选,不传则设置一个5000 到 15000的空闲端口)
|
||||
# --- 使用示例 ---
|
||||
# 指定端口
|
||||
# update_port 8080
|
||||
# update_port "$CONFIG_FILE" 8080
|
||||
# ==========================================
|
||||
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
|
||||
PORT=$(find_free_port 5000 15000)
|
||||
fi
|
||||
|
||||
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件夹绝对路径
|
||||
local CONFIG_DIR="$SCRIPT_DIR/../config"
|
||||
modify_json_file "$CONFIG_DIR/config.json" ".inbounds[0].listen_port" "$PORT"
|
||||
modify_json_file "$CONFIG_FILE" ".inbounds[0].listen_port" "$PORT"
|
||||
port_manage allow "$PORT"
|
||||
echo "设置端口成功"
|
||||
}
|
||||
@@ -187,18 +191,26 @@ port_manage() {
|
||||
|
||||
# 通过交互方式更新端口
|
||||
ask_update_port(){
|
||||
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
local CONFIG_FILE="$SCRIPT_DIR/../config/config.json"
|
||||
local CONFIG_FILE="${1}"
|
||||
|
||||
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")
|
||||
update_port "$NEW_PORT"
|
||||
update_port "$CONFIG_FILE" "$NEW_PORT"
|
||||
}
|
||||
|
||||
# 获取当前配置的监听端口
|
||||
get_listen_port(){
|
||||
local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
local CONFIG_FILE="$SCRIPT_DIR/../config/config.json"
|
||||
local CONFIG_FILE="${1}"
|
||||
|
||||
if [[ -z "$CONFIG_FILE" ]]; then
|
||||
echo "[Error] config_file配置文件路径 不能为空"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local PORT=$(jq -r ".inbounds[0].listen_port" "$CONFIG_FILE")
|
||||
echo $PORT
|
||||
|
||||
Reference in New Issue
Block a user