67 lines
2.0 KiB
Bash
67 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
update_reality_key(){
|
|
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件绝对路径
|
|
local config_dir="$script_dir/../conf"
|
|
|
|
# 使用docker运行xray镜像生成密钥文件
|
|
docker run --rm teddysun/xray:latest /usr/bin/xray x25519 > $config_dir/key.txt
|
|
|
|
# 获取私钥
|
|
local private_key=$(grep "Private" $config_dir/key.txt | awk -F ': ' '{print $2}')
|
|
|
|
# 修改config.json密钥属性
|
|
modify_json_file "$config_dir/config.json" ".inbounds[0].streamSettings.realitySettings.privateKey" "$private_key"
|
|
|
|
echo "生成和设置密钥成功."
|
|
|
|
}
|
|
|
|
|
|
update_reality_dest(){
|
|
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
local config_dir="$script_dir/../conf"
|
|
|
|
# 获取当前dest值
|
|
local old_dest=$(jq -r '.inbounds[0].streamSettings.realitySettings.dest' "$config_dir/config.json")
|
|
old_dest="${old_dest%:*}"
|
|
# 输入新的dest地址
|
|
local dest
|
|
read -p "请输入新的dest地址[当前地址: $old_dest]: " dest
|
|
|
|
# 如果输入为空, 不修改直接退出
|
|
if [[ -z "$dest" ]]; then
|
|
return 0
|
|
fi
|
|
|
|
# 如果未指定端口号,默认加上 :443
|
|
if [[ "$dest" != *:* ]]; then
|
|
dest="${dest}:443"
|
|
fi
|
|
|
|
# 提取域名部分,去掉端口号
|
|
local domain=$(echo "$dest" | cut -d: -f1)
|
|
|
|
# 修改配置文件中的dest
|
|
modify_json_file "$config_dir/config.json" ".inbounds[0].streamSettings.realitySettings.dest" "$dest"
|
|
|
|
# 修改配置文件中的serverNames,不带端口号
|
|
modify_json_file "$config_dir/config.json" ".inbounds[0].streamSettings.realitySettings.serverNames" "[\"$domain\"]"
|
|
|
|
echo "修改reality_dest成功"
|
|
}
|
|
|
|
update_short_id(){
|
|
|
|
local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 脚本文件绝对路径
|
|
local config_dir="$script_dir/../conf"
|
|
|
|
# 生成 shortId
|
|
local short_id=$(openssl rand -hex 8)
|
|
|
|
#修改 shortId
|
|
modify_json_file "$config_dir/config.json" ".inbounds[0].streamSettings.realitySettings.shortIds[0]" "$short_id"
|
|
|
|
echo "设置shortId成功."
|
|
}
|