mirror of
https://github.com/Dichgrem/singbox-example.git
synced 2025-07-30 16:49:31 -04:00
update:domain
This commit is contained in:
@ -80,7 +80,6 @@ install_singbox() {
|
|||||||
VERSION=$($BIN_PATH version | head -n1 | awk '{print $NF}')
|
VERSION=$($BIN_PATH version | head -n1 | awk '{print $NF}')
|
||||||
printf "${GREEN}已安装/更新 sing-box 版本:%s${NC}\n" "$VERSION"
|
printf "${GREEN}已安装/更新 sing-box 版本:%s${NC}\n" "$VERSION"
|
||||||
|
|
||||||
# 生成参数
|
|
||||||
UUID=$($BIN_PATH generate uuid)
|
UUID=$($BIN_PATH generate uuid)
|
||||||
KEY_OUTPUT=$($BIN_PATH generate reality-keypair)
|
KEY_OUTPUT=$($BIN_PATH generate reality-keypair)
|
||||||
PRIVATE_KEY=$(echo "$KEY_OUTPUT" | awk -F': ' '/PrivateKey/ {print $2}')
|
PRIVATE_KEY=$(echo "$KEY_OUTPUT" | awk -F': ' '/PrivateKey/ {print $2}')
|
||||||
@ -91,7 +90,6 @@ install_singbox() {
|
|||||||
PORT=443
|
PORT=443
|
||||||
SPX="/"
|
SPX="/"
|
||||||
|
|
||||||
# 写入配置和状态
|
|
||||||
mkdir -p "$CONFIG_DIR"
|
mkdir -p "$CONFIG_DIR"
|
||||||
cat >"$CONFIG_DIR/config.json" <<EOF
|
cat >"$CONFIG_DIR/config.json" <<EOF
|
||||||
{
|
{
|
||||||
@ -132,6 +130,36 @@ EOF
|
|||||||
printf "${GREEN}安装并启动完成。${NC}\n"
|
printf "${GREEN}安装并启动完成。${NC}\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 更换 SNI 域名
|
||||||
|
change_sni() {
|
||||||
|
printf "${CYAN}===== 更换 SNI 域名 =====${NC}\n"
|
||||||
|
[[ -f "$CONFIG_DIR/config.json" ]] || {
|
||||||
|
printf "${RED}配置文件不存在,请先安装。${NC}\n"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
printf "${YELLOW}请输入新的 SNI 域名 (当前: $(
|
||||||
|
source "$STATE_FILE"
|
||||||
|
echo "$SNI"
|
||||||
|
)):${NC}"
|
||||||
|
read -r NEW_SNI
|
||||||
|
[[ -z "$NEW_SNI" ]] && {
|
||||||
|
printf "${RED}SNI 域名不能为空,取消更换。${NC}\n"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# 替换 config.json 中的 SNI 字段
|
||||||
|
sed -i "s/\"server_name\":\s*\"[^\"]*\"/\"server_name\": \"$NEW_SNI\"/" "$CONFIG_DIR/config.json"
|
||||||
|
sed -i "s/\"server\":\s*\"[^\"]*\"/\"server\": \"$NEW_SNI\"/" "$CONFIG_DIR/config.json"
|
||||||
|
|
||||||
|
# 替换 state.env 中的 SNI
|
||||||
|
sed -i "s/^SNI=.*/SNI=\"$NEW_SNI\"/" "$STATE_FILE"
|
||||||
|
|
||||||
|
systemctl restart sing-box.service &&
|
||||||
|
printf "${GREEN}SNI 已更换为 $NEW_SNI,服务已重启。${NC}\n" ||
|
||||||
|
printf "${RED}服务重启失败,请手动检查。${NC}\n"
|
||||||
|
}
|
||||||
|
|
||||||
# 查看服务状态
|
# 查看服务状态
|
||||||
status_singbox() {
|
status_singbox() {
|
||||||
printf "${CYAN}===== Sing-box 服务状态 =====${NC}\n"
|
printf "${CYAN}===== Sing-box 服务状态 =====${NC}\n"
|
||||||
@ -186,15 +214,19 @@ while true; do
|
|||||||
printf " ${YELLOW}4)${NC} 卸载 Sing-box\n"
|
printf " ${YELLOW}4)${NC} 卸载 Sing-box\n"
|
||||||
printf " ${YELLOW}5)${NC} 重新安装 Sing-box\n"
|
printf " ${YELLOW}5)${NC} 重新安装 Sing-box\n"
|
||||||
printf " ${YELLOW}6)${NC} 升级 Sing-box 二进制\n"
|
printf " ${YELLOW}6)${NC} 升级 Sing-box 二进制\n"
|
||||||
printf " ${YELLOW}7)${NC} 退出\n"
|
printf " ${YELLOW}7)${NC} 更换 SNI 域名\n"
|
||||||
printf "${BOLD}输入数字 [1-7]: ${NC}"
|
printf " ${YELLOW}8)${NC} 退出\n"
|
||||||
|
printf "${BOLD}输入数字 [1-8]: ${NC}"
|
||||||
read -r choice
|
read -r choice
|
||||||
case "$choice" in
|
case "$choice" in
|
||||||
1) install_singbox ;; 2) status_singbox ;; 3)
|
1) install_singbox ;;
|
||||||
show_link
|
2) status_singbox ;;
|
||||||
;;
|
3) show_link ;;
|
||||||
4) uninstall_singbox ;; 5) reinstall_singbox ;; 6) update_singbox ;;
|
4) uninstall_singbox ;;
|
||||||
7)
|
5) reinstall_singbox ;;
|
||||||
|
6) update_singbox ;;
|
||||||
|
7) change_sni ;;
|
||||||
|
8)
|
||||||
printf "${GREEN}退出。${NC}\n"
|
printf "${GREEN}退出。${NC}\n"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
Reference in New Issue
Block a user