搭建Shadowsocks多用户节点

文章目录 (?) [+]

    SS Panel V3 Mod

    系统选择

    初始化系统盘时选择 CentOS 7 或 Ubuntu 16.04 操作系统,此处以 CentOS 7 系统为例。

    # 切换到 root 用户,以下命令均在此用户下执行。
    sudo -i
    
    # 更新系统和安装必要的软件
    yum update
    yum install git nano screen
    # 增加 1 GB 交换空间
    dd if=/dev/zero of=/var/swap bs=1024 count=1048576
    mkswap /var/swap
    chmod 0644 /var/swap
    swapon /var/swap
    echo '/var/swap   swap   swap   default 0 0' >> /etc/fstab

    安装 Google BBR

    参考文章: https://teddysun.com/489.html

    # 一键升级内核并安装 BBR
    # 按 y 继续安装,当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误并自动退出安装
    wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
    
    # 重启系统
    # 脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC,开机卡在 grub 引导,手动选择内核即可
    reboot
    
    # 重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR
    uname -r
    # 内核版本 > 4.9
    
    sysctl net.ipv4.tcp_available_congestion_control
    # 返回值一般为 net.ipv4.tcp_available_congestion_control = bbr cubic reno
    
    sysctl net.ipv4.tcp_congestion_control
    # 返回值一般为 net.ipv4.tcp_congestion_control = bbr
    
    sysctl net.core.default_qdisc
    # 返回值一般为 net.core.default_qdisc = fq
    
    lsmod | grep bbr
    # 返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常

    搭建 LNMP 环境

    参考文章:https://lnmp.org/install.html

    # 一键搭建 LNMP 环境
    # 新建一个 screen,临时退出可以按 Ctrl+A 再按 Ctrl+D,恢复会话使用 screen -r lnmp 命令
    screen -r lnmp
    
    # 需要注意的是 MySQL 5.6/5.7 及 MariaDB 10 必须在 1 GB 以上内存的配置上才能选择
    wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
    
    # 如果使用域名访问需要添加虚拟主机,使用 IP 访问可以略过
    # 添加虚拟主机
    lnmp vhost add

    安装 ss-panel v3 mod

    # 修改 nginx 配置,此处以 IP 访问的默认目录为例
    nano /usr/local/nginx/conf/fastcgi.conf
    # 注释掉最后一句,要不然 sspanel 会因为路径权限问题出现 500 错误
    # fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
    nano /usr/local/nginx/conf/nginx.conf
    # 将访问的根目录修改为 public
    root  /home/wwwroot/default/public;
    # 添加伪静态规则
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    
    # 切换到网站根目录
    cd /home/wwwroot/default/
    # 删除无用文件,这种方法删不掉 .user.ini 文件,当然这个文件也不用删除
    rm -rf *
    # 安装 ss-panel v3 mod
    git clone https://github.com/mmmwhy/mod.git tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
    # 配置文件
    cp config/.config.php.example config/.config.php
    # 更改文件用户组
    chown -R www:www *
    # 新建数据库并导入,参数 -proot 中的 root 应修改为搭建 LNMP 环境时填写的 MySQL 密码
    mysql -uroot -proot -e"CREATE DATABASE `sspanel` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"
    mysql -uroot -proot -e"use sspanel;"
    mysql -uroot -proot sspanel < /home/wwwroot/default/sql/sspanel.sql
    
    # 修改 sspanel 配置
    nano /home/wwwroot/default/config/.config.php
    # 主要修改这几项
    # 站点 Key,填随机字符串
    $System_Config['key'] = '';
    # 站点名称,SSR Demo
    $System_Config['appName'] = '';
    # 站点访问地址,如 http://xxx
    $System_Config['baseUrl'] = '';
    # 密码加密方式,荐 sha256
    $System_Config['pwdMethod'] = 'sha256';
    # 密码加密的盐,填随机字符串
    $System_Config['salt'] = '';
    # 用于校验 ss-go mu 的请求,半角逗号分隔
    $System_Config['muKey'] = '';
    
    # 数据库配置
    $System_Config['db_host'] = 'localhost';
    $System_Config['db_database'] = 'sspanel';
    $System_Config['db_username'] = 'root';
    $System_Config['db_password'] = '';
    $System_Config['db_charset'] = 'utf8';
    $System_Config['db_collation'] = 'utf8_general_ci';
    $System_Config['db_prefix'] = '';
    
    # Shadowsocks 默认设置
    # 默认协议
    $System_Config['reg_protocol']='origin';
    # 默认协议参数
    $System_Config['reg_protocol_param']='';
    # 默认混淆方式
    $System_Config['reg_obfs']='plain';
    # 默认混淆参数
    $System_Config['reg_obfs_param']='';
    
    # 多用户设置
    # 多用户混淆参数后缀
    $System_Config['mu_suffix']='';
    # 多用户混淆参数表达式,%5m 代表取用户特征 md5 的前五位,%id 代表用户 id,%suffix 代 $
    $System_Config['mu_regex']='%5m%id.%suffix';
    
    # sspanel 命令
    # 添加管理员
    php xcat createAdmin
    # 重置流量
    php xcat resetTraffic
    # 发送流量使用情况邮件
    php xcat sendDiaryMail
    # 下载客户端
    php -n xcat initdownload
    # 下载IP解析库
    php xcat initQQWry
    
    # 注意,此版 sspanel 含有默认管理员账号,账号密码均为 91vps,搭建好后需要及时删除或修改此账号。

    Shadowsocks 节点

    参考文章:https://91vps.win/2017/07/05/server_installation/

    cd ~
    # 安装基本组件
    yum -y install python-setuptools && easy_install pip && pip install cymysql speedtest-cli
    # CHACHA20 加密方式支持
    yum -y groupinstall "Development Tools" && wget https://raw.githubusercontent.com/mmmwhy/ss-panel-and-ss-py-mu/master/libsodium-1.0.13.tar.gz&&tar xf libsodium-1.0.13.tar.gz && cd libsodium-1.0.13&&./configure && make -j2 && make install&&echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf&&ldconfig&& rm -rf /root/libsodium-1.0.13.tar.gz && cd /root
    # 安装 Shadowsocks
    git clone -b manyuser https://github.com/glzjin/shadowsocks.gityum -y install python-devel
    yum -y install libffi-devel
    yum -y install openssl-devel
    cd shadowsocks
    pip install -r requirements.txt
    cp apiconfig.py userapiconfig.py
    cp config.json user-config.json
    
    # 修改配置
    nano
    # 节点 ID要和在网站添加节点分配的 ID 一致
    NODE_ID = 3
    # 对应 .config.php 中 $System_Config['mu_suffix'] 的参数
    MU_SUFFIX = ''
    #  对应 .config.php 中 $System_Config['mu_regex'] 的参数
    MU_REGEX = '%5m%id.%suffix'
    API_INTERFACE = 'modwebapi'
    # 对应 .config.php 中 $System_Config['baseUrl'] 的参数
    WEBAPI_URL = ''
    # 对应 .config.php 中 $System_Config['muKey'] 的参数
    WEBAPI_TOKEN = ''
    # 对应 .config.php 中 $System_Config['muKey'] 的参数
    WEBAPI_TOKEN = ''
    
    # 测试运行
    python server.py
    # 后台运行
    ./logrun.sh

    SS Panel UserCenter


    本文标题:搭建Shadowsocks多用户节点
    本文链接:https://lanseyujie.com/post/build-shadowsocks-multi-user-node.html
    版权声明:本文使用「署名-非商业性使用-相同方式共享」创作共享协议,转载或使用请遵守署名协议。
    点赞 0 分享 0
    呃...本文暂时没人留言,来添加一个吧!