2025年11月

控制端自监控

进过测试,控制端是可以做到自己监控自己的。二进制部署后,用作控制端的 NAT 小鸡的 64MB 内存也没有爆。

给板卡扎针 (Komari Agent)

目前,我的 Linux 板卡已经连上路由器,也就是常说的“已连上 Wi-Fi”了。

此时板卡处于一种典型的 “只能出不能入”(Outbound-only) 网络环境:允许主机主动连接外部网络 (Outbound),但不允许外部直接访问内部主机(Inbound 被阻断)。

在这种前提下,依然成功让 Komari Agent “扎针”并保持在线,这一点让我感到非常意外,非常有意思。

Komari Agent 通信机制

其详细原理可见 官方文档 - Komari Agent 信息上报与事件处理文档

在我的场景中,板卡是 Linux 系统,并且 可以正常出站访问公网。Komari Agent 启动后会:

  • 主动向 Komari 服务端发起 HTTPS / WebSocket 连接;
  • 启动时先通过 HTTP 上报一次基础信息(例如 CPU、内存、磁盘等静态或缓变数据);
  • 之后通过 WebSocket 以固定间隔持续推送实时监控数据(CPU 使用率、内存占用等);
  • 同时在这条 WebSocket 连接上接收来自服务端的远程命令等事件,在本地执行后再将结果回传。

整个过程中,所有连接都是由 “板卡 → 公网 → Komari 主控” 主动发起的:内网侧无需开放任何端口,路由器也不需要做端口映射,更不要求公网能够反向访问板卡 IP。

Agent 自动发现

其详细教程可见 官方文档 - Agent 自动发现

bash <(curl -sL https://raw.githubusercontent.com/komari-monitor/komari-agent/refs/heads/main/install.sh) -e https://example.com --auto-discovery <AD Key> --install-ghproxy https://ghfast.top/

0. 开机

安装Debian系统,IP位置 Report.Check.Place

1. 更新 apt

apt update -y && apt upgrade -y
apt install -y curl wget unzip

2. 创建目录

mkdir -p /opt/komari
cd /opt/komari

3. 下载 Komari 控制端

# https://github.com/komari-monitor/komari/blob/main/docs/README_zh.md
curl -fsSL https://raw.githubusercontent.com/komari-monitor/komari/main/install-komari.sh -o install-komari.sh
chmod +x install-komari.sh
sudo ./install-komari.sh
journalctl -u komari -f
# 修改密码(可选),默认用户名admin
cd /opt/komari
systemctl stop komari 2>/dev/null || true
./komari chpasswd -p 'TEEHRz7jap3TxpR2'
systemctl start komari 2>/dev/null || ./komari server -l 0.0.0.0:25774 &

4. 反向代理

内部 80/443 端口不提供的话,可跳至第6步。

apt update
apt install -y nginx
# 替换 monitor.example.com 为正确的网址
cat >/etc/nginx/sites-available/komari.conf << 'EOF'
server {
    listen 80;
    listen [::]:80;
    server_name monitor.example.com;

    location / {
        proxy_pass http://127.0.0.1:25774/;
        proxy_http_version 1.1;
        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 Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
EOF
# NAT 映射外部端口 → 内部 80
ln -s /etc/nginx/sites-available/komari.conf /etc/nginx/sites-enabled/
nginx -t && systemctl restart nginx

5. 开启HTTPS

安装 certbot 工具
方式一:HTTP 验证(需要外部 80 端口)
方式二:TLS-SNI / HTTPS 验证(需要外部 443)
方式三:DNS TXT 验证(适合 NAT)

6. 使用 Cloudflare Tunnel

安装并绑定 Tunnel,写 cloudflared 配置文件,最后注意要启动 Tunnel 并设置开机自启。

帮我格式化Markdown文本
1. 英文与中文之间加空格
2. 标点符号前的空格
3. 专有名词修正
4. 保持原有格式
URL、代码块、配置文件保持原状
连续英文词汇保持紧凑(如SYSTEMD-JOURNAL)
路径和变量名保持紧凑(如/opt/monitor)

输入 立创 · 泰山派 RK3566-Linux 开发板 2G+16G 版本,架构 aarch64,内核 4.19.232
输出 一个可供局域网访问的网站

  1. 刷入官方编译的 Debian 10 固件 hdmi_20230915_update.img
  2. 串口 150000 看到 linaro-alip login: 提示后,用账号 linaro 和密码 linaro 成功登录系统。
  3. 切换为 root 用户 sudo -i
  4. 使用 nmcli device wifi list 查看可用 Wi-Fi 热点。
  5. 使用 sudo nmcli device wifi connect "<WIFI_SSID>" password "<WIFI_PASSWORD>" 连接目标 Wi-Fi。
  6. sudo ping -c 4 blog.sixhz.top 测试连通性和延迟。
  7. 获取 IP 地址,修改为静态 192.168.0.50,配置路由到板卡 22 端口,从此可以使用 SSH 工具远程板卡(局域网)。
  8. 修改 /etc/apt/sources.list 和相关配置文件,将软件源切换到可用的 Debian buster 归档仓库。
  9. 使用 sudo apt update 测试并确认 APT 软件源可以正常更新软件列表。
  10. 板卡为 ARM 架构,可以安装 1Panel 面板,但内核不支持 mqueue 文件系统,故不能使用 Docker。
  11. 挂载 128GB TF 卡,并配置开机自动挂载,查看 df -h
  12. 安装 Nginx 用于配置网站根目录,如 TF 卡挂载的位置。

后续补充

  1. 把 /tmp 转移到 TF 卡,并且让它拥有 20GB 可用空间,防止文件快递柜上传大文件爆掉。
  2. 想办法把 8GB 的 /userdata 分区利用上。

1Panel 面板

v1 版本安装 (Docker 附带就安装了)
https://1panel.cn/docs/v1/installation/online_installation/#2

Linux SSH 命令 如何安装 Docker?如何查看版本/开机自动启动/卸载
如何一条脚本,自动安装 Docker,配好 Docker Compose,生成一个 WordPress 示例

Docker Terminal UI 程序,直接在终端里跑:https://github.com/jesseduffield/lazydocker

(进阶)安装 ufw-docker 或 ufw-docker-automated ,解决容器绕过防火墙的问题。

Komari 探针控制端

Docker 一键安装 Komari(数据目录:/opt/komari-monitor,端口 25774)

sudo mkdir -p /opt/komari-monitor && \
sudo chown -R $USER:$USER /opt/komari-monitor && \
docker run -d \
  -p 25774:25774 \
  -v /opt/komari-monitor:/app/data \
  --name komari \
  --restart unless-stopped \
  ghcr.io/komari-monitor/komari:latest

SSH 命令 如何安装/配置 防火墙

RedHat/CentOS 使用的是 Firewall 防火墙。
Debian/Ubuntu 使用的是 UFW 防火墙。

SSH 命令 如何安装/配置 Fail2ban

注意添加 jail.local 文件,不修改原配置文件,Debian12 中 backend = systemd
开机自动启动/重启/查看状态/查看可用 jail 状态

[Definition]
logtarget = SYSTEMD-JOURNAL
allowipv6 = auto
  
[DEFAULT]
ignoreip = 127.0.0.1/8
backend = systemd
banaction = iptables-multiport
bantime = 86400
findtime = 86400
maxretry = 3
  
[sshd]
enabled = true
filter = sshd
port = ssh

git init
uv init --python 3.12
uv venv --python 3.12
.\.venv\Scripts\Activate.ps1
python -V
git add .
git commit -m "初始化 git + uv 项目,并添加虚拟环境配置"
uv add matplotlib
# Ensure matplotlib can render Chinese text and minus signs
plt.rcParams["font.sans-serif"] = ["SimHei", "Microsoft YaHei", "Arial Unicode MS"]
plt.rcParams["axes.unicode_minus"] = False

以下内容可以复制发给AI,以获得更详细的指导😊

bash 命令 DD 脚本 (可选)

https://github.com/bin456789/reinstall

# 国外 Linux 服务器安装示例
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O ${_##*/} $_
# 国内 Linux 服务器安装示例
curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O ${_##*/} $_
# 运行示例
bash reinstall.sh debian 12 

bash 命令 初始化

apt update -y
apt upgrade -y 
apt install -y sudo curl wget nano vim
apt install neofetch
neofetch

bash 命令 校正系统时间 将时区改为上海 并查看当前时区

sudo timedatectl set-timezone Asia/Shanghai
timedatectl

bash 命令 开启 bbr 和 fq

如何开启BBR?注意用 /etc/sysctl.d/ 的文件来管理系统参数,不要动 sysctl.conf

# 证书环境
apt-get install ca-certificates wget -y && update-ca-certificates
# 脚本示例
wget -O tcpx.sh "https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcpx.sh" && chmod +x tcpx.sh && ./tcpx.sh

bash 命令 如何添加 SWAP?并查看效果

# 脚本示例
wget -O swap.sh https://raw.githubusercontent.com/yuju520/Script/main/swap.sh && chmod +x swap.sh && clear && ./swap.sh
# 查看内存结果
free -m

bash 命令 修改 SSH 端口,默认为 22

如何用命令行将默认的 22 端口修改为 55555,并重启 sshd 服务

bash 命令 如何免密登录

解释如何在 VPS 设置密钥 实现 SSH 免密远程 Debian12 服务器
git bash 生成公/私钥,公钥上传到服务器(写入 authorized_keys)
如何成功连接后关闭禁止密码登录仅允许密钥登录

刚拿到烫手的机器,当然先要跑一跑各种测试了。

基础信息查看

# Debian / Ubuntu
apt update -y && apt upgrade -y && apt install neofetch && neofetch
# Alpine
sudo apk update && sudo apk upgrade && sudo apk add neofetch && neofetch

常用综合测试

bash <(curl -Ls https://Check.Place) -N
bash <(curl -sL https://run.NodeQuality.com)

I/O 性能测试

curl -sL yabs.sh | bash

IP质量测试

bash <(curl -Ls https://IP.Check.Place)

解锁测试

bash <(curl -L -s check.unlock.media)
bash <(curl -sL Media.Check.Place)
bash <(curl -L -s https://github.com/1-stream/RegionRestrictionCheck/raw/main/check.sh)

三网回程

curl https://raw.githubusercontent.com/zhanghanyun/backtrace/main/install.sh -sSf | sh
curl https://raw.githubusercontent.com/ludashi2020/backtrace/main/install.sh -sSf | sh

综合脚本工具

curl -sL https://sick.onl | bash -s -- -cn
curl -sS -O https://raw.githubusercontent.com/yuju520/YujuToolBox/main/yuju.sh && chmod +x yuju.sh && ./yuju.sh
bash <(wget -qO- --no-check-certificate https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh)