元宝给的 简单的Socks5服务器一键安装脚本(使用Dante-server):

#!/bin/bash

# SOCKS5 一键安装脚本
# 支持系统:Ubuntu/Debian/CentOS

red(){
    echo -e "\033[31m\033[01m$1\033[0m"
}

green(){
    echo -e "\033[32m\033[01m$1\033[0m"
}

yellow(){
    echo -e "\033[33m\033[01m$1\033[0m"
}

blue(){
    echo -e "\033[34m\033[01m$1\033[0m"
}

# 检查系统
check_sys(){
    if [[ -f /etc/redhat-release ]]; then
        release="centos"
    elif cat /etc/issue | grep -q -E -i "debian"; then
        release="debian"
    elif cat /etc/issue | grep -q -E -i "ubuntu"; then
        release="ubuntu"
    elif cat /etc/issue | grep -q -E -i "centos|red hat|redhat"; then
        release="centos"
    elif cat /proc/version | grep -q -E -i "debian"; then
        release="debian"
    elif cat /proc/version | grep -q -E -i "ubuntu"; then
        release="ubuntu"
    elif cat /proc/version | grep -q -E -i "centos|red hat|redhat"; then
        release="centos"
    fi
}

# 安装依赖
install_dependencies(){
    blue "正在安装必要依赖..."
    
    if [[ ${release} == "centos" ]]; then
        yum install -y gcc make wget
        yum groupinstall -y "Development Tools"
    else
        apt-get update
        apt-get install -y gcc make wget
        apt-get install -y build-essential
    fi
}

# 安装Dante-server
install_dante(){
    blue "正在安装Dante SOCKS5服务器..."
    
    cd /tmp
    wget https://www.inet.no/dante/files/dante-1.4.3.tar.gz
    tar -xzf dante-1.4.3.tar.gz
    cd dante-1.4.3
    
    ./configure
    make && make install
    
    # 创建配置文件目录
    mkdir -p /etc/danted
}

# 创建配置文件
create_config(){
    local port=${1:-1080}
    local user=${2:-socks5}
    local pass=${3:-$(tr -dc A-Za-z0-9 < /dev/urandom | head -c 12)}
    
    blue "正在创建配置文件..."
    
    cat > /etc/danted/sockd.conf << EOF
# Dante SOCKS5 服务器配置
logoutput: syslog
user.privileged: root
user.unprivileged: nobody

# 监听端口
internal: 0.0.0.0 port = ${port}
external: eth0

# 认证方法
socksmethod: username
clientmethod: none

# 客户端规则
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
}

# SOCKS规则
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
    socksmethod: username
}
EOF
    
    # 创建用户
    useradd -r -s /bin/false ${user}
    echo "${user}:${pass}" | chpasswd
    
    green "================================"
    green "SOCKS5 服务器安装完成!"
    green "地址: $(curl -s ifconfig.me)"
    green "端口: ${port}"
    green "用户名: ${user}"
    green "密码: ${pass}"
    green "================================"
    yellow "使用示例: curl --socks5 ${user}:${pass}@$(curl -s ifconfig.me):${port} http://ifconfig.me"
}

# 创建systemd服务
create_service(){
    blue "正在创建系统服务..."
    
    cat > /etc/systemd/system/sockd.service << EOF
[Unit]
Description=Dante SOCKS5 Server
After=network.target

[Service]
Type=forking
PIDFile=/var/run/sockd.pid
ExecStart=/usr/local/sbin/sockd -D
ExecReload=/bin/kill -HUP \$MAINPID
ExecStop=/bin/kill -TERM \$MAINPID

[Install]
WantedBy=multi-user.target
EOF
    
    systemctl daemon-reload
    systemctl enable sockd
    systemctl start sockd
    
    # 检查服务状态
    if systemctl is-active --quiet sockd; then
        green "SOCKS5 服务启动成功!"
    else
        red "服务启动失败,请检查配置"
        exit 1
    fi
}

# 防火墙设置
setup_firewall(){
    local port=$1
    
    blue "正在配置防火墙..."
    
    if command -v ufw &> /dev/null; then
        ufw allow ${port}
        ufw reload
    elif command -v firewall-cmd &> /dev/null; then
        firewall-cmd --permanent --add-port=${port}/tcp
        firewall-cmd --reload
    elif command -v iptables &> /dev/null; then
        iptables -I INPUT -p tcp --dport ${port} -j ACCEPT
        iptables-save > /etc/iptables/rules.v4
    fi
    
    green "防火墙端口 ${port} 已开放"
}

# 显示使用说明
show_usage(){
    blue "================================"
    blue "SOCKS5 服务器管理命令:"
    blue "启动: systemctl start sockd"
    blue "停止: systemctl stop sockd"
    blue "重启: systemctl restart sockd"
    blue "状态: systemctl status sockd"
    blue "日志: journalctl -u sockd -f"
    blue "配置文件: /etc/danted/sockd.conf"
    blue "================================"
}

# 主函数
main(){
    yellow "开始安装 SOCKS5 服务器..."
    
    # 检查root权限
    if [[ $EUID -ne 0 ]]; then
        red "请使用 root 权限运行此脚本!"
        exit 1
    fi
    
    # 检查系统
    check_sys
    
    # 设置参数
    PORT=1080
    USER="socks5"
    
    echo ""
    read -p "请输入SOCKS5端口 (默认: 1080): " input_port
    [[ -n "$input_port" ]] && PORT="$input_port"
    
    read -p "请输入用户名 (默认: socks5): " input_user
    [[ -n "$input_user" ]] && USER="$input_user"
    
    # 安装步骤
    install_dependencies
    install_dante
    create_config ${PORT} ${USER}
    create_service
    setup_firewall ${PORT}
    show_usage
    
    green "安装完毕!"
}

# 执行主函数
main "$@"
使用方法:
保存脚本:

nano install-socks5.sh

世界树

一步一步来

您可能还喜欢...