AC2100/install_shadowsocks.sh

79 lines
2.5 KiB
Bash

#!/bin/bash
# ================================================
# Shadowsocks-libev 一键安装脚本 (Debian)
# ================================================
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m'
YELLOW='\033[1;33m'
NC='\033[0m'
info() { echo -e "${CYAN}[INFO]${NC} $1"; }
success() { echo -e "${GREEN}[OK]${NC} $1"; }
error() { echo -e "${RED}[ERROR]${NC} $1"; exit 1; }
[[ $EUID -ne 0 ]] && error "请使用 root 用户或 sudo 运行此脚本"
# -------- 安装 --------
info "更新软件包列表..."
apt update -y
info "安装 shadowsocks-libev..."
apt install -y shadowsocks-libev
success "安装完成"
# -------- 写入固定配置 --------
info "写入配置文件..."
cat > /etc/shadowsocks-libev/config.json <<'EOF'
{
"server":"0.0.0.0",
"server_port":10222,
"password":"1e83451e-48d3-4c34-ba88-3e59f52c8ea5",
"timeout":300,
"method":"chacha20-ietf-poly1305",
"mode":"tcp_and_udp",
"fast_open":true,
"reuse_port":true,
"no_delay":true
}
EOF
success "配置文件写入完成"
# -------- TCP Fast Open --------
info "开启 TCP Fast Open..."
echo 3 > /proc/sys/net/ipv4/tcp_fastopen 2>/dev/null || true
grep -q "tcp_fastopen" /etc/sysctl.conf 2>/dev/null \
|| echo "net.ipv4.tcp_fastopen = 3" >> /etc/sysctl.conf
# -------- 启动服务 --------
info "启动服务并设置开机自启..."
systemctl enable shadowsocks-libev
systemctl restart shadowsocks-libev
sleep 1
if systemctl is-active --quiet shadowsocks-libev; then
success "服务运行正常 ✓"
else
error "服务启动失败,请运行: journalctl -u shadowsocks-libev -n 50"
fi
# -------- 完成提示 --------
SERVER_IP=$(curl -s --max-time 5 https://api.ipify.org 2>/dev/null || hostname -I | awk '{print $1}')
echo ""
echo -e "${GREEN}================================================${NC}"
echo -e "${GREEN} Shadowsocks-libev 部署完成!${NC}"
echo -e "${GREEN}================================================${NC}"
echo -e " 服务器地址 : ${CYAN}${SERVER_IP}${NC}"
echo -e " 端口 : ${CYAN}10222${NC}"
echo -e " 密码 : ${CYAN}1e83451e-48d3-4c34-ba88-3e59f52c8ea5${NC}"
echo -e " 加密方式 : ${CYAN}chacha20-ietf-poly1305${NC}"
echo -e " 模式 : ${CYAN}TCP + UDP${NC}"
echo -e "${GREEN}================================================${NC}"
echo ""
echo -e "查看服务状态:${YELLOW}systemctl status shadowsocks-libev${NC}"
echo -e "查看实时日志:${YELLOW}journalctl -u shadowsocks-libev -f${NC}"