很多LLM通过网页提供使用,但是大多数时候需要的是个随手打开随手问操作,之后就不再需要的LLM助手。打开浏览器会降低效率,于是aichat就出现了。

aichat 使用 Rust 语言编写,是一个大型语言模型(LLM)命令行界面(CLI)工具 。支持命令模式(CMD)和交互模式(REPL),方便用户进行单次查询或持续对话。更高级的功能还包括检索增强生成(RAG)、AI 工具以及智能体(agents)的支持。

最近智谱的免费语言模型 GLM-4-Flash 又推出了升级版的 glm-4.5-flash,依旧免费且支持128K上下文和96K输出,很是和shell助手这个场景。

现在,一些简单的问题,直接随手打开terminal问AI就好。

2025-08-22T09:11:34.png

此前使用chrome和Firefox自带的密码管理器,此外还有keepass作为备份。因为管理不变,最终迁移到了vaultwarden上实现全平台通用。最终目标是后台使用docker运行vaultwarden,前台使用Nginx反代,并且使用https加密通讯过程,且能自动更新为最新版本。

以下教程无论是否有sudo,都建议使用root权限执行。

准备工作

以Debian 13为例,vaultwarden运行时需要至少200M内存,一般而言1G内存的VPS就够了。

首先,安装docker环境,将docker加入apt更新源:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /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 docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置vaultwarden

  1. 创建数据目录
    官方推荐直接新建/vw-data文件夹,但并不建议这么干,最好是遵循Linux的标准习惯,在/opt文件夹下实现。

    sudo mkdir -p /opt/vaultwarden
    sudo chown root:root /opt/vaultwarden
    sudo chmod 750 /opt/vaultwarden

    让容器内的 UID 1000 可写

    sudo chown -R 1000:1000 /opt/vaultwarden
    sudo chmod -R u+rwX,go-rwx /opt/vaultwarden
  2. 准备 Compose 与环境变量
    /opt/vaultwarden目录下创建两个文件。
    首先是/opt/vaultwarden/compose.yaml,注意其中的password.example.com改为实际的域名,"127.0.0.1:28080:80"中的28080是对外的端口,不建议遵循官方教程的80负责将导致与Nginx默认监听端口冲突。SIGNUPS_ALLOWED当前是true,等后续注册完了就需要改为false以禁止其他人注册和使用。

    services:
      vaultwarden:
     image: vaultwarden/server:latest
     container_name: vaultwarden
     restart: unless-stopped
     env_file:
       - /opt/vaultwarden/vw.env
     environment:
       DOMAIN: "https://password.example.com"
       SIGNUPS_ALLOWED: "true"
     volumes:
       - /opt/vaultwarden:/data
     labels:
       - "com.centurylinklabs.watchtower.enable=true"
     ports:
       - "127.0.0.1:28080:80"
    
      watchtower:
     image: containrrr/watchtower
     container_name: watchtower
     restart: unless-stopped
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock
     command: --label-enable --schedule "0 0 4 * * *"
     environment:
       - TZ=Asia/Shanghai

    其次是/opt/vaultwarden/vw.env文件,用以保存域名信息和密码。首先安装apt install argon2,并生成符合 PHC 字符串的密码:

    echo -n "example-passwaord" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4 # example-passwaord 改为实际密码

    虽后将获得$argon2id$v=19$m=65540,t=3,p=4$THTRFZzRVWHZaTlRNRFJrVT0$RVWORVWOZz+nhHnhHFop1+0QzS+cw0QHEIKrZidfw输出,将其中的每个$都再添加一个$,并写入/opt/vaultwarden/vw.env中,最终如下:

    DOMAIN=https://password.example.com
    ADMIN_TOKEN=$$argon2id$$v=19$$m=65540,t=3,p=4$$THTRFZzRVWHZaTlRNRFJrVT0$$RVWORVWOZz+nhHnhHFop1+0QzS+cw0QHEIKrZidfw
  3. 启动并运行

    cd /opt/vaultwarden
    sudo docker compose pull
    sudo docker compose up -d

    常用运维命令

    停止 vaultwarden 容器
    sudo docker compose stop vaultwarden
    
    启动 vaultwarden 容器
    docker compose up -d
    
    # 查看容器状态与日志
    sudo docker compose ps
    sudo docker compose logs -f vaultwarden
    
    # 手动更新(Watchtower 之外,临时手动)
    sudo docker compose pull && sudo docker compose up -d
    
    # 备份(SQLite 数据在 /opt/vaultwarden,热备可直接打包整个目录)
    sudo tar -czf /opt/vaultwarden-backup-$(date +%F).tar.gz -C /opt vaultwarden

设置Nginx反代

完整的配置文件如下,注意其中的SSL证书路径,以下例子是使用acme.sh实现的SSL证书。

upstream vaultwarden-default {
        zone vaultwarden-default 64k;
        server 127.0.0.1:28080;
        keepalive 2;
}

map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      "";
}

server {
        listen 80; #default_server;
        listen [::]:80; #default_server;
        server_name password.example.com;
        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;
        http2 on;
        server_name password.example.com;  # 改成你的域名

        client_max_body_size 525M;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        location / {
                proxy_pass http://vaultwarden-default;
        }

        ssl_certificate /opt/website/certificate/password.example.com_bundle.crt; # SSL证书
        ssl_certificate_key /opt/website/certificate/password.example.com.key; # SSL 证书

        ssl_session_timeout 5m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

        access_log /var/log/nginx/access.password.example.com.log; # Nginx日志
        error_log /var/log/nginx/error.password.example.com.log; # Nginx日志

}

启用尽可能多的功能包,并开启GPU加速支持,特别针对GTX 1060和服务器环境进行了优化配置。采用 nvidia-driver-570-server版本驱动和 12.8版本CUDA。

0) 目标与要点

  • 构建:Release + shared(生成 liblammps.so,便于后续联动)
  • 加速:MPI + OpenMP + GPU(CUDA 12.8, sm_61) + OPT
  • 物理与功能:KSPACE, ELECTRODE, COLVARS, RIGID, MOLECULE, MISC, COMPRESS, H5MD, NETCDF, MOLFILE, VORONOI
  • 关闭:KOKKOS=off, INTEL=off, KIM=off
  • 无 GUI(不装 VTK/Qt);数据通过 HDF5/NetCDF 输出,后处理走 Python

1) 驱动与 CUDA 12.8(已满足可略过)

如需从 535/其他版本切到 570 + CUDA 12.8(官方仓库):

# 添加 NVIDIA 官方仓库(Ubuntu 24.04)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update

# 安装/切换到 570 server 驱动(DKMS 版更稳)
sudo apt install -y linux-headers-$(uname -r)
sudo apt install -y nvidia-dkms-570-server nvidia-driver-570-server

# 安装 CUDA Toolkit 12.8(含 nvcc)
sudo apt install -y cuda-toolkit-12-8

# 写入环境变量
echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# 验证
nvidia-smi
nvcc --version
安装完驱动后建议 重启 一次。

2) 安装前置依赖

sudo apt update # CMake时如果报错提示缺少依赖,可以直接安装
sudo apt install -y \
  build-essential cmake git gfortran pkg-config \
  libopenmpi-dev openmpi-bin \
  libfftw3-dev libzstd-dev \
  libopenblas-dev liblapack-dev \
  libhdf5-dev libnetcdf-dev \
  libvoro++1 voro++-dev \
  libjpeg-dev libpng-dev zlib1g-dev \
  python3 python3-dev python3-numpy \
  ffmpeg libpnetcdf-dev

3) 获取源码并创建构建目录

mkdir ~/src && cd ~/src
git clone -b stable https://github.com/lammps/lammps.git
cd lammps
mkdir build && cd build

4) CMake 配置(按你的最终选型)

cmake ../cmake \
  -D CMAKE_BUILD_TYPE=Release \
  -D CMAKE_INSTALL_PREFIX=/usr/local/lammps \
  -D BUILD_SHARED_LIBS=on \
  -D LAMMPS_EXCEPTIONS=on \
  -D FFT=FFTW3 \
  -D BUILD_MPI=on -D BUILD_OMP=on \
  -D BLA_VENDOR=OpenBLAS \
  -D CMAKE_Fortran_COMPILER=gfortran \
  \
  -D PKG_GPU=on -D GPU_API=cuda -D GPU_ARCH=sm_61 \
  -D PKG_OPENMP=on -D PKG_OPT=on \
  \
  -D PKG_KSPACE=on \
  -D PKG_ELECTRODE=on \
  -D PKG_COLVARS=on \
  -D PKG_PYTHON=on \
  -D PKG_H5MD=on -D PKG_NETCDF=on \
  -D PKG_VORONOI=on \
  -D PKG_MISC=on -D PKG_COMPRESS=on \
  -D PKG_RIGID=on -D PKG_MOLECULE=on \
  -D PKG_MOLFILE=on \
  \
  -D PKG_KOKKOS=off -D PKG_INTEL=off

5) 编译与安装

make -j"$(nproc)"
sudo make install

echo 'export PATH=/usr/local/lammps/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

6) 配置 PATH 与 动态库搜索路径(避免 liblammps.so.0 not found)

# 设置lmp动态库
echo '/usr/local/lammps/lib' | sudo tee /etc/ld.so.conf.d/lammps.conf
sudo ldconfig

# 自检
which lmp
ldconfig -p | grep -i lammps
lmp -h | head -n 1

7) 运行与验证(使用GPU)

cd ~/src/lammps/bench

# 基本基准:4~6 个 MPI rank 共享 1 块 GPU
mpirun -np 4 lmp -sf gpu -pk gpu 1 -in in.lj

# 使用长程静电时,在输入脚本里:
# kspace_style pppm/gpu 1.0e-4

调优提示

  • -np 4-np 6 开始试(每卡 4–6 个 MPI rank 常见有效区间)。
  • 若 CPU 线程竞争激烈,先设 export OMP_NUM_THREADS=1
  • 出现个别 pair/neigh 组合不稳时试 -pk gpu 1 neigh no 让邻域在 CPU 侧建立。

以下是旧版本,不推荐,可能存在兼容性问题。

1. 系统环境准备

1.1 更新系统包

sudo apt update && sudo apt upgrade -y

1.2 安装基础编译工具

sudo apt install -y build-essential cmake git wget curl
sudo apt install -y gcc g++ gcc-14 g++-14 gfortran
sudo apt install -y pkg-config autoconf automake libtool

2. 安装依赖库

2.1 MPI并行库

# 安装OpenMPI
sudo apt install -y openmpi-bin openmpi-common libopenmpi-dev

# 或者安装MPICH(二选一)
# sudo apt install -y mpich libmpich-dev

2.2 数学库

# BLAS/LAPACK
sudo apt install -y libopenblas-dev liblapack-dev

# FFTW3
sudo apt install -y libfftw3-dev libfftw3-mpi-dev

# Eigen3
sudo apt install -y libeigen3-dev libzstd-dev

2.3 基础图像处理库(无GUI环境)

sudo apt install -y libpng-dev libjpeg-dev
sudo apt install -y zlib1g-dev
sudo apt install -y libgsl-dev

2.4 Python支持

sudo apt install -y python3-dev python3-pip python3-numpy
sudo apt install -y python3-matplotlib python3-scipy

2.5 编译安装plumed

cd /tmp
wget https://github.com/plumed/plumed2/releases/download/v2.9.3/plumed-2.9.3.tgz
tar -xzf plumed-2.9.3.tgz
cd plumed-2.9.3

make clean        # 清理旧配置留下的对象文件;如提示无目标可忽略

./configure CXX=mpicxx CC=mpicc \
  --prefix=/usr/local \           # 可省略,默认就是 /usr/local
  --enable-modules=all \          # 打开全部可选模块
  --enable-openmp \               # 保持 OpenMP
  --enable-fftw \                 # 使用系统 FFTW
  --enable-rpath \                # 在可执行文件里记录库路径
  --enable-shared                 # 显式生成 .so(默认就是 ON)
  
make -j$(nproc)
sudo make install
sudo ldconfig                 # 更新动态链接器缓存
echo 'export PLUMED_KERNEL=/usr/local/lib/libplumedKernel.so' >> ~/.bashrc
source ~/.bashrc

2.5 其他有用的库

sudo apt install -y libhdf5-dev libhdf5-mpi-dev
sudo apt install -y libnetcdf-dev # libnetcdf-cxx-legacy-dev
sudo apt install -y libyaml-dev libvoro++1 voro++-dev libadios2-common-core-dev libadios2-mpi-core-dev

3. CUDA环境配置(GPU加速)

3.1 安装NVIDIA驱动

# 安装服务器版NVIDIA驱动(无GUI)
sudo apt install -y nvidia-driver-575

# 重启系统
sudo reboot

3.2 安装CUDA Toolkit

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install --no-install-recommends cuda-toolkit-12-9

# 写入环境变量
echo 'export PATH=/usr/local/cuda-12.9/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.9/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

3.3 验证CUDA安装

nvcc --version      # => release 12.9
nvidia-smi          # Driver Version ≥ 575.*

4. 下载LAMMPS源码

cd ~/
git clone -b stable https://github.com/lammps/lammps.git
cd lammps
mkdir build
cd build

5. CMake配置

5.1 CMake内容

使用most.cmake开启尽可能夺的功能,并将程序路径设置为/opt/lammps

cmake -C ../cmake/presets/most.cmake \
      -D CMAKE_INSTALL_PREFIX=/opt/lammps \
      -D PKG_KOKKOS=on \
      -D Kokkos_ENABLE_CUDA=on \
      -D Kokkos_ENABLE_OPENMP=ON \
      -D Kokkos_ARCH_PASCAL61=on \
      -D Kokkos_ENABLE_CUDA_LAMBDA=on \
      -D PKG_GPU=on \
      -D GPU_API=cuda \
      -D GPU_ARCH=sm_61 \
      -D BUILD_MPI=on \
      -D BUILD_OMP=on \
      -D CMAKE_CUDA_STANDARD=17 \
      ../cmake



cmake -C ../cmake/presets/most.cmake \
      -D CMAKE_INSTALL_PREFIX=/opt/lammps \
      -D BUILD_OMP=ON \
      -D PKG_OPENMP=ON \
      -D PKG_KOKKOS=ON \
      -D Kokkos_ENABLE_OPENMP=ON \
      -D Kokkos_ENABLE_CUDA=ON \
      -D Kokkos_ENABLE_HWLOC=ON \
      -D Kokkos_ARCH_PASCAL61=ON \
      -D Kokkos_ENABLE_CUDA_LAMBDA=ON \
      -D PKG_GPU=ON -D GPU_API=cuda -D GPU_ARCH=sm_61 \
      -D BUILD_MPI=ON \
      -D BUILD_SHARED_LIBS=ON \
      -D LAMMPS_EXCEPTIONS=ON \
      -D CMAKE_CUDA_STANDARD=17 \
      ../cmake
      
      
cmake -C ../cmake/presets/most.cmake \
      -D CMAKE_INSTALL_PREFIX=/opt/lammps \
      -D CMAKE_INSTALL_RPATH=/opt/lammps/lib \
      -D CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON \
      -D PKG_OPENMP=ON \
      -D PKG_KOKKOS=ON -D Kokkos_ENABLE_CUDA=ON -D Kokkos_ENABLE_OPENMP=ON \
      -D Kokkos_ENABLE_HWLOC=ON -D Kokkos_ARCH_PASCAL61=ON \
      -D PKG_GPU=ON   -D GPU_API=cuda   -D GPU_ARCH=sm_61 \
      -D PKG_VORONOI=ON \
      -D PKG_PTM=ON \
      -D PKG_H5MD=ON \
      -D BUILD_LIB=ON -D BUILD_SHARED_LIBS=ON \
      -D BUILD_MPI=ON -D BUILD_OMP=ON \
      -D LAMMPS_EXCEPTIONS=ON -D CMAKE_CUDA_STANDARD=17 \
      ../cmake

5.2 其他

export NVCC_PREPEND_FLAGS="-Wno-deprecated-gpu-targets" # 忽略旧GPU提醒

6. 编译和安装

6.1 编译(使用多核心加速)

# 使用所有可用CPU核心编译
cmake --build . -- -j$(nproc)

6.2 安装

sudo cmake --install .

6.3 添加到PATH

echo 'export PATH=/opt/lammps/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

7. 验证安装

7.1 检查LAMMPS版本和功能

lmp -help

7.2 测试GPU功能

cd ~/lammps/examples/melt
mpirun -np 1 lmp -sf gpu -pk gpu 1 -in in.melt

7.3 测试并行功能

mpirun -np 2 lmp -in in.melt

8. 性能优化配置

如果GPU加速正常,则不要执行以下内容

8.1 针对GTX 1060的GPU优化设置

在LAMMPS输入脚本中添加:

# GPU包设置
package gpu 1 neigh yes newton off

8.2 OpenMP线程设置

export OMP_NUM_THREADS=4  # 根据CPU核心数调整

9. 常见问题解决

9.1 CUDA编译错误

如果遇到CUDA相关编译错误:

# 确保CUDA环境变量正确
echo $CUDA_HOME
echo $PATH | grep cuda

# 检查GPU架构设置
nvidia-smi --query-gpu=compute_cap --format=csv

9.2 MPI相关错误

# 检查MPI安装
mpirun --version
which mpirun

# 测试MPI
mpirun -np 2 hostname

9.3 内存不足问题

对于GTX 1060 6GB显存:

  • 适当减小GPU包中的neigh参数
  • 使用较小的测试系统
  • 监控显存使用:nvidia-smi

10. 安装后的简便测试

创建简单的性能测试脚本:

#!/bin/bash
echo "Testing CPU performance..."
time mpirun -np 4 lmp -in ~/lammps/examples/melt/in.melt

echo "Testing GPU performance..."
time mpirun -np 1 lmp -sf gpu -pk gpu 1 -in ~/lammps/examples/melt/in.melt

写Rust的时候,对项目管理工具cargo很是喜欢,当时就觉得要是python也能有一个这样的管理工具就好了。Astral公司在推出了python linter的ruff之后,又推出了uv,一个cargo味很重的python包和项目管理工具。或者说,uv是python的cargo。更加难能可贵的是uv使用Rust编写,速度快,性能强,还不必担心潜在的跨平台缺陷。

网络上很多人介绍uv都是说安装项目快,其中更大的意义是python有了一个稳定且高性能的项目管理工具,恰好这个工具很快很稳定。这一点上,写过Rust的人应该深有同感。

安装

对于Unix-like系统:

curl -LsSf https://astral.sh/uv/install.sh | sh

对于Windows系统:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

常见使用命令

以下是一个简单的示例,初始化项目:

uv init test_uv # 初始化项目,就是cargo的翻版。
Initialized project `test-uv` at `D:\Code\Python\test_uv` # 执行结果

初始的项目文件如下,默认使用本机已经安装的python版本。

    目录: D:\Code\Python\test_uv


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          2025/8/3     19:51            109 .gitignore
-a----          2025/8/3     19:51              5 .python-version
-a----          2025/8/3     19:51             85 main.py
-a----          2025/8/3     19:51            153 pyproject.toml
-a----          2025/8/3     19:51              0 README.md

其中的pyproject.toml记录项目元信息,比如项目名称和依赖等内容。

[project]
name = "test-uv"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "requests>=2.32.4",
]

安装python的包很简单,直接使用uv命令即可。会使用系统的默认python,并将其复制到当前目录的.venv下,在其中安装包,避免干扰。

uv add requests
Using CPython 3.12.10 interpreter at: C:\Program Files\Python3\python.exe
Creating virtual environment at: .venv
Resolved 6 packages in 2.59s
Prepared 5 packages in 1.59s
░░░░░░░░░░░░░░░░░░░░ [0/5] Installing wheels...                                                                         
Installed 5 packages in 38ms
 + certifi==2025.8.3
 + charset-normalizer==3.4.2
 + idna==3.10
 + requests==2.32.4
 + urllib3==2.5.0

如果遇到了warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.警告,是Windows系统的文件系统的问题,比如安装在C盘的python无法硬链接到D盘的目录中,可以设置一个名为UV_LINK_MODE的环境变量,赋值为copy,避免使用硬链接。

env

其他pip的命令,只需要在其之前添加uv即可:

uv pip list # 查看当前安装的包
Package            Version
------------------ --------
certifi            2025.8.3
charset-normalizer 3.4.2
idna               3.10
requests           2.32.4
urllib3            2.5.0

运行程序,也是cargo的手感。非要说缺点的话,这里如果可以支持uv run那就完美了。

uv run .\main.py
Hello from test-uv!

切换python版本也很简单,直接使用``

uv python list # 查看所有可用的python版本
python install 3.13 # 安装指定版本,这将安装在当前用户的目录下

其他常用命令

其他常见命令可以浏览uv官方文档,基本就是cargo的习惯。

问题和注意事项

现在还是0.8.x版本,有一些不顺手的操作,比如刚才提到的uv runUV_LINK_MODE的硬链接问题等。
此外,第三方支持力度也不够好,比如PowerShell的限制倒置VSCode无法解析python环境,虽然命令行可以正常工作。可以使用Set-ExecutionPolicy RemoteSigned -Scope CurrentUser解开这个限制。

Cloudflare Tunnel 将本地服务器连接到Cloudflare的服务器,并由此提供外部访问,适合没有公网IP但又想提供外网服务的场景,尤其是家庭NAS服务。由于飞牛的免费穿透只有2Mbps,需要大量浏览的时候速度跟不上。此时,可以使用Cloudflare Tunnel实现宽带最大上传速度的穿透。

教程

  1. 在Cloudflare首页的左侧栏目中点击Zero Trust进入详情页面。
  2. 进入页面后,在左侧栏目中找到网络/network,并点击其中的Tunnels,首次使用需要激活。
  3. 点击创建隧道.

setting.png

  1. 选择cloudflared方式创建隧道。

tunnel.png

  1. 隧道名称可以随意填写,考虑到方便记忆,推荐使用位置_设备_系统_编号格式,例如HOME_NAS_Feiniu_001

NAME.png

  1. 选择对应的软件并安装。选择Debian、64位。随后使用SSH登录飞牛系统,运行下图3中的命令,最后,运行下图4中的内容设置为开机自启。几秒后将完整隧道链接,在页面下方将显示此设备。

install.png

  1. 设置域名

进入此隧道,在设置中找到公共机名并点击添加。详细说明如下:

  • 子域为网址前缀,比如我希望实现nas.example.com,那么此处填写nas,如果不填写,最终的域名就是example.com
  • 需要选择一个托管在Cloudflare的域名,即上述的example.com,如果没有,可以在Cloudflare domains注册一个6位或者9位数字的xyz域名,一年仅需要0.83美元。
  • 路径留空,不填写
  • 类型选择http
  • URL填入localhost:5666

如果需要其他服务,可以添加一个公共主机名,其中只有子域和URL中的端口号需要修改。

add.png

name.png

使用事项

免费的Cloudflare的服务器不包括中国地区,所以晚高峰等时候可能会比较慢。