Upload files to "/"

This commit is contained in:
mike 2026-08-12 15:30:50 +08:00
parent 86a944ea79
commit 859171b105
1 changed files with 135 additions and 0 deletions

135
setup_ss2022.sh Normal file
View File

@ -0,0 +1,135 @@
#!/bin/bash
#
# Shadowsocks 2022 (shadowsocks-rust) 一键部署脚本
# 加密方式: 2022-blake3-chacha20-poly1305
# 适用系统: Debian 10/11/12/13 (x86_64 / aarch64)
#
# 用法: bash setup_ss2022.sh
#
set -e
# ========== 基本配置(按需修改) ==========
SS_PORT="10888"
SS_PASSWORD="0j4WwerVcCpZ4qVvmG3pC+8Z3JuNnFwWJnTGE6JcGko="
SS_METHOD="2022-blake3-chacha20-poly1305"
INSTALL_DIR="/usr/local/bin"
CONFIG_DIR="/etc/shadowsocks"
CONFIG_FILE="${CONFIG_DIR}/config.json"
SERVICE_FILE="/etc/systemd/system/shadowsocks.service"
# ==========================================
if [[ $EUID -ne 0 ]]; then
echo "错误:请使用 root 权限运行此脚本 (sudo bash setup_ss2022.sh)"
exit 1
fi
echo ">>> [1/7] 检测系统架构..."
ARCH=$(uname -m)
case "$ARCH" in
x86_64)
SS_ARCH="x86_64-unknown-linux-gnu"
;;
aarch64|arm64)
SS_ARCH="aarch64-unknown-linux-gnu"
;;
*)
echo "错误:不支持的架构 $ARCH"
exit 1
;;
esac
echo " 架构: $ARCH -> $SS_ARCH"
echo ">>> [2/7] 安装依赖..."
apt update -y
apt install -y curl wget tar xz-utils
echo ">>> [3/7] 获取 shadowsocks-rust 最新版本号..."
LATEST_TAG=$(curl -s https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
if [ -z "$LATEST_TAG" ]; then
echo "错误:无法获取最新版本号,请检查网络(是否需要科学上网/是否被限速墙)"
exit 1
fi
echo " 最新版本: $LATEST_TAG"
DOWNLOAD_URL="https://github.com/shadowsocks/shadowsocks-rust/releases/download/${LATEST_TAG}/shadowsocks-${LATEST_TAG}.${SS_ARCH}.tar.xz"
echo " 下载地址: $DOWNLOAD_URL"
echo ">>> [4/7] 下载并安装 ssserver..."
TMP_DIR=$(mktemp -d)
cd "$TMP_DIR"
curl -L -o ss.tar.xz "$DOWNLOAD_URL"
tar -xf ss.tar.xz
install -m 755 ssserver "${INSTALL_DIR}/ssserver"
# 顺带装上 sslocal / ssmanager / ssurl方便以后调试
[ -f sslocal ] && install -m 755 sslocal "${INSTALL_DIR}/sslocal"
[ -f ssmanager ] && install -m 755 ssmanager "${INSTALL_DIR}/ssmanager"
[ -f ssurl ] && install -m 755 ssurl "${INSTALL_DIR}/ssurl"
cd /
rm -rf "$TMP_DIR"
echo " ssserver 已安装到 ${INSTALL_DIR}/ssserver"
"${INSTALL_DIR}/ssserver" --version
echo ">>> [5/7] 生成配置文件..."
mkdir -p "$CONFIG_DIR"
cat > "$CONFIG_FILE" <<EOF
{
"server": "0.0.0.0",
"server_port": ${SS_PORT},
"password": "${SS_PASSWORD}",
"method": "${SS_METHOD}",
"mode": "tcp_and_udp",
"fast_open": true,
"timeout": 300
}
EOF
echo " 配置文件已写入: $CONFIG_FILE"
echo ">>> [6/7] 创建 systemd 服务..."
cat > "$SERVICE_FILE" <<EOF
[Unit]
Description=Shadowsocks-rust Server Service (2022 edition)
After=network.target
[Service]
Type=simple
User=root
LimitNOFILE=51200
ExecStart=${INSTALL_DIR}/ssserver -c ${CONFIG_FILE}
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable shadowsocks
systemctl restart shadowsocks
echo ">>> [7/7] 配置防火墙(如已启用 ufw..."
if command -v ufw >/dev/null 2>&1; then
ufw allow ${SS_PORT}/tcp >/dev/null 2>&1 || true
ufw allow ${SS_PORT}/udp >/dev/null 2>&1 || true
echo " 已放行 TCP/UDP ${SS_PORT} 端口ufw"
else
echo " 未检测到 ufw请确认云服务商安全组/防火墙已放行 TCP+UDP ${SS_PORT} 端口"
fi
sleep 1
echo ""
echo "================= 部署完成 ================="
systemctl status shadowsocks --no-pager -l | head -n 10
echo "=============================================="
echo ""
echo "服务器地址 : $(curl -s -4 ifconfig.me 2>/dev/null || echo '获取失败请手动查看服务器公网IP')"
echo "端口 : ${SS_PORT}"
echo "密码 : ${SS_PASSWORD}"
echo "加密方式 : ${SS_METHOD}"
echo ""
echo "常用命令:"
echo " 查看状态: systemctl status shadowsocks"
echo " 查看日志: journalctl -u shadowsocks -f"
echo " 重启服务: systemctl restart shadowsocks"
echo " 停止服务: systemctl stop shadowsocks"
echo "=============================================="