feat: 端口密码确认提示 + 彻底修复单节点变量泄漏
This commit is contained in:
75
ss-rust.sh
75
ss-rust.sh
@@ -105,8 +105,32 @@ install_ssrust() {
|
||||
/usr/local/bin/ssserver --version && info "shadowsocks-rust 安装完成" || error "安装验证失败"
|
||||
}
|
||||
|
||||
# ============ 节点选择菜单 ============
|
||||
select_node_type() {
|
||||
# ============ 询问端口和密码 ============
|
||||
ask_port_key() {
|
||||
local label="$1"
|
||||
local default_port="$2"
|
||||
local default_key="$3"
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}【${label}】${NC}"
|
||||
read -p " 端口 (回车随机=${default_port}): " input_port
|
||||
[[ -z "$input_port" ]] && input_port="$default_port"
|
||||
read -p " 密码 (回车随机=${default_key}): " input_key
|
||||
[[ -z "$input_key" ]] && input_key="$default_key"
|
||||
|
||||
echo "$input_port $input_key"
|
||||
}
|
||||
|
||||
# ============ 节点选择 + 配置生成 ============
|
||||
select_and_configure() {
|
||||
SERVER_IP=$(get_ip)
|
||||
mkdir -p /etc/shadowsocks-rust
|
||||
|
||||
# 清空所有变量
|
||||
PORT_2022="" ; KEY_2022="" ; METHOD_2022=""
|
||||
PORT_RAW="" ; KEY_RAW="" ; METHOD_RAW=""
|
||||
NODE_MODE=""
|
||||
|
||||
echo ""
|
||||
echo -e "${CYAN}════════════════════════════════════════${NC}"
|
||||
echo -e "${CYAN} 🔐 选择节点类型${NC}"
|
||||
@@ -118,22 +142,19 @@ select_node_type() {
|
||||
echo ""
|
||||
read -p "请选择 [1-3] (默认3): " node_choice
|
||||
node_choice=${node_choice:-3}
|
||||
}
|
||||
|
||||
# ============ 生成配置 ============
|
||||
gen_config() {
|
||||
SERVER_IP=$(get_ip)
|
||||
mkdir -p /etc/shadowsocks-rust
|
||||
|
||||
PORT_2022=$((RANDOM % 10000 + 20000))
|
||||
PORT_RAW=$((RANDOM % 10000 + 30000))
|
||||
KEY_2022=$(openssl rand -base64 16)
|
||||
KEY_RAW=$(openssl rand -base64 16)
|
||||
METHOD_2022="2022-blake3-aes-128-gcm"
|
||||
METHOD_RAW="aes-128-gcm"
|
||||
|
||||
case "${node_choice}" in
|
||||
1)
|
||||
local dp=$((RANDOM % 10000 + 20000))
|
||||
local dk=$(openssl rand -base64 16)
|
||||
local result=$(ask_port_key "SS2022-128" "$dp" "$dk")
|
||||
PORT_2022=$(echo "$result" | awk '{print $1}')
|
||||
KEY_2022=$(echo "$result" | awk '{print $2}')
|
||||
NODE_MODE="ss2022"
|
||||
|
||||
cat > /etc/shadowsocks-rust/config.json << EOF
|
||||
{
|
||||
"servers": [
|
||||
@@ -148,10 +169,16 @@ gen_config() {
|
||||
]
|
||||
}
|
||||
EOF
|
||||
NODE_MODE="ss2022"
|
||||
PORT_RAW="" ; KEY_RAW="" ; METHOD_RAW=""
|
||||
METHOD_RAW=""
|
||||
;;
|
||||
2)
|
||||
local dp=$((RANDOM % 10000 + 30000))
|
||||
local dk=$(openssl rand -base64 16)
|
||||
local result=$(ask_port_key "SS-AES-128" "$dp" "$dk")
|
||||
PORT_RAW=$(echo "$result" | awk '{print $1}')
|
||||
KEY_RAW=$(echo "$result" | awk '{print $2}')
|
||||
NODE_MODE="ss128"
|
||||
|
||||
cat > /etc/shadowsocks-rust/config.json << EOF
|
||||
{
|
||||
"servers": [
|
||||
@@ -166,10 +193,22 @@ EOF
|
||||
]
|
||||
}
|
||||
EOF
|
||||
NODE_MODE="ss128"
|
||||
PORT_2022="" ; KEY_2022="" ; METHOD_2022=""
|
||||
METHOD_2022=""
|
||||
;;
|
||||
3|*)
|
||||
local dp1=$((RANDOM % 10000 + 20000))
|
||||
local dk1=$(openssl rand -base64 16)
|
||||
local result1=$(ask_port_key "SS2022-128" "$dp1" "$dk1")
|
||||
PORT_2022=$(echo "$result1" | awk '{print $1}')
|
||||
KEY_2022=$(echo "$result1" | awk '{print $2}')
|
||||
|
||||
local dp2=$((RANDOM % 10000 + 30000))
|
||||
local dk2=$(openssl rand -base64 16)
|
||||
local result2=$(ask_port_key "SS-AES-128" "$dp2" "$dk2")
|
||||
PORT_RAW=$(echo "$result2" | awk '{print $1}')
|
||||
KEY_RAW=$(echo "$result2" | awk '{print $2}')
|
||||
NODE_MODE="both"
|
||||
|
||||
cat > /etc/shadowsocks-rust/config.json << EOF
|
||||
{
|
||||
"servers": [
|
||||
@@ -192,7 +231,6 @@ EOF
|
||||
]
|
||||
}
|
||||
EOF
|
||||
NODE_MODE="both"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -458,9 +496,8 @@ do_install() {
|
||||
get_pkg_manager
|
||||
install_deps
|
||||
sync_time
|
||||
select_node_type
|
||||
install_ssrust
|
||||
gen_config
|
||||
select_and_configure
|
||||
setup_service
|
||||
gen_subscribe
|
||||
show_result
|
||||
|
||||
Reference in New Issue
Block a user