Clouodon Blog
    • 版块
    • 最新
    • 热门
    • 用户
    • 友链
    • 注册
    • 登录
    1. 主页
    2. clouldon
    在线
    • 资料
    • 关注 1
    • 粉丝 1
    • 主题 6
    • 帖子 11
    • 群组 2

    clouldon

    @clouldon

    administrators
    0
    声望
    13
    资料浏览
    11
    帖子
    1
    粉丝
    1
    关注
    注册时间
    最后登录

    clouldon 取消关注 关注
    Global Moderator administrators

    clouldon 发布的最新帖子

    • RE: 哈基 项目推荐

      @四折光曲 基于WireGuard

      发布在 软件教程
      clouldonC
      clouldon
    • RE: 四折の股票之路.WEBP

      貌似长线收益多一些,每日的波动,上下上下,不也是归零了嘛

      发布在 讨论
      clouldonC
      clouldon
    • Rustdesk自托管中继服务端安装教程

      下面就是 只安装 hbbs + hbbr 的简单版本。


      1)先看当前最新版本

      浏览器打开:

      https://github.com/rustdesk/rustdesk-server/releases/latest

      现在会跳到 1.1.15。

      2)在 Debian 上判断你的架构

      执行:

      dpkg --print-architecture
      

      记住输出结果。
      常见是 amd64 或 arm64。

      这里我只示范 amd64。
      如果你的输出不是 amd64,只需要把下面所有命令里的 amd64 换成你的架构名。

      3)创建下载目录

      执行:

      mkdir -p ~/rustdesk-server
      cd ~/rustdesk-server
      

      4)下载第一个包:hbbs

      将下面的1.1.15换成Latest的版本号
      执行:

      wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.15/rustdesk-server-hbbs_1.1.15_amd64.deb
      

      5)下载第二个包:hbbr

      执行:

      wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.15/rustdesk-server-hbbr_1.1.15_amd64.deb
      

      6)确认两个包已经下好了

      执行:

      ls -lh *.deb
      

      正常会看到这两个文件:

      • rustdesk-server-hbbs_1.1.15_amd64.deb
      • rustdesk-server-hbbr_1.1.15_amd64.deb

      7)开始安装

      先执行:

      sudo apt update
      

      然后依次安装:

      sudo dpkg -i rustdesk-server-hbbs_1.1.15_amd64.deb
      
      sudo dpkg -i rustdesk-server-hbbr_1.1.15_amd64.deb
      

      8)如果提示依赖问题,再补一次

      执行:

      sudo apt-get -f install -y
      

      9)检查服务是否已经就绪

      先检查:

      systemctl status rustdesk-hbbs --no-pager
      
      systemctl status rustdesk-hbbr --no-pager
      

      你希望看到的是:

      active (running)
      

      10)如果没运行,就手动启动

      执行:

      sudo systemctl start rustdesk-hbbs
      
      sudo systemctl start rustdesk-hbbr
      

      然后再检查一次:

      systemctl status rustdesk-hbbs --no-pager
      
      systemctl status rustdesk-hbbr --no-pager
      

      11)查看公钥

      执行:

      cat /var/lib/rustdesk-server/id_ed25519.pub
      

      把输出内容保存好。


      12)补充端口使用

      RustDesk 官方文档给出的核心端口是:

      • TCP 21114-21119

      • UDP 21116

      其中 最小可工作端口集合 是:

      • TCP 21115

      • TCP/UDP 21116

      • TCP 21117


      这些端口分别做什么官方链接


      到底该开哪些端口

      如果你只是部署 普通 OSS 自建服务器,最稳妥的做法是直接开放:

      • 21115/tcp

      • 21116/tcp

      • 21116/udp

      • 21117/tcp

      这是官方文档定义的最小可工作端口集合。


      如果你想少折腾、一步到位,也可以直接开放:

      • 21114-21119/tcp

      • 21116/udp


      如果你用 UFW,就这样放行端口,只开最小必需端口

      sudo ufw allow 21115/tcp
      sudo ufw allow 21116/tcp
      sudo ufw allow 21116/udp
      sudo ufw allow 21117/tcp
      

      如果你想一步全开官方建议范围

      sudo ufw allow 21114:21119/tcp
      sudo ufw allow 21116/udp
      

      12)客户端怎么填

      客户端里填:

      • ID 服务器:你的服务器 IP 或域名
      • Key:刚才看到的公钥
      • 中继服务器:同ID 服务器
      • API服务器:留空

      示例

      如果你的服务器 IP 是 1.2.3.4,那客户端里填:

      • ID 服务器:1.2.3.4
      • Key:粘贴 id_ed25519.pub 的内容
      • 中继服务器:ID 服务器
      • API服务器:留空

      13)如果服务异常,先看日志

      执行:

      journalctl -u rustdesk-hbbs -n 100 --no-pager
      
      journalctl -u rustdesk-hbbr -n 100 --no-pager
      

      也可以直接看文件:

      tail -n 50 /var/log/rustdesk-server/hbbs.log
      
      tail -n 50 /var/log/rustdesk-server/hbbr.log
      

      一句话记住

      先用 dpkg --print-architecture 看架构;
      然后把我示范里的 amd64 替换成你的架构;
      下载 GitHub release 的 2 个 .deb;
      安装后检查 rustdesk-hbbs 和 rustdesk-hbbr;
      最后读取 /var/lib/rustdesk-server/id_ed25519.pub 给客户端用。

      发布在 软件教程
      clouldonC
      clouldon
    • RE: 作为生活本身的哲学基础的操练

      安稳代表着平淡,折腾生活追求刺激,活着的感觉

      发布在 哲学基础
      clouldonC
      clouldon
    • Mumble 语音服务器搭建

      所实践过的GPT可用的安装流程
      不使用 Docker 的 Mumble(Murmur)服务器完整搭建流程,以常见的 Linux(Ubuntu/Debian)为例,直接能用。


      🧱 一、准备环境

      推荐系统:

      • Ubuntu 20.04 / 22.04 / 24.04
      • Debian 11 / 12

      更新系统:

      sudo apt update && sudo apt upgrade -y
      

      📦 二、安装 Mumble 服务器(Murmur)

      直接用官方仓库:

      sudo apt install mumble-server -y
      

      安装过程中会问两个问题:

      1️⃣ 是否开机自启

      👉 选 Yes

      2️⃣ 设置 SuperUser 密码

      👉 设置一个管理员密码(很重要)


      ⚙️ 三、基础配置

      配置文件位置:

      /etc/mumble-server.ini
      

      编辑:

      sudo nano /etc/mumble-server.ini
      

      🔑 常用关键配置(建议改)

      # 监听端口(默认 64738)
      port=64738
      
      # 最大用户数
      users=50
      
      # 欢迎消息
      welcometext="欢迎来到我的语音服务器"
      
      # 带宽限制(单位 bit/s)
      bandwidth=72000
      
      # 是否允许匿名用户
      allowanonymous=true
      
      # 服务器名称
      registerName=My Mumble Server
      

      👉 保存退出(Ctrl+O → Enter)


      🔐 四、设置管理员密码(如果刚才没设)

      sudo murmurd -ini /etc/mumble-server.ini -supw yourpass
      

      🚀 五、启动服务

      sudo systemctl start murmurd
      

      开机自启(如果没选):

      sudo systemctl enable murmurd
      

      检查状态:

      sudo systemctl status murmurd
      

      🌐 六、开放端口(非常关键)

      Mumble 默认端口:

      • 64738 UDP(语音)
      • 64738 TCP(控制)

      如果你用 UFW:

      sudo ufw allow 64738/tcp
      sudo ufw allow 64738/udp
      sudo ufw reload
      

      如果是云服务器(阿里云 / AWS / GCP)
      👉 还要在安全组里放行端口


      🧪 七、连接测试

      客户端(Mumble)连接:

      地址: 你的服务器IP
      端口: 64738
      用户名: 随便
      

      管理员登录:

      • 用户名:SuperUser
      • 密码:你刚设的

      ⚡ 八、优化建议(进阶)

      1️⃣ 降低延迟

      bandwidth=128000
      

      2️⃣ 限制公网注册(防炸服)

      allowanonymous=false
      

      3️⃣ 只允许注册用户

      registerPassword=你的服务器密码
      

      🔒 九、安全建议(很重要)

      • 改默认端口(防扫描)
      • 禁止匿名(防骚扰)
      • 定期备份 /var/lib/mumble-server/

      🧠 补充:文件位置

      内容 路径
      配置文件 /etc/mumble-server.ini
      数据库 /var/lib/mumble-server/
      日志 /var/log/mumble-server/

      🧭 常见问题

      ❓ 连不上?

      • 80% 是端口没开(UDP!)
      • 云服务器安全组没放行

      ❓ 没声音?

      • 检查 UDP
      • NAT / 防火墙问题

      发布在 软件教程
      clouldonC
      clouldon
    • RE: 作为生活本身的哲学基础的操练

      对于痛苦,主要亚文化的代价实在太大,也要认识到痛苦也是我们的一部分。

      发布在 哲学基础
      clouldonC
      clouldon
    • RE: 作为生活本身的哲学基础的操练

      居然是推特吗,那很多了

      发布在 哲学基础
      clouldonC
      clouldon
    • Linux自用命令脚本

      Linux自用命令脚本

      speedtest测速

      sudo apt-get install curl && curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash && sudo apt-get install speedtest
      

      适用于Debian


      vkit工具箱 作者@vps.dance
      原文链接
      GitHub源码链接

      bash <(curl -Lso- https://sh.vps.dance/vkit.sh)
      

      国内机如果不能用, 可尝试切换镜像

       bash <(curl -Lso- https://sh.vps.dance/vkit.sh) ghproxy
      
      VKit 提供Linux VPS常用的系统软件安装, 以及系统优化脚本, 目前集成功能如下.
      
      配置SSH Public Key (SSH免密登录)
      终端优化 (颜色美化/上下键查找历史)
      安装并开启 BBR
      系统优化 (TCP网络优化/资源限制优化)
      安装常用软件 (ping/traceroute/nslookup/nping/nc/tcpdump)
      修改默认SSH端口 (减少被扫描风险)
      增加swap分区 (虚拟内存)
      IPv4/IPv6优先级调整, 启用/禁用IPv6
      安装 Xray (同时安装 增强版的geosite/geoip规则)
      安装 SS
      安装 snell
      安装 hy2
      安装 realm (端口转发工具)
      安装 gost (隧道/端口转发工具)
      安装 nali (IP查询工具)
      安装 ddns-go (DDNS工具)
      安装 miniserve (HTTP 文件服务器)
      使用 CF WARP 添加 IPv4/IPv6 网络
      检测 VPS流媒体解锁 (RegionRestrictionCheck)
      检测 单线程/多线程网速 (i-abc/Speedtest)
      检测 VPS信息/IO/到国际网速 (Bench.sh)
      性能/IO 测试 (YABS)
      检测 TCP回程路由 (BestTrace)
      检测 TCP回程路由 (NextTrace)
      检测 Tiktok解锁 (TikTokCheck)
      检测 IP质量 (IPQuality)
      理论支持的Linux: Ubuntu/Debian, Centos/Redhat (未做严格测试).
      
      发布在 软件教程
      clouldonC
      clouldon
    • ppp_install.sh

      PPP 安装与管理脚本

      这是一个用于安装、配置、更新和管理 openppp2 服务的 Bash 脚本。脚本需要 root 权限才能执行,并提供菜单驱动的界面来执行各种操作。


      自动(半自动):一键脚本,仅支持 x86

      wget -4 -O ppp_install.sh https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/ppp_install.sh && chmod +x ppp_install.sh && ./ppp_install.sh 
      

      GitHub优化加速

      wget -4 -O ppp_install.sh https://git.apad.pro/https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/ppp_install.sh && chmod +x ppp_install.sh && ./ppp_install.sh 
      

      脚本内容

      #!/bin/bash
      # =============================================================================
      # openppp2 一键安装脚本(v3.6 智能最优版)
      # 自动检测架构 + tc + io-uring + simd,选择最佳版本
      # =============================================================================
      
      set -o pipefail
      
      # ==================== 颜色定义 ====================
      RED='\033[31m'
      GREEN='\033[32m'
      YELLOW='\033[33m'
      BLUE='\033[34m'
      RESET='\033[0m'
      
      print() { echo -e "${2:-$GREEN}$1${RESET}"; }
      
      # ==================== 创建 ppp 快捷命令 ====================
      create_ppp_shortcut() {
          if [ ! -f "/usr/local/bin/ppp" ]; then
              cat > /usr/local/bin/ppp << 'EOF'
      #!/bin/bash
      if [ -f "/root/ppp_install.sh" ]; then
          bash /root/ppp_install.sh
      else
          echo "❌ 脚本文件不存在,请重新下载"
          echo "wget -4 -O /root/ppp_install.sh https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/ppp_install.sh"
          echo "chmod +x /root/ppp_install.sh"
      fi
      EOF
              chmod +x /usr/local/bin/ppp
              print "✅ 已创建 ppp 快捷命令!以后直接输入 ppp 即可运行" $GREEN
          else
              print "✅ ppp 快捷命令已存在" $GREEN
          fi
      }
      
      # ==================== 系统能力检测 ====================
      has_aesni() {
          grep -q 'aes' /proc/cpuinfo 2>/dev/null
      }
      
      kernel_supports_io_uring() {
          local major=$(uname -r | cut -d. -f1)
          local minor=$(uname -r | cut -d. -f2)
          [ "$major" -gt 5 ] || { [ "$major" -eq 5 ] && [ "$minor" -ge 1 ]; }
      }
      
      has_tc() {
          command -v tc >/dev/null 2>&1
      }
      
      # ==================== 自动选择最优版本 ====================
      choose_best_zip() {
          local arch=$(uname -m)
          case "$arch" in
              x86_64|amd64)
                  if kernel_supports_io_uring && has_aesni && has_tc; then
                      echo "openppp2-linux-amd64-tc-io-uring-simd.zip"
                  elif kernel_supports_io_uring && has_aesni; then
                      echo "openppp2-linux-amd64-tc-io-uring-simd.zip"
                  elif kernel_supports_io_uring && has_tc; then
                      echo "openppp2-linux-amd64-tc-io-uring.zip"
                  elif has_aesni && has_tc; then
                      echo "openppp2-linux-amd64-tc-simd.zip"
                  elif has_tc; then
                      echo "openppp2-linux-amd64-tc.zip"
                  else
                      echo "openppp2-linux-amd64.zip"
                  fi
                  ;;
              aarch64|arm64)
                  if kernel_supports_io_uring && has_tc; then
                      echo "openppp2-linux-aarch64-tc-io-uring.zip"
                  else
                      echo "openppp2-linux-aarch64.zip"
                  fi
                  ;;
              armv7l|armv7)
                  if kernel_supports_io_uring; then
                      echo "openppp2-linux-armv7l-io-uring.zip"
                  else
                      echo "openppp2-linux-armv7l.zip"
                  fi
                  ;;
              mips|mipsel)   echo "openppp2-linux-mipsel.zip" ;;
              ppc64le|ppc64el) echo "openppp2-linux-ppc64el.zip" ;;
              riscv64)       echo "openppp2-linux-riscv64.zip" ;;
              s390x)         echo "openppp2-linux-s390x.zip" ;;
              *)
                  print "❌ 不支持的架构: $arch" $RED
                  exit 1
                  ;;
          esac
      }
      
      # ==================== 下载函数 ====================
      prompt_replace_file() {
          local target_path="$1"
          local url="$2"
          local desc="$3"
      
          mkdir -p "$(dirname "$target_path")"
      
          if [ -f "$target_path" ]; then
              print "⚠️  $desc 已存在" $YELLOW
              read -p "是否替换?(y/n,默认 n): " REPLACE
              if [[ ! "$REPLACE" =~ ^[Yy]$ ]]; then return 0; fi
          fi
      
          print "📥 正在下载 $desc ..." $BLUE
          if wget -4 --no-check-certificate -q --show-progress -O "$target_path" "$url"; then
              print "✅ $desc 下载完成" $GREEN
              return 0
          else
              print "❌ 下载失败!" $RED
              return 1
          fi
      }
      
      # ==================== 主菜单 ====================
      while true; do
          clear
          print "=============== openppp2 一键脚本(v3.6 智能版)===============" $BLUE
          echo "1) 服务端 - 完整自动安装(推荐,自动最优版本)"
          echo "2) 服务端 - 配置系统服务(自行修改配置后使用)"
          echo "3) 通用 - 更新二进制文件(自动最优版本)"
          echo "4) 通用 - 重启服务"
          echo "5) 通用 - 停止服务"
          echo "6) 通用 - 查看运行状态(日志前50行)"
          echo "7) 通用 - 完全卸载"
          echo "8) 设置 ppp 快捷命令"
          echo "9) 更新本脚本"
          echo "10) 退出"
          read -p "请输入选项 [1-10]: " OPERATION
      
          case $OPERATION in
              1|3)
                  print "🌍 是否使用国内加速代理 (git.apad.pro)?" $BLUE
                  read -p "输入 y 使用加速,n 直连 (默认 y): " USE_PROXY
                  if [[ "$USE_PROXY" =~ ^[Nn]$ ]]; then
                      GITHUB_PROXY=""
                      print "✅ 使用直连 GitHub" $YELLOW
                  else
                      GITHUB_PROXY="https://git.apad.pro/"
                      print "✅ 已启用国内加速代理" $GREEN
                  fi
      
                  ZIP_NAME=$(choose_best_zip)
                  print "🔍 自动选择最优版本:$ZIP_NAME" $BLUE
      
                  mkdir -p /opt/ppp && cd /opt/ppp
      
                  URL="${GITHUB_PROXY}https://github.com/liulilittle/openppp2/releases/latest/download/${ZIP_NAME}"
                  prompt_replace_file "/opt/ppp/${ZIP_NAME}" "$URL" "$ZIP_NAME" || continue
      
                  unzip -o "$ZIP_NAME" ppp -d . && chmod +x ppp && rm -f "$ZIP_NAME"
                  print "✅ openppp2 最优版本处理完成" $GREEN
      
                  if [ "$OPERATION" = "1" ]; then
                      print "🔧 正在安装依赖..." $BLUE
                      if command -v apt-get >/dev/null; then
                          apt-get update && apt-get install -y jq uuid-runtime unzip
                      elif command -v dnf >/dev/null; then
                          dnf install -y jq util-linux unzip
                      elif command -v yum >/dev/null; then
                          yum install -y jq util-linux unzip
                      else
                          print "❌ 无法识别包管理器,请手动安装 jq uuid-runtime unzip" $RED
                          continue
                      fi
                      print "✅ 依赖安装完成" $GREEN
      
                      prompt_replace_file "/opt/ppp/ppp.sh" "${GITHUB_PROXY}https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/config/ppp.sh" "ppp.sh" || continue
                      chmod +x ppp.sh
      
                      read -p "是否自行修改 appsettings.json?(y/n,默认 n): " SELF
                      if [[ "$SELF" =~ ^[Yy]$ ]]; then
                          print "请手动修改 /opt/ppp/appsettings.json 后,运行选项 2" $YELLOW
                          create_ppp_shortcut
                          continue
                      fi
      
                      prompt_replace_file "/opt/ppp/appsettings.json" "${GITHUB_PROXY}https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/config/appsettings.json" "appsettings.json" || continue
      
                      read -p "服务器 IP(默认 0.0.0.0): " NEW_IP
                      read -p "端口(默认 20000): " NEW_PORT
                      read -p "GUID(留空自动生成): " NEW_GUID
      
                      NEW_IP=${NEW_IP:-0.0.0.0}
                      NEW_PORT=${NEW_PORT:-20000}
                      [[ -z "$NEW_GUID" ]] && NEW_GUID=$(uuidgen)
      
                      PROTOCOL_KEY=$(tr -dc 'a-zA-Z0-9' </dev/urandom | head -c 16)
                      TRANSPORT_KEY=$(tr -dc 'a-zA-Z0-9' </dev/urandom | head -c 16)
      
                      cp -f appsettings.json appsettings.json.bak 2>/dev/null
      
                      jq --indent 4 \
                          --arg ip "$NEW_IP" --arg port "$NEW_PORT" --arg guid "$NEW_GUID" \
                          --arg pkey "$PROTOCOL_KEY" --arg tkey "$TRANSPORT_KEY" '
                          .tcp.listen.port = ($port|tonumber) |
                          .udp.listen.port = ($port|tonumber) |
                          .udp.static.servers[0] = ($ip + ":" + $port) |
                          .client.server = ("ppp://" + $ip + ":" + $port) |
                          .client.guid = $guid |
                          .key."protocol-key" = $pkey |
                          .key."transport-key" = $tkey
                      ' appsettings.json > temp.json && mv temp.json appsettings.json
      
                      prompt_replace_file "/etc/systemd/system/ppp.service" "${GITHUB_PROXY}https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/config/ppp.service" "ppp.service" || continue
      
                      chmod 644 /etc/systemd/system/ppp.service
                      systemctl daemon-reload
                      systemctl enable --now ppp.service
      
                      if systemctl is-active --quiet ppp.service; then
                          print "🎉 安装成功!服务已启动" $GREEN
                          create_ppp_shortcut
                      else
                          print "⚠️ 服务启动失败,请检查日志" $YELLOW
                      fi
                  fi
                  ;;
      
              2)
                  if [ ! -f "/opt/ppp/appsettings.json" ]; then
                      print "❌ 未找到 appsettings.json,请先运行选项 1" $RED
                      continue
                  fi
                  cd /opt/ppp || { print "❌ /opt/ppp 目录不存在" $RED; continue; }
      
                  prompt_replace_file "/etc/systemd/system/ppp.service" \
                      "${GITHUB_PROXY:-https://git.apad.pro/}https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/config/ppp.service" \
                      "ppp.service" || continue
      
                  systemctl daemon-reload && systemctl enable --now ppp.service
                  print "✅ 系统服务配置完成并启动" $GREEN
                  ;;
      
              4) systemctl restart ppp.service && print "✅ 服务已重启" $GREEN ;;
              5) systemctl stop ppp.service && print "✅ 服务已停止" $GREEN ;;
              6)
                  print "=== ppp.log(前 50 行)===" $BLUE
                  if [ -f "/opt/ppp/ppp.log" ]; then
                      head -n 50 /opt/ppp/ppp.log
                  else
                      print "日志文件不存在" $YELLOW
                  fi
                  echo
                  print "=== ppp.service 状态 ===" $BLUE
                  systemctl status ppp.service --no-pager -l
                  ;;
              7)
                  print "🗑️ 开始卸载..." $YELLOW
                  systemctl stop ppp.service 2>/dev/null
                  systemctl disable ppp.service 2>/dev/null
                  rm -f /etc/systemd/system/ppp.service
                  systemctl daemon-reload
      
                  print "是否保留配置文件?(默认保留)" $BLUE
                  read -p "输入 y 保留(默认),n 删除: " KEEP_CONFIG
                  if [[ "$KEEP_CONFIG" =~ ^[Nn]$ ]]; then
                      rm -rf /opt/ppp
                      print "✅ 已删除所有文件" $GREEN
                  else
                      rm -f /opt/ppp/ppp /opt/ppp/ppp.sh /opt/ppp/openppp2-linux-*.zip 2>/dev/null
                      print "✅ 已保留配置文件" $GREEN
                  fi
                  rm -f /usr/local/bin/ppp
                  print "✅ 卸载完成" $GREEN
                  exit 0
                  ;;
              8)
                  create_ppp_shortcut
                  ;;
              9)
                  print "🌍 更新本脚本 - 请选择方式" $BLUE
                  echo "1) 使用国内加速 (推荐)"
                  echo "2) 直连 GitHub"
                  read -p "请输入 [1-2](默认 1): " UPDATE_MODE
                  if [ "$UPDATE_MODE" = "2" ]; then
                      UPDATE_URL="https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/ppp_install.sh"
                  else
                      UPDATE_URL="https://git.apad.pro/https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/ppp_install.sh"
                  fi
                  print "📥 正在下载最新脚本..." $BLUE
                  wget -4 -O /root/ppp_install.sh "$UPDATE_URL" && chmod +x /root/ppp_install.sh
                  if [ $? -eq 0 ]; then
                      print "✅ 脚本更新成功!正在重新启动..." $GREEN
                      exec /root/ppp_install.sh
                  else
                      print "❌ 更新失败" $RED
                  fi
                  ;;
              10)
                  print "👋 退出脚本" $GREEN
                  exit 0
                  ;;
              *)
                  print "❌ 无效选项" $RED
                  ;;
          esac
      
          echo
          read -p "按 Enter 键返回主菜单..."
      done
      发布在 软件教程 openppp2
      clouldonC
      clouldon
    • openppp2简易使用教程

      1.openppp2项目简介

      介绍一种VPN-openppp2,目前来看不会被墙,而且支持内网穿透,虚拟子网,UDP多线路宽频聚合,CDN转发,国内自动BGP分流等等更多功能看github
      仓库:https://github.com/liulilittle/openppp2
      使用指南:https://github.com/liulilittle/openppp2/blob/main/README_CN.md

      下文将openppp2简称为ppp
      ppp目前在IPv6上支持不好,不太能跑在IPv6上,使用前得把IPv4优先或者禁用IPv6(Window客户端),如果是直连比较吃线路,除非个人会调整网络调优,或是使用CDN转发。
      其在Linux下运行支持较为良好,而在Windows上常常会遇到奇奇怪怪的问题(IPv6问题导致无法进行有效通讯),作者已给出部分解决方法,见使用指南。

      原版安装参考原文-快速开始

      2.脚本简介及服务端安装

      因为最近使用了AI写了一键脚本,在Debian系统里面还是可用的。

      wget -4 -O ppp_install.sh https://raw.githubusercontent.com/zouazhi/zouazhi/main/ppp/ppp_install.sh && chmod +x ppp_install.sh && ./ppp_install.sh
      

      脚本地址:https://github.com/zouazhi/zouazhi/blob/main/ppp/ppp_install.sh
      拉取脚本之后,

      ✅ 脚本启动,进入主循环
      openppp2一键脚本
      请选择操作:
      1) 服务端-自动交互安装[完整安装ppp及配置,系统服务]
      2) 服务端-自行修改配置[跳过配置文件,直通系统服务]
      3) 通用-更新[更新openppp2二进制文件并重新配置服务]
      4) 通用-重启[重启ppp服务]
      5) 通用-停止[停止ppp服务]
      6) 通用-查看运行状况[查看ppp.log和系统服务状态]
      7) 通用-卸载ppp[删除文件-删除重载系统服务]
      8) 退出脚本
      请输入选项[1-8]: 
      

      2.1全新服务端安装

      数字1就会安装jq、uuidgen 和 unzip,拉取启动脚本,和部分改好的配置文件,和系统服务功能。
      工作目录默认放在opt/ppp下,此时可以选择(1自行修改或(2交互式输入,如下所示。

      ✅ ppp.sh 启动脚本 拉取完成
      ✅ ppp.sh 启动脚本 已具有可执行权限
      是否自行修改 appsettings.json 文件?
      1) 是(脚本将暂停)
      2) 否(通过脚本输入 IP、端口和 GUID)
      请输入选项 (1/2): 
      

      以下介绍两个1-1和1-2的不同

      2.2修改配置文件和交互

      (2交互较为简单,只需要输入数字2,然后输入IP,端口,GUID,后续会进行配置文件的补全,并完成启动,完成这一步的的直接转到[[#3.客户端使用]]
      对于自行修改配置文件
      (1则需要修改opt/pppppsettings.json里面tcp,udp监听端口(默认20000)以及udp下的"servers": ["1.1.1.1:20000"],"client"下的"guid",和"server"(默认为ppp://1.1.1.1:20000),其中1.1.1.1即为入口的IP,20000即为工作端口。

      附GUID生成网站:https://www.guidgen.com/

      该脚本拉取的配置文件是经修改的精简版本,方便快速启动并默认开启内网穿透,更多内容请看上文仓库原文配置文件及使用说明。

      2.3自行修改配置文件后续

      该为选择1-1之后脚本暂停之后重新执行脚本,即为主循环中的2。
      优先参考原文
      重新执行脚本:

      bash /root/ppp_install.sh
      

      即会自动拉取启动脚本和系统服务。

      2.4服务端启动脚本及系统服务

      若是选择服务端的启动脚本为下所示,放置于/opt/ppp/ppp.sh内

      ./ppp --mode=server > ./ppp.log
      

      脚本内系统服务为引用改sh文件进行服务运行,系统服务如下所示

      [Unit]
      Description=PPP PRIVATE NETWORK™ 2
      After=network.target network-online.target
      
      [Service]
      Type=simple
      User=root
      Group=root
      WorkingDirectory=/opt/ppp
      ExecStart=/bin/bash /opt/ppp/ppp.sh
      Restart=always
      RestartSec=20
      StartLimitBurst=5
      SyslogIdentifier=ppp
      
      [Install]
      WantedBy=multi-user.target
      

      即可以使用service ppp stop等service系统服务命令进行控制

      相应的查看当前运行状况可以采用检查service ppp status和/opt/ppp/ppp.log来判断运行状况。
      其中/opt/ppp/ppp.log其实为实时运行图:

      PPP                                                                             
      --------------------------------------------------------------------------------
      Application started. Press Ctrl+C to shut down.                             
      Max Concurrent        : 1                                                   
      Process               : 149273                                              
      Triplet               : linux:X86_64                                        
      Cwd                   : /opt/ppp             
      Template              : /opt/ppp/appsettings.json  
      Public IP             : ::               
      Interface IP          : ::                  
      Service 1             : [::]:20000/ppp+tcp   
      Service 2             : [::]:20000/ppp+udp  
      Hosting Environment   : server:production                                      
      VPN                              
      ----------------------------------------------------------------------------
      Duration              : 00:35:46   
      Sessions              : 0        
      TX                    : 0.000000 B   
      RX                    : 0.000000 B    
      IN                    : 21.000000 B   
      OUT                   : 6.154297 KB   
      

      实际上,openppp2的启动命令为./ppp --mode=server,在终端输入即可得到实时运行的流量变化,客户端数等内容,但其为前台运行,本脚本将其运行页面写入ppp.log以便管理
      同样你也可以使用screen等工具使其在后台启动(目录下自行./ppp --mode=server),此时并不需要系统服务,望读者注意。

      3.客户端使用

      客户端和服务端使用同一套二进制文件,同样对于配置文件,其中包括服务端部分和客户端部分,最简化的配置文件只需包含各自服务端/客户端的配置内容。
      上文所提到的配置文件已经包括客户端,服务端两部分,即是通用的。所以直接从服务端拉取配置文件即可,对于每个不同的客户端,其GUID不能相同,但从服务端拉取的配置文件是修改过的,且当前主机为第一客户端,所以不用修改,与其他小伙伴共享时也需修改其GUID。另外对于下文启用了--tun-vnet=yes的--tun-ip=10.0.0.5 同时在线的子网IP也不能相同。

      3.1Windows

      Windows用户若存在IPv4/IPv6双栈问题请阅读原文并尝试使用以下命令,或者直接禁用IPv6。

      原文

      命令 功能 格式
      --system-network-reset 网络重置 --system-network-reset
      --system-network-optimization 性能优化 --system-network-optimization
      --system-network-preferred-ipv4 设置IPV4网络优先 --system-network-preferred-ipv4
      --system-network-preferred-ipv6 设置IPV6网络优先 --system-network-preferred-ipv6
      --no-lsp 禁用LSP --no-lsp

      优先参考原文

      1. 现于releases中下载openppp2-windows-amd64.zip
      2. 解压后去除cmcc_cidr.txt, crtc_cidr.txt, ip.txt, starrylink.net.key, starrylink.net.pem, appsettings.json,然后放入服务器拉取的appsettings.json。
      3. 新建bat文件start.bat填入以下命令
      start ppp.exe --mode=client --config=./config/修改这里.json --auto-pull-iplist --tun-ip=10.0.0.5 --tun-gw=10.0.0.0 --tun-mask=24 --tun-host=yes --link-restart=3  --tun-vnet=yes --tun-static=no --block-quic=yes --set-http-proxy=no --tun-mux-acceleration=3 --tun-ssmt=4/st 
      

      其中--tun-host为控制网络走VPN
      --tun-static为是否启用udp静态隧道
      --config=./config/修改这里.json为配置文件目录,此为例子,按需修改。如果配置文件名为appsettings.json则为--config=./appsettings.json。
      更多命令参考原文
      然后点击start.bat即可

      3.2Linux客户端

      对于Linux其运行和提到的服务端相似,而启动命令可以参照下

      ./ppp --mode=client --config=./ggvHK.json --tun-ip=10.0.0.88 --tun-gw=10.0.0.0 --tun-mask=24 --tun-host=no --link-restart=3 --tun-mux-acceleration=3 --tun-static=no --tun-ssmt=4/st --block-quic=yes > ./ppp.log
      

      可以使用一键脚本写入,将启动sh文件将服务端的--mode=server改为--mode=client即可。

      3.3启动后

      启动后可以用ping去简易判断连接情况,不受--tun-host影响

      PS C:\Users\2233\Desktop> ping 10.0.0.1
      
      正在 Ping 10.0.0.1 具有 32 字节的数据:
      来自 10.0.0.1 的回复: 字节=32 时间=73ms TTL=127
      来自 10.0.0.1 的回复: 字节=32 时间=67ms TTL=127
      来自 10.0.0.1 的回复: 字节=32 时间=70ms TTL=127
      来自 10.0.0.1 的回复: 字节=32 时间=73ms TTL=127
      

      对于IPv6问题的用户可以采用http代理的模式替代,可以使用启动命令的--set-http-proxy=yes进行系统代理,或自行代理。配置文件默认使用8080端口进行http代理(sock5帮我删掉了)。

      "http-proxy": {
                  "bind": "0.0.0.0",
                  "port": 8080
              }
      

      点击查看启动图

      发布在 软件教程 openppp2
      clouldonC
      clouldon