安装脚本逻辑

安装代理服务器的业务流程

  • 判断是否有 root 权限,没有 root 权限就退出程序
  • 先检查是否启用了 BBR,通过 checkBBR 函数,返回值(bool 类型):0: 启用 1: 未启用
    • 如果返回值是 0 就执行安装 x2ray/v2ray 等操作,case 系统函数
    • 如果返回值是 1 (未启用 BBR)
      • 判断内核版本是否大于 4.9,返回值(bool 类型):0: 是 1: 不是
        • 内核版本大于 4.9,就直接配置 BBR 到 sysctl.conf 并启用
        • 内核版本小于 4.9
          • 通过 elrepo 安装新内核
            • 判断平台类型:Ubuntu 、Centos
              • 如果是 Centos
                • 判断 yum-config-manager 命令是否可用,如果不可用需要安装 yum-utils
              • 如果是 Ubuntu
                • add-apt-repository
          • 配置 BBR 并启用
  • 选择安装 V2ray/X2ray,函数 selectV2rayOrX2ray(理论上要返回两个参数:程序 bin 路径、程序配置文件路径
    • 这里我们不要处理返回的函数值,因为我们明确知道程序安装的路径以及配置文件路径
    • 输入 1 表示安装 V2ray,执行对应的 V2ray 安装脚本,返回值:V2ray(安装的程序名)
    • 输入 2 表示安装 X2ray,执行对应的 X2ray 安装脚本,返回值:X2ray(安装的程序名)
  • 配置 V2ray/X2ray,函数 configV2rayOrX2ray(done)
    • 根据上面函数的结果,获取到函数名,用 case 函数判断
      • V2ray
        • 下载 V2ray 的配置文件模板
        • 生成 UUID
        • 替换配置文件中的 UUID
        • 测试配置文件是否 OK
          • /usr/local/bin/v2ray -test -config /usr/local/etc/v2ray/config.json
        • 如果是 OK 就启动 V2ray 并添加到开机启动项中
        • 判断是否启动成功,用 $? 判断
          • systemctl enable v2ray; systemctl start v2ray
        • 注意:v2ray 需要本地时间和服务器时间相同
      • X2ray
        • 下载 X2ray 的配置文件模板
        • 生成 UUID
        • 替换配置文件中的 UUID
        • 测试配置文件是否 OK
        • 如果是 OK 就启动 X2ray 并添加到开机启动项中
        • 判断是否启动成功,用 $? 判断
  • 安装 Nginx(done)
    • 先判断是 Ubuntu 还是 Centos,通过 "/bin/dnf" "/bin/yum "/usr/bin/yum" /usr/bin/apt-get"
      • 是 Ubuntu 就通过 apt-get 安装 Nginx
      • 是 Centos
        • 判断是 7 还是 8
          • major_version="sed 's/^.\+ release \([.0-9]\+\).*/\1/' /etc/redhat-release | awk -F. '{print $1}'"
          • 7:就通过 yum
          • 8: 就通过 dnf
  • 配置 Nginx(done)
    • 下载 Nginx 配置模板并命名为 vlessorvmess.conf
    • 配置 SSL 证书
      • 在 /etc/nginx/ 创建 ssl 目录
      • 下载证书
      • 解压证书文件
    • 伪装成正常网站
      • 通过 http/https 访问 api.echoxu.cn 将解析到此路径,通过 vmess/vless 协议访问会解析到 api.echoxu.cn/out
      • mkdir -p /usr/share/nginx/html/wwwdoc
      • cd /usr/share/nginx/html/ && cp index.html wwwdoc/
    • 验证配置文件是否 OK
    • 如果 OK 就启动 Nginx 并将 Nginx 添加到开机启动中
  • 优化(done)
    • 修改 Nginx 最大连接数
    • 修改系统最大文件描述符
  • 防火墙设置(done)
    • 开启 ssh、https、web 端口,即:22、443、80
上次更新:
贡献者: iEchoxu