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 "安装验证失败"
|
/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 ""
|
||||||
echo -e "${CYAN}════════════════════════════════════════${NC}"
|
echo -e "${CYAN}════════════════════════════════════════${NC}"
|
||||||
echo -e "${CYAN} 🔐 选择节点类型${NC}"
|
echo -e "${CYAN} 🔐 选择节点类型${NC}"
|
||||||
@@ -118,22 +142,19 @@ select_node_type() {
|
|||||||
echo ""
|
echo ""
|
||||||
read -p "请选择 [1-3] (默认3): " node_choice
|
read -p "请选择 [1-3] (默认3): " node_choice
|
||||||
node_choice=${node_choice:-3}
|
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_2022="2022-blake3-aes-128-gcm"
|
||||||
METHOD_RAW="aes-128-gcm"
|
METHOD_RAW="aes-128-gcm"
|
||||||
|
|
||||||
case "${node_choice}" in
|
case "${node_choice}" in
|
||||||
1)
|
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
|
cat > /etc/shadowsocks-rust/config.json << EOF
|
||||||
{
|
{
|
||||||
"servers": [
|
"servers": [
|
||||||
@@ -148,10 +169,16 @@ gen_config() {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
NODE_MODE="ss2022"
|
METHOD_RAW=""
|
||||||
PORT_RAW="" ; KEY_RAW="" ; METHOD_RAW=""
|
|
||||||
;;
|
;;
|
||||||
2)
|
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
|
cat > /etc/shadowsocks-rust/config.json << EOF
|
||||||
{
|
{
|
||||||
"servers": [
|
"servers": [
|
||||||
@@ -166,10 +193,22 @@ EOF
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
NODE_MODE="ss128"
|
METHOD_2022=""
|
||||||
PORT_2022="" ; KEY_2022="" ; METHOD_2022=""
|
|
||||||
;;
|
;;
|
||||||
3|*)
|
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
|
cat > /etc/shadowsocks-rust/config.json << EOF
|
||||||
{
|
{
|
||||||
"servers": [
|
"servers": [
|
||||||
@@ -192,7 +231,6 @@ EOF
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
NODE_MODE="both"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -458,9 +496,8 @@ do_install() {
|
|||||||
get_pkg_manager
|
get_pkg_manager
|
||||||
install_deps
|
install_deps
|
||||||
sync_time
|
sync_time
|
||||||
select_node_type
|
|
||||||
install_ssrust
|
install_ssrust
|
||||||
gen_config
|
select_and_configure
|
||||||
setup_service
|
setup_service
|
||||||
gen_subscribe
|
gen_subscribe
|
||||||
show_result
|
show_result
|
||||||
|
|||||||
Reference in New Issue
Block a user