跳转至内容
BakeHub
BakeHub 工科开源社群
  • 登录
  • 首页
  • 项目
  • 论坛
  • 活动
  • 关于
  • AI 助手
  • 首页
  • 项目
  • 论坛
  • 活动
  • 关于
  • AI 助手
鲁迪乌斯鲁

鲁迪乌斯

@鲁迪乌斯
取消关注 关注
关于
帖子
8
主题
6
分享
0
群组
0
粉丝
3
关注
2

帖子

最新 最佳 有争议的

  • 教你如何搭建属于自己的机场,Docker Compose 部署 sing-box + Hysteria2
    鲁迪乌斯鲁 鲁迪乌斯

    使用 Docker Compose 部署 sing-box + Hysteria2
    本文介绍 sing-box 的作用,并以 Hysteria2 服务端为例,给出一套可维护的 Docker Compose 部署与客户端使用方法。文中的域名、密码和路径均为示例,请替换后再使用。
    一、项目地址与官方资料
    开源仓库:SagerNet/sing-box
    官方文档:sing-box.sagernet.org
    Docker 部署文档:Docker - sing-box
    Hysteria2 服务端配置:Hysteria2 Inbound
    Hysteria2 客户端配置:Hysteria2 Outbound
    官方图形客户端:Graphical Clients
    sing-box 官方将其定义为“The universal proxy platform”,即通用代理平台。项目采用 Go 开发,主体按 GPL-3.0-or-later 发布。
    二、sing-box 有什么作用
    sing-box 是一个可同时充当代理服务端和客户端的网络代理核心。它通过 JSON 配置文件组合入站、出站、DNS 和路由规则,支持 Hysteria2、Shadowsocks、Trojan、VLESS、TUIC、WireGuard 等多种协议。
    典型用途包括:
    在自己的服务器和设备之间建立加密代理通道;
    根据域名、IP、端口或规则集进行分流;
    在 Android、iOS、macOS、Windows 和 Linux 上使用统一配置;
    作为其他网关或代理软件的底层网络核心。
    本文使用的 Hysteria2 基于 QUIC,主要承载在 UDP 上。在高延迟或存在一定丢包的网络中,它通常比传统 TCP 代理更容易保持吞吐量,但它并不能突破服务器带宽上限,也不能解决所有线路质量问题。
    请仅在法律和服务条款允许的范围内使用。
    三、本文部署结构
    客户端
    |
    | Hysteria2 + TLS + UDP/8443
    v
    云服务器公网 IP
    |
    v
    Docker(host 网络)
    |
    v
    sing-box hysteria2 inbound
    |
    v
    direct outbound -> 目标网站
    使用 network_mode: host 后,容器直接监听宿主机 UDP 端口,不需要在 Compose 中编写 ports 映射。Hysteria2 是 QUIC/UDP 服务,所以防火墙必须放行 UDP,而不是只放行同端口的 TCP。
    四、服务器准备
    建议准备:
    一台具有公网 IPv4 或 IPv6 的 Linux 服务器;
    Ubuntu 22.04 或更新版本;
    一个解析到服务器公网 IP 的域名,例如 hy2.example.com;
    Docker Engine 与 Docker Compose Plugin;
    云厂商安全组和系统防火墙均允许目标 UDP 端口。

    1. 安装 Docker
      下面以 Ubuntu 为例。若服务器已经安装 Docker,可跳过这一节。
      sudo apt-get update
      sudo apt-get install -y ca-certificates curl
      sudo install -m 0755 -d /etc/apt/keyrings
      sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg
       -o /etc/apt/keyrings/docker.asc
      sudo chmod a+r /etc/apt/keyrings/docker.asc
      ​
      echo
       "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu
       $(. /etc/os-release && echo "$VERSION_CODENAME") stable" |
       sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
      ​
      sudo apt-get update
      sudo apt-get install -y docker-ce docker-ce-cli containerd.io
      docker-buildx-plugin docker-compose-plugin
      ​
      sudo docker version
      sudo docker compose version
    2. 配置域名和防火墙
      将 hy2.example.com 的 A 记录指向服务器公网 IPv4。若使用 IPv6,再添加 AAAA 记录。
      使用 UFW 时可以这样放行:
      sudo ufw allow 22/tcp
      sudo ufw allow 80/tcp
      sudo ufw allow 8443/udp
      sudo ufw status
      80/tcp 用于 Certbot 申请和续期证书。如果服务器上已有 Nginx 或 Caddy,应改用与现有 Web 服务兼容的 ACME 验证方式。云厂商安全组也需要单独放行 8443/udp。
    3. 申请可信 TLS 证书
      sudo apt-get update
      sudo apt-get install -y certbot
      ​
      sudo certbot certonly --standalone
       -d hy2.example.com
       --agree-tos
       --email admin@example.com
       --non-interactive
      证书通常位于:
      /etc/letsencrypt/live/hy2.example.com/fullchain.pem
      /etc/letsencrypt/live/hy2.example.com/privkey.pem
      生产环境推荐使用受信任 CA 签发的证书。自签名证书也能工作,但客户端必须安全地取得并信任该证书;不建议长期使用“跳过证书验证”。
      五、创建服务端配置
      创建部署目录:
      sudo install -d -m 700 /opt/sing-box-hy2
      cd /opt/sing-box-hy2
      生成两个彼此独立的随机密码:
      openssl rand -base64 32
      openssl rand -base64 32
      第一个作为用户认证密码,第二个作为 Salamander 混淆密码。不要把密码提交到 Git 仓库,也不要直接放进公开博客。
      创建 /opt/sing-box-hy2/config.json:
      {
       "log": {
         "level": "info",
         "timestamp": true
      },
       "inbounds": [
        {
           "type": "hysteria2",
           "tag": "hy2-in",
           "listen": "::",
           "listen_port": 8443,
           "up_mbps": 100,
           "down_mbps": 300,
           "obfs": {
             "type": "salamander",
             "password": "请替换为混淆密码"
          },
           "users": [
            {
               "name": "user1",
               "password": "请替换为认证密码"
            }
          ],
           "tls": {
             "enabled": true,
             "server_name": "hy2.example.com",
             "alpn": [
               "h3"
            ],
             "certificate_path": "/etc/letsencrypt/live/hy2.example.com/fullchain.pem",
             "key_path": "/etc/letsencrypt/live/hy2.example.com/privkey.pem"
          }
        }
      ],
       "outbounds": [
        {
           "type": "direct",
           "tag": "direct"
        }
      ]
      }
      up_mbps 和 down_mbps 是 Hysteria2 拥塞控制使用的最大带宽参数,单位为 Mbps。应按照线路的实际可用带宽设置,不是填写得越大越好。服务端和客户端需要使用合理、匹配的带宽值。
      限制配置文件权限:
      sudo chmod 600 /opt/sing-box-hy2/config.json
      六、创建 Docker Compose 文件
      创建 /opt/sing-box-hy2/docker-compose.yml:
      services:
      sing-box-hy2:
      image: ghcr.io/sagernet/sing-box:latest
      container_name: sing-box-hy2
      restart: unless-stopped
      network_mode: host
      volumes:
      • ./config.json:/etc/sing-box/config.json:ro
      • /etc/letsencrypt:/etc/letsencrypt:ro
        command: -D /var/lib/sing-box -C /etc/sing-box run
        logging:
        driver: json-file
        options:
        max-size: 10m
        max-file: "3"
        官方文档使用 ghcr.io/sagernet/sing-box 镜像。生产环境更稳妥的做法是先验证版本,再把 latest 改为经过测试的具体版本标签,避免上游更新后出现不兼容变化。
        七、检查并启动服务
        先让 sing-box 检查配置语法:
        cd /opt/sing-box-hy2
        sudo docker compose run --rm sing-box-hy2
        -C /etc/sing-box check
        确认没有错误后启动:
        sudo docker compose pull
        sudo docker compose up -d
        sudo docker compose ps
        sudo docker compose logs --tail=100 sing-box-hy2
        检查 UDP 端口:
        sudo ss -lunp | grep ':8443'
        Hysteria2 使用 UDP,不能用浏览器、curl 或普通 TCP 端口检测来判断它是否正常。最可靠的验证方式是查看服务日志并使用配置正确的 Hysteria2 客户端实际连接。
        八、客户端怎么配置
        官方图形客户端包括:
        Android:sing-box for Android
        iOS、macOS、Apple tvOS:sing-box for Apple platforms
        Windows、Linux:sing-box for Desktop
        在图形客户端中新建 Hysteria2 节点时,各字段与服务端的对应关系如下:
        客户端字段示例必须与服务端一致Server / 地址hy2.example.com是Port / 端口8443是Password / 认证密码服务端 users[].password是Obfs typesalamander是Obfs password服务端 obfs.password是TLS开启是Server name / SNIhy2.example.com必须匹配证书ALPNh3建议一致Allow insecure关闭生产环境应关闭
        保存节点后,选择该配置并开启系统代理或 TUN/VPN 模式。只创建节点但没有启用系统代理或 VPN 模式时,系统流量不会自动经过该节点。
        使用 sing-box JSON 客户端
        下面是一份适合命令行或桌面端导入的最小客户端示例。它在本机 127.0.0.1:2080 提供 HTTP/SOCKS 混合代理:
        {
        "log": {
        "level": "info",
        "timestamp": true
        },
        "inbounds": [
        {
        "type": "mixed",
        "tag": "mixed-in",
        "listen": "127.0.0.1",
        "listen_port": 2080
        }
        ],
        "outbounds": [
        {
        "type": "hysteria2",
        "tag": "hy2-out",
        "server": "hy2.example.com",
        "server_port": 8443,
        "up_mbps": 20,
        "down_mbps": 100,
        "obfs": {
        "type": "salamander",
        "password": "请替换为混淆密码"
        },
        "password": "请替换为认证密码",
        "tls": {
        "enabled": true,
        "server_name": "hy2.example.com",
        "alpn": [
        "h3"
        ]
        }
        }
        ],
        "route": {
        "final": "hy2-out",
        "auto_detect_interface": true
        }
        }
        启动客户端核心后,把浏览器或操作系统代理设置为:
        地址:127.0.0.1
        端口:2080
        类型:HTTP 或 SOCKS5
        如果服务端使用自签名证书
        更安全的做法是通过可信渠道把服务端的公开证书 cert.pem 传给客户端,并在客户端 TLS 配置中加入:
        {
        "enabled": true,
        "server_name": "证书中的域名",
        "certificate_path": "/客户端上的安全路径/cert.pem",
        "alpn": [
        "h3"
        ]
        }
        insecure: true 会接受任意服务器证书,容易受到中间人攻击,只适合短时间排障,不应作为正式配置。
        九、日常维护
        查看状态和日志:
        cd /opt/sing-box-hy2
        sudo docker compose ps
        sudo docker compose logs --tail=200 sing-box-hy2
        sudo docker stats sing-box-hy2
        修改配置后,先检查再重启:
        sudo docker compose run --rm sing-box-hy2
        -C /etc/sing-box check
        sudo docker compose restart sing-box-hy2
        更新镜像:
        sudo docker compose pull
        sudo docker compose up -d
        sudo docker image prune
        十、常见问题
    4. 客户端一直超时
      重点检查云安全组和 UFW 是否放行 8443/udp,以及服务端是否真的监听 UDP 端口。只开放 8443/tcp 没有作用。
    5. 出现证书验证失败
      检查客户端 server_name 是否与证书域名一致、域名是否解析到正确 IP、证书是否过期。自签名证书还需要客户端显式信任对应证书。
    6. 日志提示认证失败
      客户端的认证密码必须与服务端 users[].password 完全一致。用户名只是服务端用于区分用户,sing-box 的 Hysteria2 认证核心字段是密码。
    7. 开启 Salamander 后无法连接
      客户端和服务端的 obfs.type、obfs.password 必须同时一致。排查时可以在两端同时暂时移除 obfs,不能只改一端。
    8. 节点连接成功但应用没有流量
      确认图形客户端已启用系统代理或 TUN/VPN 模式。若只使用本地 mixed 入站,还需要把应用代理指向 127.0.0.1:2080。
      总结
      sing-box 是一个通用代理平台,Hysteria2 只是它支持的协议之一。部署成功的关键点并不多:服务端开放正确的 UDP 端口、两端认证与混淆参数一致、TLS 域名匹配,并在客户端真正启用系统代理或 TUN/VPN 模式。生产环境还应固定经过验证的镜像版本、限制日志大小、保护配置权限,并建立证书续期后的重启机制。
    经验分享

  • SillyTavern:把 AI 对话变成角色、世界与长期故事
    鲁迪乌斯鲁 鲁迪乌斯

    @左伶笙 这当然是群主做的、太佬了

    经验分享 ai 聊天工具

  • SillyTavern:把 AI 对话变成角色、世界与长期故事
    鲁迪乌斯鲁 鲁迪乌斯

    SillyTavern:把 AI 对话变成角色、世界与长期故事

    如果你已经用过普通 AI 聊天工具,大概熟悉这样的流程:打开页面、输入问题、得到答案,然后开始下一轮对话。
    SillyTavern 想做的事情更进一步。
    它不只是给大模型套上一层聊天框,而是把角色设定、人物关系、世界背景、长期剧情、提示词、语音、图片和扩展能力组织到同一个界面里。你可以创建一个有性格、有经历、有表达习惯的角色,也可以搭建一整个故事世界,让多个角色在同一场景中持续互动。
    对于喜欢 AI 角色扮演、互动小说、创意写作和模型调试的人来说,SillyTavern 是目前最值得了解的开源 LLM 前端之一。

    官方仓库:github.com/SillyTavern/SillyTavern 官方文档:docs.sillytavern.app


    SillyTavern 到底是什么

    SillyTavern,简称 ST,是一个安装在本地电脑或自有服务器上的开源用户界面。它可以连接文本生成大模型、图像生成引擎和语音模型,为用户提供统一的 AI 交互工作台。
    官方给它的定位非常直接:

    LLM Frontend for Power Users.

    也就是“面向深度用户的 LLM 前端”。
    这里有一个必须先说明的区别:SillyTavern 本身不是大模型,也不会凭空生成内容。 它负责管理界面、角色、提示词、上下文和扩展功能,真正的文本生成仍然来自你连接的模型服务。
    它可以接入 OpenAI、OpenRouter、Claude、Mistral、NovelAI、KoboldAI/KoboldCpp、Text Generation WebUI、TabbyAPI、AI Horde 等多种后端,也可以连接部署在自己电脑上的本地模型。
    这种前后端分离的设计带来了很大的自由度:界面和角色数据由自己管理,模型可以按需求更换,不必把全部体验绑定在单一平台上。

    为什么它比普通聊天页面更有吸引力

    1. 角色不再只是一段临时提示词

    在普通聊天工具里,我们经常需要反复告诉模型:“你是谁”“你应该怎样说话”“故事发生在哪里”。
    SillyTavern 将这些内容整理成角色卡。角色卡可以包含:

    • 角色姓名、头像和人物介绍;
    • 性格、语言风格和行为边界;
    • 故事开场和示例对话;
    • 与用户或其他角色的关系;
    • 创作者补充的隐藏设定。

    选择角色后就可以直接开始对话,不必每次重新输入整套设定。角色卡还能导入、导出和备份,适合长期创作和多人分享。

    2. 用“世界书”管理庞大的背景设定

    当故事涉及城市、组织、魔法体系、历史事件或大量人物关系时,把所有背景一次性塞进提示词既浪费上下文,也容易干扰模型。
    SillyTavern 的 World Info 通常被中文用户称为“世界书”。它可以根据对话中出现的关键词,动态把相关设定加入上下文。
    比如对话提到“银月城”,系统才加载这座城市的地理、势力和历史;提到某个组织时,再补充组织设定。这样既能保持世界观一致,也能更有效地使用模型上下文。

    3. 支持多人角色群聊

    一个角色适合一对一交流,多个角色则能构成真正的场景。
    在群聊中,不同角色可以拥有各自的角色卡、表达方式和关系设定。它适合桌面角色扮演、互动剧本、故事推演、虚拟团队讨论,也适合测试同一个模型对多角色上下文的处理能力。

    4. 模型可以随时更换

    SillyTavern 的价值不只在“能接很多 API”,还在于它把角色与模型相对分离。
    同一张角色卡可以连接不同模型进行测试。你可以比较不同模型的语言风格、上下文理解、创意能力、速度与成本,再为不同场景选择最合适的后端。
    这对于模型爱好者、提示词研究者和内容创作者尤其有用。

    5. 不止文字,还能加入图片和语音

    通过内置能力和扩展,SillyTavern 可以连接 Automatic1111、ComfyUI 等图像生成服务,还支持 TTS、语音识别、角色表情、Live2D、VRM、翻译、摘要、网页搜索和聊天向量化等功能。
    这些模块不是简单堆叠功能。合理组合后,文字对话可以变成带立绘、配音、场景图和角色表情的互动体验。

    6. 高度可调的提示词与界面

    普通聊天产品往往只提供少量参数。SillyTavern 面向的则是希望掌控细节的用户:提示词顺序、上下文组成、生成参数、消息格式、角色行为和界面主题都可以进一步调整。
    新手可以直接使用默认配置,熟悉之后再逐步深入,不需要第一天就理解所有参数。

    7. 数据掌握在自己的部署环境中

    角色、聊天记录、世界书和大部分配置会保存在本机或自有服务器的数据目录中,便于备份和迁移。
    但“本地部署”不等于所有数据都不离开设备。如果连接的是第三方模型 API,对话内容仍会发送给相应服务商处理。对隐私敏感时,应阅读模型提供商的政策,或连接自己部署的本地模型。

    哪些人适合使用 SillyTavern

    SillyTavern 特别适合以下用户:

    • 希望获得长期、有设定的 AI 角色对话体验;
    • 喜欢互动小说、世界观设计或跑团;
    • 需要管理角色卡、人物关系与大量背景资料;
    • 想在统一界面中比较不同大模型;
    • 使用本地模型,希望拥有功能完整的前端;
    • 研究提示词、上下文结构和模型行为;
    • 希望把文本、图片、语音和角色表现组合起来。

    如果你只想偶尔问一个简单问题,普通聊天页面可能更直接。如果你希望塑造角色、管理世界、保留长期内容并不断扩展玩法,SillyTavern 的优势才会真正体现出来。

    从安装到第一次对话

    SillyTavern 的基本使用流程可以概括为五步:

    1. 安装或打开 SillyTavern。
    2. 创建自己的 Persona,也就是你在对话中的身份。
    3. 在 API Connections 中连接模型服务。
    4. 选择或导入一张角色卡。
    5. 发送第一条消息,开始对话。

    第一步:连接模型 API

    打开顶部的 API Connections,根据自己使用的服务选择 API 类型和来源,填写 API Key、接口地址和模型名称,然后点击连接。
    API Key 相当于模型账户的密码。不要出现在截图、角色卡、公开配置、Git 仓库或博客文章中。部分商业模型会按 Token 计费,连接前应先确认价格和额度。

    第二步:设置 Persona

    Persona 代表“对话中的你”。它可以只是一个名字,也可以包含身份、性格、经历和与角色的关系。
    同一个角色面对不同 Persona 时,故事可以呈现完全不同的发展方向。

    第三步:选择角色

    可以使用自带示例角色,也可以创建或导入角色卡。第一次体验时,不必一开始就堆叠大量设定。先用清晰的人物背景、性格和开场白测试效果,再逐步完善。

    第四步:发送消息

    输入内容后,SillyTavern 会根据角色卡、Persona、世界书、聊天历史和当前提示词组织请求,再交给模型生成回复。
    如果回复不符合预期,可以重新生成、编辑消息、调整提示词或切换模型,而不必放弃整个对话。

    使用 Docker 快速部署

    官方文档推荐使用 Docker Compose 和 GitHub Container Registry 中的预构建镜像。下面是一份适合个人部署的精简示例。
    创建目录:

    mkdir -p /opt/sillytavern/{config,data,plugins,extensions}
    cd /opt/sillytavern

    创建 docker-compose.yml:

    services:
      sillytavern:
        image: ghcr.io/sillytavern/sillytavern:latest
        container_name: sillytavern
        restart: unless-stopped
        ports:
          - "127.0.0.1:8000:8000"
        volumes:
          - ./config:/home/node/app/config:rw
          - ./data:/home/node/app/data:rw
          - ./plugins:/home/node/app/plugins:rw
          - ./extensions:/home/node/app/public/scripts/extensions/third-party:rw

    启动服务:

    docker compose pull
    docker compose up -d
    docker compose ps
    docker compose logs --tail=100 sillytavern

    在服务器本机访问:

    http://127.0.0.1:8000

    官方 Docker 文档特别提醒:不要在没有额外安全措施的情况下把 SillyTavern 直接暴露到公网。
    示例只把端口绑定到 127.0.0.1。如果需要远程访问,建议选择以下方案之一:

    • 通过 WireGuard、Tailscale 等 VPN 访问;
    • 使用 SSH 端口转发;
    • 使用 HTTPS 反向代理,并配置身份认证;
    • 使用 SillyTavern 的多用户或 SSO 能力并做好权限控制。

    公开服务还需要限制上传、插件安装和管理入口,并定期备份 config、data、plugins 和 extensions 目录。
    完整官方安装说明:Docker Installation

    使用前需要知道的三件事

    1. 它不会赠送商业模型额度

    SillyTavern 是前端。使用 OpenAI、OpenRouter、Claude 等商业服务时,仍需要相应账户、API Key 和可用额度。

    2. 最终效果取决于模型和配置

    角色卡很重要,但模型能力、上下文长度、采样参数和提示词结构同样会影响回复。更复杂的配置不一定产生更好的效果,稳定清晰通常比参数堆叠更有价值。

    3. 扩展需要谨慎安装

    第三方扩展和服务器插件能够显著增强功能,也可能执行额外代码。只安装来源可信、维护活跃且确实需要的项目,并在升级前做好备份。

    常见问题

    SillyTavern 是免费的吗?

    SillyTavern 本身是开源软件,采用 AGPL-3.0 许可证。模型 API、云服务器、图片生成或语音服务可能产生额外费用。

    一定需要高性能显卡吗?

    不一定。官方说明 SillyTavern 前端只需要能够运行 Node.js 20 或更高版本的设备。如果连接云端 API,前端本身对硬件要求很低。只有在本机运行大模型、图像或语音推理时,显卡和内存需求才会明显增加。

    可以在手机上使用吗?

    可以。SillyTavern 提供适配移动设备的界面,也有 Android Termux 安装文档。更省事的方式是在自己的服务器或电脑上运行,再通过安全的内网、VPN 或 HTTPS 入口访问。

    可以接入本地模型吗?

    可以。它支持多种本地推理后端。SillyTavern 负责界面和上下文,本地推理程序负责真正生成文本。

    聊天内容是否完全私密?

    角色和聊天记录可以保存在自己的设备或服务器上,但发送给第三方 API 的内容仍会离开本地环境。是否完全本地取决于所使用的模型后端。

    结语

    SillyTavern 最有价值的地方,不是让聊天窗口变得更复杂,而是让用户真正拥有组织 AI 体验的能力。
    角色不再是一段随时会被遗忘的提示词,世界观不再被塞进一条超长消息,模型也不再和某个固定平台绑定。你可以保存角色、构建世界、切换模型、加入图片与语音,并把整个创作过程留在自己掌控的环境里。
    如果普通 AI 聊天已经无法满足你对角色一致性、长期剧情和可定制性的要求,SillyTavern 值得亲自体验。
    项目入口:SillyTavern GitHub 使用文档:SillyTavern Documentation 快速开始:Quick Start Docker 部署:Docker Installation



    经验分享 ai 聊天工具

  • 使用deepssk做出的BakeHub自动发帖工具,证明爱群主
    鲁迪乌斯鲁 鲁迪乌斯

    具体效果如,下图所示。也是非常的有趣啊。














    经验分享
BakeHub
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组