跳转至内容
  • 版块
  • 最新
  • 热门
  • 用户
  • 友链
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

Clouodon Blog

clouldonC

clouldon

@clouldon
administrators
关于
帖子
9
主题
6
分享
0
群组
2
粉丝
1
关注
1

帖子

最新 最佳 有争议的

  • Rustdesk自托管中继服务端安装教程
    clouldonC clouldon

    下面就是 只安装 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

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

    哲学基础

  • Mumble 语音服务器搭建
    clouldonC clouldon

    所实践过的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

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

    哲学基础

  • 作为生活本身的哲学基础的操练
    clouldonC clouldon

    居然是推特吗,那很多了

    哲学基础

  • Linux自用命令脚本
    clouldonC clouldon

    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 (未做严格测试).
    
    软件教程

  • ppp_install.sh
    clouldonC clouldon

    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

  • openppp2简易使用教程
    clouldonC clouldon

    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

  • Welcome to your NodeBB!
    clouldonC clouldon

    Welcome to your brand new NodeBB forum!

    This is what a topic and post looks like. As an administrator, you can edit the post's title and content.
    To customise your forum, go to the Administrator Control Panel. You can modify all aspects of your forum there, including installation of third-party plugins.

    Additional Resources

    • NodeBB Documentation
    • Community Support Forum
    • Project repository
    讨论
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
Powered by Clouldon Contributors
萌ICP备20251430号
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 热门
  • 用户
  • 友链