分类: 未分类

  • 使用 SSH 端口转发访问 Docker Hub 拉取镜像

    1. 原理解析

    SSH 端口转发(Port Forwarding)是一种将本地端口流量通过 SSH 连接重定向到远程服务器的方式。在本方案中,我们将本地端口映射到 Docker Hub 服务器(registry-1.docker.io),让本地 Docker 以为它正在直接访问 Docker Hub。

    示意图:

    [本地 Docker 客户端] → [SSH 隧道] → [远程服务器] → [Docker Hub]

    这样,本地 Docker 发送的请求会通过 SSH 隧道访问 Docker Hub 并返回数据。


    2. 使用条件

    • 一台可访问 Docker Hub 的服务器
    • 服务器上安装了 SSH
    • 本地设备(Windows/Linux/macOS)可通过 SSH 连接到服务器

    3. 配置 SSH 端口转发

    3.1 在本地终端运行 SSH 端口转发

    ssh -N -L 5000:registry-1.docker.io:443 user@your-server-ip
    • -N:不执行远程命令,仅进行端口转发
    • -L 5000:registry-1.docker.io:443:将本地 5000 端口映射到远程 registry-1.docker.io443 端口
    • user@your-server-ip:远程服务器的 SSH 账户

    保持这个 SSH 连接不关闭,否则端口转发会失效。


    4. 配置 Docker 访问代理

    4.1 在 daemon.json 中修改 Docker 配置

    编辑 Docker 的配置文件:

    nano /etc/docker/daemon.json

    添加以下内容:

    {
      "proxies": {
        "default": "http://127.0.0.1:5000"
      }
    }

    保存后,重启 Docker

    systemctl restart docker

    5. 测试 Docker 是否可以正常拉取

    执行拉取测试:

    docker pull ubuntu

    如果拉取成功,说明 SSH 端口转发生效。

  • Debian12安装Umami 网站分析工具

    Umami是一款轻量级、开源的 网站分析工具,可用于 隐私友好型 统计,不依赖于 Google Analytics,支持 自托管,且对 GDPR / CCPA 友好

    1. 安装 Docker 和 Docker Compose

    在服务器上运行以下命令安装 Docker:

    curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

    2. 配置 Umami

    在 服务器上创建目录 umami 并进入该目录:

    mkdir -p ./umami && cd ./umami

    创建 docker-compose.yml 文件:

    nano docker-compose.yml

    文件内容

    services:
      umami:
        image: ghcr.io/umami-software/umami:postgresql-latest
        ports:
          - "3002:3000"
        environment:
          DATABASE_URL: postgresql://umami:umami@db:5432/umami
          DATABASE_TYPE: postgresql
          APP_SECRET: replace-me-with-a-random-string
        depends_on:
          db:
            condition: service_healthy
        init: true
        restart: always
        healthcheck:
          test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
          interval: 5s
          timeout: 5s
          retries: 5
      db:
        image: postgres:15-alpine
        environment:
          POSTGRES_DB: umami
          POSTGRES_USER: umami
          POSTGRES_PASSWORD: umami
        volumes:
          - umami-db-data:/var/lib/postgresql/data
        restart: always
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
          interval: 5s
          timeout: 5s
          retries: 5
    volumes:
      umami-db-data:

    3. 启动 Umami

    # 启动
    docker compose up -d
    
    # 查看运行状态
    docker compose ps

    4. 访问 Umami

    默认账号:admin
    默认密码:umami
    
    http://<服务器IP>:3002
  • VMware Workstation 配置虚拟机开机自动启动

    打开启动文件夹

    • Win + R 组合键,输入 shell:startup 并回车。
    • 这将打开 Windows 的 启动 文件夹。

    创建批处理文件

    • 在 启动 文件夹内,右键选择 新建 > 文本文档。
    • 将文件命名为 start_vm.bat,并确保扩展名为 .bat(如果看不到扩展名,需要在文件资源管理器中启用 文件扩展名可见)。
    • 使用文本编辑器(如记事本)打开 start_vm.bat 文件,并输入以下内容:
    @echo off
    "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" start "D:\VM\Debian12-Docker\Debian12-Docker.vmx"
    • D:\VM\Debian12-Docker\Debian12-Docker.vmx 为你需要启动的虚拟机
    • 保存并关闭文件。

    测试自动启动

    • 双击 start_vm.bat 文件,确认虚拟机能正常启动。
    • 重新启动计算机,验证虚拟机是否随 Windows 开机自动运行。
  • 小米电视安装jellyfin

    Jellyfin是一个免费且开源的多媒体服务器软件。它旨在帮助用户管理和流式传输他们的个人媒体内容,如电影、电视节目、音乐和照片。以下是Jellyfin的一些关键特点:

    • 开源和免费:
      • Jellyfin是一个完全免费和开源的项目,这意味着用户可以自由地使用、修改和分发它。
    • 媒体管理:
      • 它允许用户组织和管理他们的媒体库,包括自动获取元数据、封面艺术和字幕。
    • 跨平台支持:
      • Jellyfin支持多种操作系统和设备,包括Windows、macOS、Linux、Android、iOS和智能电视。

    启用小米电视的ADB服务

    • 首先,您需要在小米电视上启用开发者选项和ADB调试。具体步骤可能因小米电视型号和系统版本而异,但通常包括:
      • 进入小米电视的“设置”菜单。
      • 找到“关于本机”或“我的电视”等选项,并多次点击“版本号”或类似选项,直到出现“您已处于开发者模式”的提示。
      • 返回“设置”菜单,找到“开发者选项”并进入。
      • 在“开发者选项”中,启用“ADB调试”和“允许安装未知来源应用”。
    • 确保您的电脑和小米电视连接到同一局域网。
    • 找到您小米电视的IP地址。您可以在小米电视的“设置”->“网络”中找到。

    ADB下载

    • 访问Android开发者官网下载ADB工具:
    • 请根据您的操作系统(Windows、macOS或Linux)下载相应的版本。
    • 下载完成后,解压缩文件并将adb.exe文件所在的目录添加到系统的环境变量中。

    jellyfin下载

    ADB连接和安装

    # adb连接小米电视的IP
    C:\Users\qixin\Downloads>adb connect 192.168.1.112
    already connected to 192.168.1.112:5555
    
    # 列出设备,需要电视adb授权同意
    C:\Users\qixin\Downloads>adb devices
    List of devices attached
    192.168.1.112:5555   unauthorized
    
    # 在小米电视上,允许来自电脑的ADB调试。
    # 再次列出设备
    C:\Users\qixin\Downloads>adb devices
    List of devices attached
    192.168.1.112:5555   device
    
    # 安装jellyfin
    C:\Users\qixin\Downloads>adb install jellyfin-androidtv-v0.18.4-release.apk
    Performing Streamed Install
    Success
    
    C:\Users\liqixin\Downloads>

    步骤详解:

    1. 连接ADB:
      • 使用adb connect 192.168.1.112命令连接到小米电视。将192.168.1.112替换为您的电视IP地址。
      • 第一次连接时,小米电视会弹出一个ADB调试授权提示,请选择“允许”。
    2. 验证连接:
      • 使用adb devices命令列出已连接的设备。如果显示device,则表示连接成功。如果显示unauthorized,说明电视没有允许电脑调试,请到电视上允许。
    3. 安装Jellyfin:
      • 使用adb install jellyfin-androidtv-v0.18.4-release.apk命令安装Jellyfin客户端。将jellyfin-androidtv-v0.18.4-release.apk替换为您下载的apk文件名。
      • 安装成功后,小米电视上会显示Jellyfin应用图标。

    注意事项:

    • 请确保您的电脑和小米电视处于同一局域网。
    • 在安装过程中,请保持网络连接稳定。
    • 如果遇到任何问题,请检查ADB和Jellyfin的安装步骤是否正确。
    • 小米电视的系统更新可能会影响ADB的连接,如果更新后无法连接,需要重新允许电脑调试。
  • Windows拆分映像

    在从无法容纳 Windows 映像文件大小的介质安装 Windows 时,可将 Windows 映像 (.wim) 文件拆分为一组较小的 (.swm) 文件,例如:

    • DVD(标准单面 DVD 存储 4.7GB)。
    • 格式化为 FAT32 的 U 盘。 FAT32 是启动许多新式(基于 UEFI 的)PC 所必需的,但它最大文件大小为 4GB。 (解决方法:创建具有多个分区的 U 盘。)

    限制

    • 无法修改一组拆分映像 (.swm) 文件。
    • 只有在所有 .swm 文件都在同一文件夹中时,才支持应用拆分的映像 (.swm) 文件。 这意味着,对于 DVD 部署,需要先将文件复制到目标 PC,然后才能使用 Windows 安装程序或 DISM/Apply-Image,如本主题中所示。

    拆分文件

    • 装载 Windows 安装介质。
    • 将 sources\install.wim 复制到本地 PC。 以下示例使用 G:\sources\install.wim 作为所复制文件的位置。
    • 拆分 Windows 映像:
    Dism /Split-Image /ImageFile:G:\sources\install.wim /SWMFile:J:\sources\install.swm /FileSize:4000

    其中:

    • G:\sources\install.wim 是要拆分的映像文件的名称和位置。
    • J:\sources\install.swm 是拆分的 .swm 文件的目标名称和位置。 第一个拆分的 .swm 文件将会被命名为 install.swm。 接下来的文件的文件名会带有数字,例如,install2.swm 文件、install3.swm 文件,等等。
    • 4000 是每个要创建的拆分 .swm 文件的最大大小(以 MB 为单位)。
    • 现在,J:\sources 文件夹中有一组 install.swm 文件。
  • Debian12 启用BBR算法提升网络性能

    在 Debian 12 上启用 BBR 以优化网络连接

    BBR(Bottleneck Bandwidth and Round-trip propagation time)算法可以显著提升网络性能,特别是在高延迟或丢包环境下。通过启用 BBR,您可以优化带宽利用率,减少延迟,并提高稳定性。

    BBR 的优势:

    • 提升速度: 优化带宽利用率,加快数据传输。
    • 降低延迟: 减少数据包丢失,改善响应速度。
    • 增强稳定性: 适应复杂网络环境,提供更可靠的连接。

    操作步骤:

    1. 配置 BBR

    执行以下命令,将 BBR 配置添加到系统配置文件:

    echo "net.core.default_qdisc=fq" | tee -a /etc/sysctl.conf
    echo "net.ipv4.tcp_congestion_control=bbr" | tee -a /etc/sysctl.conf

    说明:

    • net.core.default_qdisc=fq:设置队列规则为 fq,优化 BBR 性能。
    • net.ipv4.tcp_congestion_control=bbr:启用 BBR 拥塞控制算法。

    2. 重新加载配置

    运行以下命令,使配置立即生效:

    sysctl -p

    3. 验证 BBR 是否生效

    执行以下命令,验证 BBR 是否启用:

    sysctl net.ipv4.tcp_congestion_control

    如果输出为 net.ipv4.tcp_congestion_control = bbr,则表示 BBR 已成功启用。

    您还可以使用以下命令查看系统可用的拥堵算法和当前使用的算法:

    sysctl net.ipv4.tcp_available_congestion_control

    4. 验证 BBR 内核模块

    为了确认 BBR 内核模块是否已加载,可以运行以下命令:

    lsmod | grep bbr

    如果返回 tcp_bbr,则表示 BBR 已成功加载。