<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://md5.pw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aricch</id>
	<title>md5.pw - 用户贡献 [zh]</title>
	<link rel="self" type="application/atom+xml" href="https://md5.pw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aricch"/>
	<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=Special:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Aricch"/>
	<updated>2026-05-06T16:17:39Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%83%A8%E7%BD%B2sub-store&amp;diff=1971</id>
		<title>如何部署sub-store</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%83%A8%E7%BD%B2sub-store&amp;diff=1971"/>
		<updated>2026-04-17T07:23:06Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
在 bandwagonhost VPS 上部署 &#039;&#039;&#039;Sub-Store&#039;&#039;&#039;（高级订阅管理工具）其实非常简单。Sub-Store 官方提供了非常便捷的 Docker 镜像，通过 Docker 部署是目前最稳定、也是维护成本最低的方式。&lt;br /&gt;
&lt;br /&gt;
以下是为你整理的从“零”开始的部署教程。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第一步：远程登录你的 bandwagonhost VPS ==&lt;br /&gt;
首先，你需要通过 SSH 客户端（如 PuTTY、Termius 或 macOS/Windows 自带的终端）登录到你的服务器。&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;ssh root@你的服务器IP&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;输入密码时屏幕不会显示字符，直接回车即可。&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第二步：环境准备（Docker 快速安装） ==&lt;br /&gt;
大多数 Sub-Store 一键脚本或容器化部署都依赖 &#039;&#039;&#039;Docker&#039;&#039;&#039;。如果你的服务器还没安装，可以使用以下官方的一键脚本：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;curl -fsSL &amp;lt;nowiki&amp;gt;https://get.docker.com&amp;lt;/nowiki&amp;gt; | bash -s docker&lt;br /&gt;
 systemctl enable --now docker&amp;lt;/code&amp;gt;&lt;br /&gt;
安装完成后，确认 Docker 正在运行：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;docker version&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第三步：一键部署 Sub-Store ==&lt;br /&gt;
Sub-Store 官方支持使用 Docker 命令快速启动。我们将使用 &#039;&#039;&#039;Docker Compose&#039;&#039;&#039; 方式，因为它更方便后续修改配置。&lt;br /&gt;
&lt;br /&gt;
=== 1. 创建工作目录 ===&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;mkdir -p /root/sub-store &amp;amp;&amp;amp; cd /root/sub-store&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. 创建并编辑配置文件 ===&lt;br /&gt;
使用 &amp;lt;code&amp;gt;vi&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; 创建一个 &amp;lt;code&amp;gt;docker-compose.yml&amp;lt;/code&amp;gt; 文件：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;nano docker-compose.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
将以下内容复制并粘贴进去：&lt;br /&gt;
&lt;br /&gt;
YAML&lt;br /&gt;
 &amp;lt;code&amp;gt;version: &#039;3&#039;&lt;br /&gt;
 services:&lt;br /&gt;
   sub-store:&lt;br /&gt;
     image: xream/sub-store:latest&lt;br /&gt;
     container_name: sub-store&lt;br /&gt;
     restart: always&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./data:/opt/sub-store/data&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;3001:3001&amp;quot;&lt;br /&gt;
     environment:&lt;br /&gt;
       - SUB_STORE_FRONTEND_BACKEND_PATH=/你的随机路径&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;注意：&#039;&#039;&#039; &amp;lt;code&amp;gt;SUB_STORE_FRONTEND_BACKEND_PATH&amp;lt;/code&amp;gt; 建议设置一个复杂的随机字符串（例如 &amp;lt;code&amp;gt;/mysecret_2026&amp;lt;/code&amp;gt;），防止别人直接扫描到你的后台。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. 启动容器 ===&lt;br /&gt;
按下 &amp;lt;code&amp;gt;Ctrl+O&amp;lt;/code&amp;gt; 保存，&amp;lt;code&amp;gt;Ctrl+X&amp;lt;/code&amp;gt; 退出，然后运行：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第四步：配置防火墙 ==&lt;br /&gt;
VPS 默认可能关闭了 3001 端口，你需要手动开启：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;如果使用 UFW (Ubuntu/Debian):&#039;&#039;&#039; &amp;lt;code&amp;gt;ufw allow 3001/tcp&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;如果使用 CentOS (Firewalld):&#039;&#039;&#039; &amp;lt;code&amp;gt;firewall-cmd --zone=public --add-port=3001/tcp --permanent &amp;amp;&amp;amp; firewall-cmd --reload&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;云服务商控制台：&#039;&#039;&#039; 请务必在腾讯云/阿里云/甲骨文的“安全组”页面，放行 &#039;&#039;&#039;3001&#039;&#039;&#039; 端口。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第五步：访问与使用 ==&lt;br /&gt;
部署完成后，你可以通过浏览器访问 Sub-Store 的 Web 界面：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;访问地址：&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://你的服务器IP:3001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;进阶技巧：&#039;&#039;&#039; 如果你设置了 &amp;lt;code&amp;gt;SUB_STORE_FRONTEND_BACKEND_PATH&amp;lt;/code&amp;gt;，请在进入页面后，在设置里填入对应的路径，确保前端和后端能够通信。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 常见问题小贴士 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;需求&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;操作&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;查看日志&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;docker logs -f sub-store&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;更新版本&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;停止服务&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;docker compose down&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
[[index.php?title=Category:500 常见应用指南 — Application Guides]]&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1493</id>
		<title>用Docker部署服务器TCP 延时监控</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1493"/>
		<updated>2026-03-05T03:50:33Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;用 Docker / Docker Compose 部署“服务器延时（Latency）监控”**的常用方案：&#039;&#039;&#039;Prometheus + Blackbox Exporter + Grafana&#039;&#039;&#039;。Blackbox Exporter 负责对目标做 &#039;&#039;&#039;HTTP / TCP / ICMP(Ping)&#039;&#039;&#039; 探测并产出 &amp;lt;code&amp;gt;probe_*&amp;lt;/code&amp;gt; 指标，Prometheus 抓取，Grafana 展示。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1) 目录结构 ==&lt;br /&gt;
在一台“监控机”（能访问你要监控的服务器/端口的那台机器）上建目录：&lt;br /&gt;
 &amp;lt;code&amp;gt;monitoring/&lt;br /&gt;
   docker-compose.yml&lt;br /&gt;
   prometheus/&lt;br /&gt;
     prometheus.yml&lt;br /&gt;
     rules/&lt;br /&gt;
       blackbox-alerts.yml        # 可选：告警规则&lt;br /&gt;
   blackbox/&lt;br /&gt;
     blackbox.yml&lt;br /&gt;
   grafana/&lt;br /&gt;
     provisioning/&lt;br /&gt;
       datasources/&lt;br /&gt;
         datasource.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2) docker-compose.yml ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;版本我这里选用：&lt;br /&gt;
&lt;br /&gt;
* Prometheus &amp;lt;code&amp;gt;prom/prometheus:v3.10.0&amp;lt;/code&amp;gt;（示例；该 tag 存在于 Docker Hub）(Docker Hub)&lt;br /&gt;
* Blackbox Exporter &amp;lt;code&amp;gt;prom/blackbox-exporter:v0.28.0&amp;lt;/code&amp;gt;(Docker Hub)&lt;br /&gt;
* Grafana &amp;lt;code&amp;gt;grafana/grafana:12.3-ubuntu&amp;lt;/code&amp;gt;（你也可换成 &amp;lt;code&amp;gt;12.3&amp;lt;/code&amp;gt; 等）(Docker Hub)&lt;br /&gt;
* Alertmanager 可选 &amp;lt;code&amp;gt;prom/alertmanager:v0.31.1&amp;lt;/code&amp;gt;(Docker Hub)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;services:&lt;br /&gt;
   prometheus:&lt;br /&gt;
     image: prom/prometheus:v3.10.0&lt;br /&gt;
     container_name: prometheus&lt;br /&gt;
     command:&lt;br /&gt;
       - --config.file=/etc/prometheus/prometheus.yml&lt;br /&gt;
       - --storage.tsdb.path=/prometheus&lt;br /&gt;
       - --web.enable-lifecycle&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro&lt;br /&gt;
       - ./prometheus/rules:/etc/prometheus/rules:ro&lt;br /&gt;
       - prometheus_data:/prometheus&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9090:9090&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
   blackbox-exporter:&lt;br /&gt;
     image: prom/blackbox-exporter:v0.28.0&lt;br /&gt;
     container_name: blackbox-exporter&lt;br /&gt;
     command:&lt;br /&gt;
       - --config.file=/etc/blackbox/blackbox.yml&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./blackbox/blackbox.yml:/etc/blackbox/blackbox.yml:ro&lt;br /&gt;
     # 建议：生产环境不对外暴露 9115；需要本机调试再开端口映射&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9115:9115&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
     # ICMP(ping) 需要额外权限（二选一：cap_add 更推荐；privileged 更大）&lt;br /&gt;
     cap_add:&lt;br /&gt;
       - NET_RAW&lt;br /&gt;
     # privileged: true&lt;br /&gt;
 &lt;br /&gt;
   grafana:&lt;br /&gt;
     image: grafana/grafana:12.3-ubuntu&lt;br /&gt;
     container_name: grafana&lt;br /&gt;
     environment:&lt;br /&gt;
       - GF_SECURITY_ADMIN_USER=admin&lt;br /&gt;
       - GF_SECURITY_ADMIN_PASSWORD=admin  # 首次登录后务必修改&lt;br /&gt;
     volumes:&lt;br /&gt;
       - grafana_data:/var/lib/grafana&lt;br /&gt;
       - ./grafana/provisioning:/etc/grafana/provisioning:ro&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;3000:3000&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
   # 可选：Prometheus 规则触发后，用 Alertmanager 分发通知&lt;br /&gt;
   alertmanager:&lt;br /&gt;
     image: prom/alertmanager:v0.31.1&lt;br /&gt;
     container_name: alertmanager&lt;br /&gt;
     # 先用默认示例配置也能跑起来；要发通知再挂载你自己的 alertmanager.yml&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9093:9093&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
 networks:&lt;br /&gt;
   monitor:&lt;br /&gt;
 &lt;br /&gt;
 volumes:&lt;br /&gt;
   prometheus_data:&lt;br /&gt;
   grafana_data:&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 3) blackbox.yml（探测模块配置） ==&lt;br /&gt;
Blackbox Exporter 支持 HTTP/HTTPS、TCP、ICMP、DNS、gRPC 等探测。(GitHub)&lt;br /&gt;
&lt;br /&gt;
先放最常用的 3 个模块：HTTP 200、TCP 端口连通、ICMP ping。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;blackbox/blackbox.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;modules:&lt;br /&gt;
   http_2xx:&lt;br /&gt;
     prober: http&lt;br /&gt;
     timeout: 5s&lt;br /&gt;
     http:&lt;br /&gt;
       preferred_ip_protocol: &amp;quot;ip4&amp;quot;&lt;br /&gt;
       valid_http_versions: [&amp;quot;HTTP/1.1&amp;quot;, &amp;quot;HTTP/2&amp;quot;]&lt;br /&gt;
       method: GET&lt;br /&gt;
       no_follow_redirects: false&lt;br /&gt;
 &lt;br /&gt;
   tcp_connect:&lt;br /&gt;
     prober: tcp&lt;br /&gt;
     timeout: 5s&lt;br /&gt;
 &lt;br /&gt;
   icmp:&lt;br /&gt;
     prober: icmp&lt;br /&gt;
     timeout: 3s&lt;br /&gt;
     icmp:&lt;br /&gt;
       preferred_ip_protocol: &amp;quot;ip4&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;ICMP 权限提示（很关键）&#039;&#039;&#039;：在 Linux 上，ICMP 探测需要 &amp;lt;code&amp;gt;CAP_NET_RAW&amp;lt;/code&amp;gt; 或 root 等权限；Docker 里通常用 &amp;lt;code&amp;gt;cap_add: NET_RAW&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;privileged&amp;lt;/code&amp;gt; 解决。(GitHub)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 4) prometheus.yml（抓取 blackbox 探测结果） ==&lt;br /&gt;
Prometheus 抓取 Blackbox Exporter 通常用 &#039;&#039;&#039;multi-target exporter pattern&#039;&#039;&#039;：Prometheus 实际请求的是 blackbox 的 &amp;lt;code&amp;gt;/probe&amp;lt;/code&amp;gt;，目标地址通过 &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; 参数传递，并通过 relabel 把目标写到 &amp;lt;code&amp;gt;instance&amp;lt;/code&amp;gt; 标签。(Prometheus)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;prometheus/prometheus.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;global:&lt;br /&gt;
   scrape_interval: 15s&lt;br /&gt;
   scrape_timeout: 10s&lt;br /&gt;
   evaluation_interval: 15s&lt;br /&gt;
 &lt;br /&gt;
 rule_files:&lt;br /&gt;
   - /etc/prometheus/rules/*.yml&lt;br /&gt;
 &lt;br /&gt;
 scrape_configs:&lt;br /&gt;
   # 1) 抓 blackbox-exporter 自身 /metrics（白盒）&lt;br /&gt;
   - job_name: blackbox_exporter&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets: [&amp;quot;blackbox-exporter:9115&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
   # 2) HTTP 延时（从监控机到目标 HTTP 服务的响应耗时）&lt;br /&gt;
   - job_name: blackbox_http&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [http_2xx]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - &amp;lt;nowiki&amp;gt;https://example.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
           - &amp;lt;nowiki&amp;gt;https://api.example.com/health&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
         labels:&lt;br /&gt;
           group: web&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&lt;br /&gt;
 &lt;br /&gt;
   # 3) TCP 端口连通 + 连接延时（适合 SSH/DB/Redis 等）&lt;br /&gt;
   - job_name: blackbox_tcp&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [tcp_connect]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - 10.0.0.10:22&lt;br /&gt;
           - 10.0.0.11:5432&lt;br /&gt;
         labels:&lt;br /&gt;
           group: tcp&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&lt;br /&gt;
 &lt;br /&gt;
   # 4) ICMP ping 延时（需要 NET_RAW 权限）&lt;br /&gt;
   - job_name: blackbox_icmp&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [icmp]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - 10.0.0.10&lt;br /&gt;
           - 10.0.0.11&lt;br /&gt;
         labels:&lt;br /&gt;
           group: icmp&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;想把“不同模块、不同 targets”合并到一个 job 里也可以（用 &amp;lt;code&amp;gt;labels: module: xxx&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;__param_module&amp;lt;/code&amp;gt; 注入），Prometheus 官方指南里有示例。(Prometheus)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 5) Grafana：自动配置 Prometheus 数据源 ==&lt;br /&gt;
Grafana 支持通过 provisioning 文件自动创建数据源。(Grafana Labs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;grafana/provisioning/datasources/datasource.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;apiVersion: 1&lt;br /&gt;
 &lt;br /&gt;
 datasources:&lt;br /&gt;
   - name: Prometheus&lt;br /&gt;
     type: prometheus&lt;br /&gt;
     access: proxy&lt;br /&gt;
     url: &amp;lt;nowiki&amp;gt;http://prometheus:9090&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     isDefault: true&lt;br /&gt;
     editable: false&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 6) 启动 ==&lt;br /&gt;
在 &amp;lt;code&amp;gt;monitoring/&amp;lt;/code&amp;gt; 目录执行：&lt;br /&gt;
 &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
打开：&lt;br /&gt;
&lt;br /&gt;
* Prometheus：&amp;lt;code&amp;gt;http://&amp;lt;监控机IP&amp;gt;:9090&amp;lt;/code&amp;gt;&lt;br /&gt;
* Grafana：&amp;lt;code&amp;gt;http://&amp;lt;监控机IP&amp;gt;:3000&amp;lt;/code&amp;gt;（账号密码你在 compose 里设的 admin/admin）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 7) 快速验证（建议你先做这一步排错） ==&lt;br /&gt;
&lt;br /&gt;
=== 7.1 直接访问 blackbox /probe 看输出 ===&lt;br /&gt;
Blackbox Exporter 支持直接访问 &amp;lt;code&amp;gt;/probe?target=...&amp;amp;module=...&amp;lt;/code&amp;gt; 获取指标输出，&amp;lt;code&amp;gt;probe_success&amp;lt;/code&amp;gt; 会告诉你探测是否成功。(GitHub)&lt;br /&gt;
&lt;br /&gt;
例如（在监控机上）：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9115/probe?target=prometheus.io&amp;amp;module=http_2xx&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9115/probe?target=10.0.0.10&amp;amp;module=icmp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7.2 Prometheus Targets 页面 ===&lt;br /&gt;
Prometheus UI → &#039;&#039;&#039;Status → Targets&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
看 &amp;lt;code&amp;gt;blackbox_http / blackbox_tcp / blackbox_icmp&amp;lt;/code&amp;gt; 是否 &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 8) 在 Grafana 里看“延时”看哪些指标 ==&lt;br /&gt;
最常用的两个：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;是否可达&#039;&#039;&#039;：&amp;lt;code&amp;gt;probe_success&amp;lt;/code&amp;gt;（1=成功，0=失败）(Prometheus)&lt;br /&gt;
* &#039;&#039;&#039;探测总耗时&#039;&#039;&#039;：&amp;lt;code&amp;gt;probe_duration_seconds&amp;lt;/code&amp;gt;（你要的“延时/Latency”核心指标）(Prometheus)&lt;br /&gt;
&lt;br /&gt;
PromQL 示例（Grafana 面板里直接用）：&lt;br /&gt;
&lt;br /&gt;
* 某组目标最近 5 分钟平均延时：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;avg_over_time(probe_duration_seconds{job=&amp;quot;blackbox_icmp&amp;quot;}[5m])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 最近 5 分钟最大延时（看尖刺）：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;max_over_time(probe_duration_seconds{job=&amp;quot;blackbox_http&amp;quot;}[5m])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 可用率（过去 10 分钟内成功率）：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;avg_over_time(probe_success{job=&amp;quot;blackbox_http&amp;quot;}[10m]) * 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 想拆解 HTTP 延时（DNS/连接/TLS/传输） ===&lt;br /&gt;
Blackbox Exporter 还会给出 &amp;lt;code&amp;gt;probe_http_duration_seconds{phase=&amp;quot;resolve|connect|tls|processing|transfer&amp;quot;}&amp;lt;/code&amp;gt; 这种分阶段指标；这些 phase 含义在社区里有明确解释：resolve=DNS、connect=TCP 建连、tls=TLS 握手、processing=等待首字节、transfer=传输响应。(Google Groups)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 9) 直接套用的 Grafana Dashboard ==&lt;br /&gt;
Grafana 官方仪表盘库里有现成的 &#039;&#039;&#039;Prometheus Blackbox Exporter&#039;&#039;&#039; dashboard（例如 ID：&#039;&#039;&#039;7587&#039;&#039;&#039;）。你在 Grafana → &#039;&#039;&#039;Dashboards → Import&#039;&#039;&#039;，输入 7587，然后选择 Prometheus 数据源即可。(Grafana Labs)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 10) 可选：Prometheus 告警规则（延时过高 / 探测失败） ==&lt;br /&gt;
&amp;lt;code&amp;gt;prometheus/rules/blackbox-alerts.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;groups:&lt;br /&gt;
 - name: blackbox&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; rules:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; - alert: BlackboxProbeFailed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   expr: probe_success == 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   for: 2m&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   labels:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     severity: critical&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   annotations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     summary: &amp;quot;探测失败: &amp;lt;nowiki&amp;gt;{{ $labels.instance }}&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     description: &amp;quot;job=&amp;lt;nowiki&amp;gt;{{ $labels.job }}&amp;lt;/nowiki&amp;gt; 连续 2 分钟探测失败&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; - alert: BlackboxHighLatency&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   expr: probe_duration_seconds &amp;gt; 0.5&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   for: 5m&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   labels:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     severity: warning&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   annotations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     summary: &amp;quot;延时过高: &amp;lt;nowiki&amp;gt;{{ $labels.instance }}&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     description: &amp;quot;job=&amp;lt;nowiki&amp;gt;{{ $labels.job }}&amp;lt;/nowiki&amp;gt; 延时 &amp;gt; 0.5s 持续 5 分钟&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Alertmanager 的作用是对 Prometheus 产生的告警做去重/分组/路由到邮件、PagerDuty、Webhook 等。(Prometheus)&lt;br /&gt;
&lt;br /&gt;
如果你想我给你一份“发到企业微信/钉钉/飞书/Telegram/Webhook”的 alertmanager.yml，我也可以直接给模板。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 11) 常见坑（你大概率会遇到） ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;ICMP 全部失败&#039;&#039;&#039;  大概率是权限问题：Linux 下 ICMP 需要 &amp;lt;code&amp;gt;CAP_NET_RAW&amp;lt;/code&amp;gt; / root / 或配置 &amp;lt;code&amp;gt;ping_group_range&amp;lt;/code&amp;gt;；Docker 里通常加 &amp;lt;code&amp;gt;cap_add: NET_RAW&amp;lt;/code&amp;gt;。(GitHub)&lt;br /&gt;
# &#039;&#039;&#039;HTTP 探测失败但浏览器能打开&#039;&#039;&#039;  常见是：目标需要特定 Host/SNI、重定向、证书问题、内网 DNS 不通。可以先用 &amp;lt;code&amp;gt;/probe?...&amp;amp;debug=true&amp;lt;/code&amp;gt; 看详细原因（blackbox 支持 debug 参数）。(GitHub)&lt;br /&gt;
# &#039;&#039;&#039;Grafana 连不上 Prometheus&#039;&#039;&#039;  确认 datasource URL 用的是 Docker 网络内的 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://prometheus:9090&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;（而不是 &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;）。&lt;br /&gt;
# &#039;&#039;&#039;不建议把 9115 暴露到公网&#039;&#039;&#039;  Blackbox 会帮你去探测任意目标；暴露公网相当于给别人一个“探测器”。生产建议去掉 &amp;lt;code&amp;gt;ports: &amp;quot;9115:9115&amp;quot;&amp;lt;/code&amp;gt; 或加防火墙/反代鉴权。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Category:500 常见应用指南 — Application Guides]]&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1492</id>
		<title>用Docker部署服务器TCP 延时监控</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E7%94%A8Docker%E9%83%A8%E7%BD%B2%E6%9C%8D%E5%8A%A1%E5%99%A8TCP_%E5%BB%B6%E6%97%B6%E7%9B%91%E6%8E%A7&amp;diff=1492"/>
		<updated>2026-03-05T03:49:43Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​init&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;用 Docker / Docker Compose 部署“服务器延时（Latency）监控”**的常用方案：&#039;&#039;&#039;Prometheus + Blackbox Exporter + Grafana&#039;&#039;&#039;。Blackbox Exporter 负责对目标做 &#039;&#039;&#039;HTTP / TCP / ICMP(Ping)&#039;&#039;&#039; 探测并产出 &amp;lt;code&amp;gt;probe_*&amp;lt;/code&amp;gt; 指标，Prometheus 抓取，Grafana 展示。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 1) 目录结构 ==&lt;br /&gt;
在一台“监控机”（能访问你要监控的服务器/端口的那台机器）上建目录：&lt;br /&gt;
 &amp;lt;code&amp;gt;monitoring/&lt;br /&gt;
   docker-compose.yml&lt;br /&gt;
   prometheus/&lt;br /&gt;
     prometheus.yml&lt;br /&gt;
     rules/&lt;br /&gt;
       blackbox-alerts.yml        # 可选：告警规则&lt;br /&gt;
   blackbox/&lt;br /&gt;
     blackbox.yml&lt;br /&gt;
   grafana/&lt;br /&gt;
     provisioning/&lt;br /&gt;
       datasources/&lt;br /&gt;
         datasource.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 2) docker-compose.yml ==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;版本我这里选用：&lt;br /&gt;
&lt;br /&gt;
* Prometheus &amp;lt;code&amp;gt;prom/prometheus:v3.10.0&amp;lt;/code&amp;gt;（示例；该 tag 存在于 Docker Hub）(Docker Hub)&lt;br /&gt;
* Blackbox Exporter &amp;lt;code&amp;gt;prom/blackbox-exporter:v0.28.0&amp;lt;/code&amp;gt;(Docker Hub)&lt;br /&gt;
* Grafana &amp;lt;code&amp;gt;grafana/grafana:12.3-ubuntu&amp;lt;/code&amp;gt;（你也可换成 &amp;lt;code&amp;gt;12.3&amp;lt;/code&amp;gt; 等）(Docker Hub)&lt;br /&gt;
* Alertmanager 可选 &amp;lt;code&amp;gt;prom/alertmanager:v0.31.1&amp;lt;/code&amp;gt;(Docker Hub)&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;services:&lt;br /&gt;
   prometheus:&lt;br /&gt;
     image: prom/prometheus:v3.10.0&lt;br /&gt;
     container_name: prometheus&lt;br /&gt;
     command:&lt;br /&gt;
       - --config.file=/etc/prometheus/prometheus.yml&lt;br /&gt;
       - --storage.tsdb.path=/prometheus&lt;br /&gt;
       - --web.enable-lifecycle&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro&lt;br /&gt;
       - ./prometheus/rules:/etc/prometheus/rules:ro&lt;br /&gt;
       - prometheus_data:/prometheus&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9090:9090&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
   blackbox-exporter:&lt;br /&gt;
     image: prom/blackbox-exporter:v0.28.0&lt;br /&gt;
     container_name: blackbox-exporter&lt;br /&gt;
     command:&lt;br /&gt;
       - --config.file=/etc/blackbox/blackbox.yml&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./blackbox/blackbox.yml:/etc/blackbox/blackbox.yml:ro&lt;br /&gt;
     # 建议：生产环境不对外暴露 9115；需要本机调试再开端口映射&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9115:9115&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
     # ICMP(ping) 需要额外权限（二选一：cap_add 更推荐；privileged 更大）&lt;br /&gt;
     cap_add:&lt;br /&gt;
       - NET_RAW&lt;br /&gt;
     # privileged: true&lt;br /&gt;
 &lt;br /&gt;
   grafana:&lt;br /&gt;
     image: grafana/grafana:12.3-ubuntu&lt;br /&gt;
     container_name: grafana&lt;br /&gt;
     environment:&lt;br /&gt;
       - GF_SECURITY_ADMIN_USER=admin&lt;br /&gt;
       - GF_SECURITY_ADMIN_PASSWORD=admin  # 首次登录后务必修改&lt;br /&gt;
     volumes:&lt;br /&gt;
       - grafana_data:/var/lib/grafana&lt;br /&gt;
       - ./grafana/provisioning:/etc/grafana/provisioning:ro&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;3000:3000&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
   # 可选：Prometheus 规则触发后，用 Alertmanager 分发通知&lt;br /&gt;
   alertmanager:&lt;br /&gt;
     image: prom/alertmanager:v0.31.1&lt;br /&gt;
     container_name: alertmanager&lt;br /&gt;
     # 先用默认示例配置也能跑起来；要发通知再挂载你自己的 alertmanager.yml&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;9093:9093&amp;quot;&lt;br /&gt;
     restart: unless-stopped&lt;br /&gt;
     networks: [monitor]&lt;br /&gt;
 &lt;br /&gt;
 networks:&lt;br /&gt;
   monitor:&lt;br /&gt;
 &lt;br /&gt;
 volumes:&lt;br /&gt;
   prometheus_data:&lt;br /&gt;
   grafana_data:&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 3) blackbox.yml（探测模块配置） ==&lt;br /&gt;
Blackbox Exporter 支持 HTTP/HTTPS、TCP、ICMP、DNS、gRPC 等探测。(GitHub)&lt;br /&gt;
&lt;br /&gt;
先放最常用的 3 个模块：HTTP 200、TCP 端口连通、ICMP ping。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;blackbox/blackbox.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;modules:&lt;br /&gt;
   http_2xx:&lt;br /&gt;
     prober: http&lt;br /&gt;
     timeout: 5s&lt;br /&gt;
     http:&lt;br /&gt;
       preferred_ip_protocol: &amp;quot;ip4&amp;quot;&lt;br /&gt;
       valid_http_versions: [&amp;quot;HTTP/1.1&amp;quot;, &amp;quot;HTTP/2&amp;quot;]&lt;br /&gt;
       method: GET&lt;br /&gt;
       no_follow_redirects: false&lt;br /&gt;
 &lt;br /&gt;
   tcp_connect:&lt;br /&gt;
     prober: tcp&lt;br /&gt;
     timeout: 5s&lt;br /&gt;
 &lt;br /&gt;
   icmp:&lt;br /&gt;
     prober: icmp&lt;br /&gt;
     timeout: 3s&lt;br /&gt;
     icmp:&lt;br /&gt;
       preferred_ip_protocol: &amp;quot;ip4&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;ICMP 权限提示（很关键）&#039;&#039;&#039;：在 Linux 上，ICMP 探测需要 &amp;lt;code&amp;gt;CAP_NET_RAW&amp;lt;/code&amp;gt; 或 root 等权限；Docker 里通常用 &amp;lt;code&amp;gt;cap_add: NET_RAW&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;privileged&amp;lt;/code&amp;gt; 解决。(GitHub)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 4) prometheus.yml（抓取 blackbox 探测结果） ==&lt;br /&gt;
Prometheus 抓取 Blackbox Exporter 通常用 &#039;&#039;&#039;multi-target exporter pattern&#039;&#039;&#039;：Prometheus 实际请求的是 blackbox 的 &amp;lt;code&amp;gt;/probe&amp;lt;/code&amp;gt;，目标地址通过 &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; 参数传递，并通过 relabel 把目标写到 &amp;lt;code&amp;gt;instance&amp;lt;/code&amp;gt; 标签。(Prometheus)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;prometheus/prometheus.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;global:&lt;br /&gt;
   scrape_interval: 15s&lt;br /&gt;
   scrape_timeout: 10s&lt;br /&gt;
   evaluation_interval: 15s&lt;br /&gt;
 &lt;br /&gt;
 rule_files:&lt;br /&gt;
   - /etc/prometheus/rules/*.yml&lt;br /&gt;
 &lt;br /&gt;
 scrape_configs:&lt;br /&gt;
   # 1) 抓 blackbox-exporter 自身 /metrics（白盒）&lt;br /&gt;
   - job_name: blackbox_exporter&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets: [&amp;quot;blackbox-exporter:9115&amp;quot;]&lt;br /&gt;
 &lt;br /&gt;
   # 2) HTTP 延时（从监控机到目标 HTTP 服务的响应耗时）&lt;br /&gt;
   - job_name: blackbox_http&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [http_2xx]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - &amp;lt;nowiki&amp;gt;https://example.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
           - &amp;lt;nowiki&amp;gt;https://api.example.com/health&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
         labels:&lt;br /&gt;
           group: web&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&lt;br /&gt;
 &lt;br /&gt;
   # 3) TCP 端口连通 + 连接延时（适合 SSH/DB/Redis 等）&lt;br /&gt;
   - job_name: blackbox_tcp&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [tcp_connect]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - 10.0.0.10:22&lt;br /&gt;
           - 10.0.0.11:5432&lt;br /&gt;
         labels:&lt;br /&gt;
           group: tcp&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&lt;br /&gt;
 &lt;br /&gt;
   # 4) ICMP ping 延时（需要 NET_RAW 权限）&lt;br /&gt;
   - job_name: blackbox_icmp&lt;br /&gt;
     metrics_path: /probe&lt;br /&gt;
     params:&lt;br /&gt;
       module: [icmp]&lt;br /&gt;
     static_configs:&lt;br /&gt;
       - targets:&lt;br /&gt;
           - 10.0.0.10&lt;br /&gt;
           - 10.0.0.11&lt;br /&gt;
         labels:&lt;br /&gt;
           group: icmp&lt;br /&gt;
     relabel_configs:&lt;br /&gt;
       - source_labels: [__address__]&lt;br /&gt;
         target_label: __param_target&lt;br /&gt;
       - source_labels: [__param_target]&lt;br /&gt;
         target_label: instance&lt;br /&gt;
       - target_label: __address__&lt;br /&gt;
         replacement: blackbox-exporter:9115&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;想把“不同模块、不同 targets”合并到一个 job 里也可以（用 &amp;lt;code&amp;gt;labels: module: xxx&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;__param_module&amp;lt;/code&amp;gt; 注入），Prometheus 官方指南里有示例。(Prometheus)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 5) Grafana：自动配置 Prometheus 数据源 ==&lt;br /&gt;
Grafana 支持通过 provisioning 文件自动创建数据源。(Grafana Labs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;grafana/provisioning/datasources/datasource.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;apiVersion: 1&lt;br /&gt;
 &lt;br /&gt;
 datasources:&lt;br /&gt;
   - name: Prometheus&lt;br /&gt;
     type: prometheus&lt;br /&gt;
     access: proxy&lt;br /&gt;
     url: &amp;lt;nowiki&amp;gt;http://prometheus:9090&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
     isDefault: true&lt;br /&gt;
     editable: false&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 6) 启动 ==&lt;br /&gt;
在 &amp;lt;code&amp;gt;monitoring/&amp;lt;/code&amp;gt; 目录执行：&lt;br /&gt;
 &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
打开：&lt;br /&gt;
&lt;br /&gt;
* Prometheus：&amp;lt;code&amp;gt;http://&amp;lt;监控机IP&amp;gt;:9090&amp;lt;/code&amp;gt;&lt;br /&gt;
* Grafana：&amp;lt;code&amp;gt;http://&amp;lt;监控机IP&amp;gt;:3000&amp;lt;/code&amp;gt;（账号密码你在 compose 里设的 admin/admin）&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 7) 快速验证（建议你先做这一步排错） ==&lt;br /&gt;
&lt;br /&gt;
=== 7.1 直接访问 blackbox /probe 看输出 ===&lt;br /&gt;
Blackbox Exporter 支持直接访问 &amp;lt;code&amp;gt;/probe?target=...&amp;amp;module=...&amp;lt;/code&amp;gt; 获取指标输出，&amp;lt;code&amp;gt;probe_success&amp;lt;/code&amp;gt; 会告诉你探测是否成功。(GitHub)&lt;br /&gt;
&lt;br /&gt;
例如（在监控机上）：&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9115/probe?target=prometheus.io&amp;amp;module=http_2xx&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://localhost:9115/probe?target=10.0.0.10&amp;amp;module=icmp&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7.2 Prometheus Targets 页面 ===&lt;br /&gt;
Prometheus UI → &#039;&#039;&#039;Status → Targets&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
看 &amp;lt;code&amp;gt;blackbox_http / blackbox_tcp / blackbox_icmp&amp;lt;/code&amp;gt; 是否 &amp;lt;code&amp;gt;UP&amp;lt;/code&amp;gt;。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 8) 在 Grafana 里看“延时”看哪些指标 ==&lt;br /&gt;
最常用的两个：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;是否可达&#039;&#039;&#039;：&amp;lt;code&amp;gt;probe_success&amp;lt;/code&amp;gt;（1=成功，0=失败）(Prometheus)&lt;br /&gt;
* &#039;&#039;&#039;探测总耗时&#039;&#039;&#039;：&amp;lt;code&amp;gt;probe_duration_seconds&amp;lt;/code&amp;gt;（你要的“延时/Latency”核心指标）(Prometheus)&lt;br /&gt;
&lt;br /&gt;
PromQL 示例（Grafana 面板里直接用）：&lt;br /&gt;
&lt;br /&gt;
* 某组目标最近 5 分钟平均延时：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;avg_over_time(probe_duration_seconds{job=&amp;quot;blackbox_icmp&amp;quot;}[5m])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 最近 5 分钟最大延时（看尖刺）：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;max_over_time(probe_duration_seconds{job=&amp;quot;blackbox_http&amp;quot;}[5m])&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 可用率（过去 10 分钟内成功率）：&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;avg_over_time(probe_success{job=&amp;quot;blackbox_http&amp;quot;}[10m]) * 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 想拆解 HTTP 延时（DNS/连接/TLS/传输） ===&lt;br /&gt;
Blackbox Exporter 还会给出 &amp;lt;code&amp;gt;probe_http_duration_seconds{phase=&amp;quot;resolve|connect|tls|processing|transfer&amp;quot;}&amp;lt;/code&amp;gt; 这种分阶段指标；这些 phase 含义在社区里有明确解释：resolve=DNS、connect=TCP 建连、tls=TLS 握手、processing=等待首字节、transfer=传输响应。(Google Groups)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 9) 直接套用的 Grafana Dashboard ==&lt;br /&gt;
Grafana 官方仪表盘库里有现成的 &#039;&#039;&#039;Prometheus Blackbox Exporter&#039;&#039;&#039; dashboard（例如 ID：&#039;&#039;&#039;7587&#039;&#039;&#039;）。你在 Grafana → &#039;&#039;&#039;Dashboards → Import&#039;&#039;&#039;，输入 7587，然后选择 Prometheus 数据源即可。(Grafana Labs)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 10) 可选：Prometheus 告警规则（延时过高 / 探测失败） ==&lt;br /&gt;
&amp;lt;code&amp;gt;prometheus/rules/blackbox-alerts.yml&amp;lt;/code&amp;gt;：&lt;br /&gt;
 &amp;lt;code&amp;gt;groups:&lt;br /&gt;
 - name: blackbox&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; rules:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; - alert: BlackboxProbeFailed&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   expr: probe_success == 0&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   for: 2m&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   labels:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     severity: critical&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   annotations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     summary: &amp;quot;探测失败: &amp;lt;nowiki&amp;gt;{{ $labels.instance }}&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     description: &amp;quot;job=&amp;lt;nowiki&amp;gt;{{ $labels.job }}&amp;lt;/nowiki&amp;gt; 连续 2 分钟探测失败&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt; - alert: BlackboxHighLatency&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   expr: probe_duration_seconds &amp;gt; 0.5&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   for: 5m&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   labels:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     severity: warning&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   annotations:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     summary: &amp;quot;延时过高: &amp;lt;nowiki&amp;gt;{{ $labels.instance }}&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;     description: &amp;quot;job=&amp;lt;nowiki&amp;gt;{{ $labels.job }}&amp;lt;/nowiki&amp;gt; 延时 &amp;gt; 0.5s 持续 5 分钟&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Alertmanager 的作用是对 Prometheus 产生的告警做去重/分组/路由到邮件、PagerDuty、Webhook 等。(Prometheus)&lt;br /&gt;
&lt;br /&gt;
如果你想我给你一份“发到企业微信/钉钉/飞书/Telegram/Webhook”的 alertmanager.yml，我也可以直接给模板。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 11) 常见坑（你大概率会遇到） ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;ICMP 全部失败&#039;&#039;&#039;  大概率是权限问题：Linux 下 ICMP 需要 &amp;lt;code&amp;gt;CAP_NET_RAW&amp;lt;/code&amp;gt; / root / 或配置 &amp;lt;code&amp;gt;ping_group_range&amp;lt;/code&amp;gt;；Docker 里通常加 &amp;lt;code&amp;gt;cap_add: NET_RAW&amp;lt;/code&amp;gt;。(GitHub)&lt;br /&gt;
# &#039;&#039;&#039;HTTP 探测失败但浏览器能打开&#039;&#039;&#039;  常见是：目标需要特定 Host/SNI、重定向、证书问题、内网 DNS 不通。可以先用 &amp;lt;code&amp;gt;/probe?...&amp;amp;debug=true&amp;lt;/code&amp;gt; 看详细原因（blackbox 支持 debug 参数）。(GitHub)&lt;br /&gt;
# &#039;&#039;&#039;Grafana 连不上 Prometheus&#039;&#039;&#039;  确认 datasource URL 用的是 Docker 网络内的 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://prometheus:9090&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;（而不是 &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;）。&lt;br /&gt;
# &#039;&#039;&#039;不建议把 9115 暴露到公网&#039;&#039;&#039;  Blackbox 会帮你去探测任意目标；暴露公网相当于给别人一个“探测器”。生产建议去掉 &amp;lt;code&amp;gt;ports: &amp;quot;9115:9115&amp;quot;&amp;lt;/code&amp;gt; 或加防火墙/反代鉴权。&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E5%BC%80%E5%90%AFFTP%E6%9C%8D%E5%8A%A1&amp;diff=1490</id>
		<title>如何服务器上开启FTP服务</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E5%BC%80%E5%90%AFFTP%E6%9C%8D%E5%8A%A1&amp;diff=1490"/>
		<updated>2026-03-05T03:04:07Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​add category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;在 &#039;&#039;&#039;系统&#039;&#039;&#039;上开启 FTP 服务，通常使用 &#039;&#039;&#039;vsftpd&#039;&#039;&#039;（Very Secure FTP Daemon），这是最常见、稳定的 FTP 服务器。以&#039;&#039;&#039;Debian 系统 为例 ，&#039;&#039;&#039;下面是完整步骤👇&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 一、安装 FTP 服务（vsftpd） =&lt;br /&gt;
先更新软件源并安装：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt update&lt;br /&gt;
 sudo apt install vsftpd -y&amp;lt;/code&amp;gt;&lt;br /&gt;
安装完成后，vsftpd 会自动创建服务。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 二、启动 FTP 服务 =&lt;br /&gt;
启动服务：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl start vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
设置开机自启动：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl enable vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
查看运行状态：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl status vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
如果看到 &amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt; 说明已经运行 ✅&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 三、修改 FTP 配置 =&lt;br /&gt;
配置文件位置：&lt;br /&gt;
 &amp;lt;code&amp;gt;/etc/vsftpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
编辑配置：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nano /etc/vsftpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
推荐修改以下内容：&lt;br /&gt;
 &amp;lt;code&amp;gt;anonymous_enable=NO&lt;br /&gt;
 local_enable=YES&lt;br /&gt;
 write_enable=YES&lt;br /&gt;
 chroot_local_user=YES&amp;lt;/code&amp;gt;&lt;br /&gt;
说明：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!参数&lt;br /&gt;
!作用&lt;br /&gt;
|-&lt;br /&gt;
|anonymous_enable&lt;br /&gt;
|是否允许匿名登录&lt;br /&gt;
|-&lt;br /&gt;
|local_enable&lt;br /&gt;
|允许系统用户登录&lt;br /&gt;
|-&lt;br /&gt;
|write_enable&lt;br /&gt;
|允许上传&lt;br /&gt;
|-&lt;br /&gt;
|chroot_local_user&lt;br /&gt;
|限制用户只能访问自己的目录&lt;br /&gt;
|}&lt;br /&gt;
保存退出：&lt;br /&gt;
 &amp;lt;code&amp;gt;CTRL + O&lt;br /&gt;
 CTRL + X&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 四、创建 FTP 用户（可选） =&lt;br /&gt;
如果想单独创建 FTP 用户：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo adduser ftpuser&amp;lt;/code&amp;gt;&lt;br /&gt;
设置目录权限：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo mkdir /home/ftpuser/ftp&lt;br /&gt;
 sudo chown nobody:nogroup /home/ftpuser/ftp&lt;br /&gt;
 sudo chmod a-w /home/ftpuser/ftp&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 五、重启 FTP 服务 =&lt;br /&gt;
修改配置后需要重启：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl restart vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 六、开放防火墙端口 =&lt;br /&gt;
FTP 默认端口：&lt;br /&gt;
 &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&lt;br /&gt;
如果使用 UFW：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo ufw allow 21/tcp&lt;br /&gt;
 sudo ufw reload&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 七、测试 FTP 连接 =&lt;br /&gt;
本机测试：&lt;br /&gt;
 &amp;lt;code&amp;gt;ftp localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
或远程连接：&lt;br /&gt;
 &amp;lt;code&amp;gt;ftp 服务器IP&amp;lt;/code&amp;gt;&lt;br /&gt;
输入：&lt;br /&gt;
 &amp;lt;code&amp;gt;用户名&lt;br /&gt;
 密码&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 八、查看 FTP 日志（排错） =&lt;br /&gt;
日志位置：&lt;br /&gt;
 &amp;lt;code&amp;gt;/var/log/vsftpd.log&amp;lt;/code&amp;gt;&lt;br /&gt;
查看：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo tail -f /var/log/vsftpd.log&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 九、常见 FTP 客户端 =&lt;br /&gt;
推荐：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FileZilla&#039;&#039;&#039;&lt;br /&gt;
* WinSCP&lt;br /&gt;
* lftp&lt;br /&gt;
* curl&lt;br /&gt;
&lt;br /&gt;
连接方式：&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;ftp://服务器IP&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 端口: 21&lt;br /&gt;
 用户名&lt;br /&gt;
 密码&amp;lt;/code&amp;gt;&lt;br /&gt;
----💡 &#039;&#039;&#039;建议（生产环境）&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FTP 不安全，推荐使用：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SFTP（SSH FTP）&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;FTPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
如果需要，我可以给你一份 &#039;&#039;&#039;Debian 安全 FTP 完整配置（含被动模式、外网访问）&#039;&#039;&#039;，实际服务器都会这么配置。&lt;br /&gt;
[[Category:500 常见应用指南 — Application Guides]]&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E5%BC%80%E5%90%AFFTP%E6%9C%8D%E5%8A%A1&amp;diff=1489</id>
		<title>如何服务器上开启FTP服务</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E5%BC%80%E5%90%AFFTP%E6%9C%8D%E5%8A%A1&amp;diff=1489"/>
		<updated>2026-03-05T03:02:51Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​init&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;在 &#039;&#039;&#039;系统&#039;&#039;&#039;上开启 FTP 服务，通常使用 &#039;&#039;&#039;vsftpd&#039;&#039;&#039;（Very Secure FTP Daemon），这是最常见、稳定的 FTP 服务器。以&#039;&#039;&#039;Debian 系统 为例 ，&#039;&#039;&#039;下面是完整步骤👇&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 一、安装 FTP 服务（vsftpd） =&lt;br /&gt;
先更新软件源并安装：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo apt update&lt;br /&gt;
 sudo apt install vsftpd -y&amp;lt;/code&amp;gt;&lt;br /&gt;
安装完成后，vsftpd 会自动创建服务。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 二、启动 FTP 服务 =&lt;br /&gt;
启动服务：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl start vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
设置开机自启动：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl enable vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
查看运行状态：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl status vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
如果看到 &amp;lt;code&amp;gt;active (running)&amp;lt;/code&amp;gt; 说明已经运行 ✅&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 三、修改 FTP 配置 =&lt;br /&gt;
配置文件位置：&lt;br /&gt;
 &amp;lt;code&amp;gt;/etc/vsftpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
编辑配置：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo nano /etc/vsftpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
推荐修改以下内容：&lt;br /&gt;
 &amp;lt;code&amp;gt;anonymous_enable=NO&lt;br /&gt;
 local_enable=YES&lt;br /&gt;
 write_enable=YES&lt;br /&gt;
 chroot_local_user=YES&amp;lt;/code&amp;gt;&lt;br /&gt;
说明：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!参数&lt;br /&gt;
!作用&lt;br /&gt;
|-&lt;br /&gt;
|anonymous_enable&lt;br /&gt;
|是否允许匿名登录&lt;br /&gt;
|-&lt;br /&gt;
|local_enable&lt;br /&gt;
|允许系统用户登录&lt;br /&gt;
|-&lt;br /&gt;
|write_enable&lt;br /&gt;
|允许上传&lt;br /&gt;
|-&lt;br /&gt;
|chroot_local_user&lt;br /&gt;
|限制用户只能访问自己的目录&lt;br /&gt;
|}&lt;br /&gt;
保存退出：&lt;br /&gt;
 &amp;lt;code&amp;gt;CTRL + O&lt;br /&gt;
 CTRL + X&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 四、创建 FTP 用户（可选） =&lt;br /&gt;
如果想单独创建 FTP 用户：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo adduser ftpuser&amp;lt;/code&amp;gt;&lt;br /&gt;
设置目录权限：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo mkdir /home/ftpuser/ftp&lt;br /&gt;
 sudo chown nobody:nogroup /home/ftpuser/ftp&lt;br /&gt;
 sudo chmod a-w /home/ftpuser/ftp&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 五、重启 FTP 服务 =&lt;br /&gt;
修改配置后需要重启：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo systemctl restart vsftpd&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 六、开放防火墙端口 =&lt;br /&gt;
FTP 默认端口：&lt;br /&gt;
 &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&lt;br /&gt;
如果使用 UFW：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo ufw allow 21/tcp&lt;br /&gt;
 sudo ufw reload&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 七、测试 FTP 连接 =&lt;br /&gt;
本机测试：&lt;br /&gt;
 &amp;lt;code&amp;gt;ftp localhost&amp;lt;/code&amp;gt;&lt;br /&gt;
或远程连接：&lt;br /&gt;
 &amp;lt;code&amp;gt;ftp 服务器IP&amp;lt;/code&amp;gt;&lt;br /&gt;
输入：&lt;br /&gt;
 &amp;lt;code&amp;gt;用户名&lt;br /&gt;
 密码&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 八、查看 FTP 日志（排错） =&lt;br /&gt;
日志位置：&lt;br /&gt;
 &amp;lt;code&amp;gt;/var/log/vsftpd.log&amp;lt;/code&amp;gt;&lt;br /&gt;
查看：&lt;br /&gt;
 &amp;lt;code&amp;gt;sudo tail -f /var/log/vsftpd.log&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= 九、常见 FTP 客户端 =&lt;br /&gt;
推荐：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FileZilla&#039;&#039;&#039;&lt;br /&gt;
* WinSCP&lt;br /&gt;
* lftp&lt;br /&gt;
* curl&lt;br /&gt;
&lt;br /&gt;
连接方式：&lt;br /&gt;
 &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;ftp://服务器IP&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 端口: 21&lt;br /&gt;
 用户名&lt;br /&gt;
 密码&amp;lt;/code&amp;gt;&lt;br /&gt;
----💡 &#039;&#039;&#039;建议（生产环境）&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FTP 不安全，推荐使用：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SFTP（SSH FTP）&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;FTPS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
如果需要，我可以给你一份 &#039;&#039;&#039;Debian 安全 FTP 完整配置（含被动模式、外网访问）&#039;&#039;&#039;，实际服务器都会这么配置。&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=CN2_GIA%E3%80%81CN2_GT%E3%80%81163%E7%BA%BF%E8%B7%AF%E4%B8%8EAS9929/CMIN2%E7%AD%89%E7%BD%91%E7%BB%9C%E5%8C%BA%E5%88%AB&amp;diff=1488</id>
		<title>CN2 GIA、CN2 GT、163线路与AS9929/CMIN2等网络区别</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=CN2_GIA%E3%80%81CN2_GT%E3%80%81163%E7%BA%BF%E8%B7%AF%E4%B8%8EAS9929/CMIN2%E7%AD%89%E7%BD%91%E7%BB%9C%E5%8C%BA%E5%88%AB&amp;diff=1488"/>
		<updated>2026-03-03T04:35:43Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== 一、中国电信三大核心线路对比 ==&lt;br /&gt;
&lt;br /&gt;
=== 1. 普通163骨干网（AS4134） ===&lt;br /&gt;
&lt;br /&gt;
* 路由特征: 全程202.97.*节点&lt;br /&gt;
* 性能短板: 晚高峰严重拥堵（丢包率&amp;gt;30%）&lt;br /&gt;
* 适用场景: 静态网页/CDN等时延不敏感业务&lt;br /&gt;
&lt;br /&gt;
=== 2. CN2 GT (Global Transit) ===&lt;br /&gt;
&lt;br /&gt;
* 技术架构: 出口段59.43.* + 国内段202.97.*&lt;br /&gt;
* 性能表现: 比163稳定，高峰仍有20ms波动&lt;br /&gt;
* 性价比: 带宽成本比GIA低40%&lt;br /&gt;
&lt;br /&gt;
=== 3. CN2 GIA (Global Internet Access) ===&lt;br /&gt;
&lt;br /&gt;
* 核心优势: 全程59.43.*独立路由&lt;br /&gt;
* SLA保障: 单向延迟&amp;lt;50ms，丢包率&amp;lt;0.1%&lt;br /&gt;
* 验证方法: traceroute无202.97节点&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 二、运营商专线对比 ==&lt;br /&gt;
&lt;br /&gt;
=== 移动CMI/CMIN2 ===&lt;br /&gt;
&lt;br /&gt;
* 亚洲方向优化，中日延迟&amp;lt;30ms&lt;br /&gt;
* 广电网络共享此线路&lt;br /&gt;
&lt;br /&gt;
=== 联通AS9929（A网） ===&lt;br /&gt;
&lt;br /&gt;
* 联通版CN2 GIA，全程专用路由&lt;br /&gt;
* 欧美方向稳定性优于普通线路&lt;br /&gt;
&lt;br /&gt;
== 三、国际运营商线路 ==&lt;br /&gt;
&lt;br /&gt;
=== HE.net / Cogent / NTT ===&lt;br /&gt;
&lt;br /&gt;
* 通过163网与国内互联&lt;br /&gt;
* 高峰期间中美延迟&amp;gt;300ms&lt;br /&gt;
* 适合非中国方向业务&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+线路性能对比总表&lt;br /&gt;
!线路类型&lt;br /&gt;
!晚高峰延迟&lt;br /&gt;
!丢包率&lt;br /&gt;
!带宽成本&lt;br /&gt;
!推荐指数&lt;br /&gt;
|-&lt;br /&gt;
|电信CN2 GIA&lt;br /&gt;
|50-80ms&lt;br /&gt;
|&amp;lt;0.5%&lt;br /&gt;
|$$$$$&lt;br /&gt;
|★★★★★&lt;br /&gt;
|-&lt;br /&gt;
|联通AS9929&lt;br /&gt;
|60-100ms&lt;br /&gt;
|&amp;lt;1%&lt;br /&gt;
|$$$$&lt;br /&gt;
|★★★★☆&lt;br /&gt;
|-&lt;br /&gt;
|移动CMIN2&lt;br /&gt;
|70-120ms&lt;br /&gt;
|&amp;lt;2%&lt;br /&gt;
|$$$$&lt;br /&gt;
|★★★★&lt;br /&gt;
|-&lt;br /&gt;
|电信CN2 GT&lt;br /&gt;
|100-200ms&lt;br /&gt;
|3-15%&lt;br /&gt;
|$$$&lt;br /&gt;
|★★★&lt;br /&gt;
|-&lt;br /&gt;
|普通163&lt;br /&gt;
|&amp;gt;250ms&lt;br /&gt;
|&amp;gt;30%&lt;br /&gt;
|$&lt;br /&gt;
|★★&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 四、业务场景选型指南 ==&lt;br /&gt;
&lt;br /&gt;
* 金融交易/视频会议 → 必选CN2 GIA或AS9929&lt;br /&gt;
* 跨境电商官网 → CN2 GT+CDN加速组合&lt;br /&gt;
* 海外用户访问 → 部署HE.net/Cogent+Anycast&lt;br /&gt;
* 移动端应用 → 优先CMIN2线路&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;关键提示： 验证线路真伪需检测双向路由（中国↔海外），警惕商家虚假宣传”全向CN2″。企业级业务建议采用BGP多线融合方案，典型配置：CN2 GIA(主)+AS9929(备)+CMIN2(移动优化)&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[Category:500 常见应用指南 — Application Guides]]&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=CN2_GIA%E3%80%81CN2_GT%E3%80%81163%E7%BA%BF%E8%B7%AF%E4%B8%8EAS9929/CMIN2%E7%AD%89%E7%BD%91%E7%BB%9C%E5%8C%BA%E5%88%AB&amp;diff=1487</id>
		<title>CN2 GIA、CN2 GT、163线路与AS9929/CMIN2等网络区别</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=CN2_GIA%E3%80%81CN2_GT%E3%80%81163%E7%BA%BF%E8%B7%AF%E4%B8%8EAS9929/CMIN2%E7%AD%89%E7%BD%91%E7%BB%9C%E5%8C%BA%E5%88%AB&amp;diff=1487"/>
		<updated>2026-03-03T03:10:41Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​init&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== 一、中国电信三大核心线路对比 ==&lt;br /&gt;
&lt;br /&gt;
=== 1. 普通163骨干网（AS4134） ===&lt;br /&gt;
&lt;br /&gt;
* 路由特征: 全程202.97.*节点&lt;br /&gt;
* 性能短板: 晚高峰严重拥堵（丢包率&amp;gt;30%）&lt;br /&gt;
* 适用场景: 静态网页/CDN等时延不敏感业务&lt;br /&gt;
&lt;br /&gt;
=== 2. CN2 GT (Global Transit) ===&lt;br /&gt;
&lt;br /&gt;
* 技术架构: 出口段59.43.* + 国内段202.97.*&lt;br /&gt;
* 性能表现: 比163稳定，高峰仍有20ms波动&lt;br /&gt;
* 性价比: 带宽成本比GIA低40%&lt;br /&gt;
&lt;br /&gt;
=== 3. CN2 GIA (Global Internet Access) ===&lt;br /&gt;
&lt;br /&gt;
* 核心优势: 全程59.43.*独立路由&lt;br /&gt;
* SLA保障: 单向延迟&amp;lt;50ms，丢包率&amp;lt;0.1%&lt;br /&gt;
* 验证方法: traceroute无202.97节点&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 二、运营商专线对比 ==&lt;br /&gt;
&lt;br /&gt;
=== 移动CMI/CMIN2 ===&lt;br /&gt;
&lt;br /&gt;
* 亚洲方向优化，中日延迟&amp;lt;30ms&lt;br /&gt;
* 广电网络共享此线路&lt;br /&gt;
&lt;br /&gt;
=== 联通AS9929（A网） ===&lt;br /&gt;
&lt;br /&gt;
* 联通版CN2 GIA，全程专用路由&lt;br /&gt;
* 欧美方向稳定性优于普通线路&lt;br /&gt;
&lt;br /&gt;
== 三、国际运营商线路 ==&lt;br /&gt;
&lt;br /&gt;
=== HE.net / Cogent / NTT ===&lt;br /&gt;
&lt;br /&gt;
* 通过163网与国内互联&lt;br /&gt;
* 高峰期间中美延迟&amp;gt;300ms&lt;br /&gt;
* 适合非中国方向业务&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+线路性能对比总表&lt;br /&gt;
!线路类型&lt;br /&gt;
!晚高峰延迟&lt;br /&gt;
!丢包率&lt;br /&gt;
!带宽成本&lt;br /&gt;
!推荐指数&lt;br /&gt;
|-&lt;br /&gt;
|电信CN2 GIA&lt;br /&gt;
|50-80ms&lt;br /&gt;
|&amp;lt;0.5%&lt;br /&gt;
|$$$$$&lt;br /&gt;
|★★★★★&lt;br /&gt;
|-&lt;br /&gt;
|联通AS9929&lt;br /&gt;
|60-100ms&lt;br /&gt;
|&amp;lt;1%&lt;br /&gt;
|$$$$&lt;br /&gt;
|★★★★☆&lt;br /&gt;
|-&lt;br /&gt;
|移动CMIN2&lt;br /&gt;
|70-120ms&lt;br /&gt;
|&amp;lt;2%&lt;br /&gt;
|$$$$&lt;br /&gt;
|★★★★&lt;br /&gt;
|-&lt;br /&gt;
|电信CN2 GT&lt;br /&gt;
|100-200ms&lt;br /&gt;
|3-15%&lt;br /&gt;
|$$$&lt;br /&gt;
|★★★&lt;br /&gt;
|-&lt;br /&gt;
|普通163&lt;br /&gt;
|&amp;gt;250ms&lt;br /&gt;
|&amp;gt;30%&lt;br /&gt;
|$&lt;br /&gt;
|★★&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 四、业务场景选型指南 ==&lt;br /&gt;
&lt;br /&gt;
* 金融交易/视频会议 → 必选CN2 GIA或AS9929&lt;br /&gt;
* 跨境电商官网 → CN2 GT+CDN加速组合&lt;br /&gt;
* 海外用户访问 → 部署HE.net/Cogent+Anycast&lt;br /&gt;
* 移动端应用 → 优先CMIN2线路&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;关键提示： 验证线路真伪需检测双向路由（中国↔海外），警惕商家虚假宣传”全向CN2″。企业级业务建议采用BGP多线融合方案，典型配置：CN2 GIA(主)+AS9929(备)+CMIN2(移动优化)&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=OpenCrow%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97&amp;diff=1473</id>
		<title>OpenCrow部署指南</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=OpenCrow%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97&amp;diff=1473"/>
		<updated>2026-02-27T07:46:47Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​init&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
OpenCrow推荐使用2核4G的配置，可以购买&#039;&#039;&#039;BandwagonHost&#039;&#039;&#039; 的 &#039;&#039;&#039;VPS - Self-managed - 80G KVM - PROMO&#039;&#039;&#039; 型号的主机，配置如下：&amp;lt;syntaxhighlight lang=&amp;quot;abap&amp;quot;&amp;gt;&lt;br /&gt;
VPS - Self-managed - 80G KVM - PROMO&lt;br /&gt;
SSD: 80 GB RAID-10&lt;br /&gt;
RAM: 4 GB&lt;br /&gt;
CPU: 4x Intel Xeon&lt;br /&gt;
Transfer: 3 TB/mo&lt;br /&gt;
Link speed: 1 Gigabit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;月费是19.99$&lt;br /&gt;
&lt;br /&gt;
先购买好主机，系统选择Debian ，开机后， SSH登录上去。&lt;br /&gt;
&lt;br /&gt;
=== 1. 部署准备 首先需要确定使用方式，这决定了你用什么方式部署。 ===&lt;br /&gt;
项目概览：[https://github.com/openclaw/openclaw/blob/main/README.md README.md]&lt;br /&gt;
&lt;br /&gt;
运行载体：支持本地宿主机、虚拟机、云服务器等。&lt;br /&gt;
&lt;br /&gt;
最佳配置方案：&#039;&#039;&#039;海外云 VPS + Telegram + 顶级模型&#039;&#039;&#039;（如 Claude 或 GPT）。&lt;br /&gt;
&lt;br /&gt;
在动手前，请先阅读官方部署文档：[https://github.com/openclaw/openclaw/blob/main/docs/install/docker.md Docker 部署文档]&lt;br /&gt;
&lt;br /&gt;
1.1 手动部署与项目下载&lt;br /&gt;
在云服务器上执行以下命令下载项目并进行初始化：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
git clone https://github.com/openclaw/openclaw.git&lt;br /&gt;
cd openclaw&lt;br /&gt;
./docker-setup.sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
运行脚本后，系统会在宿主机创建两个核心文件夹并挂载到 Docker 容器：&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;~/.openclaw&#039;&#039;&#039; — 配置目录：存储记忆、配置文件及第三方 API 密钥。&lt;br /&gt;
&#039;&#039;&#039;~/openclaw/workspace&#039;&#039;&#039; — 工作空间目录：Agent 可直接访问及保存文件的目录。&lt;br /&gt;
1.2 配置引导&lt;br /&gt;
Docker 启动后会自动打开配置引导界面。&lt;br /&gt;
&lt;br /&gt;
在初始界面选择 &#039;&#039;&#039;Skip for now&#039;&#039;&#039; 跳过。&lt;br /&gt;
Telegram 渠道准备：&lt;br /&gt;
#* 在 Telegram 搜索 @userinfobot 获取自己的 &#039;&#039;&#039;用户 ID&#039;&#039;&#039;。&lt;br /&gt;
#* 搜索 @BotFather 创建机器人，获取 &#039;&#039;&#039;Bot API Token&#039;&#039;&#039;。&lt;br /&gt;
&lt;br /&gt;
在配置引导的 &#039;&#039;&#039;Telegram (Bot API)&#039;&#039;&#039; 处填入上述 Token。&lt;br /&gt;
Hooks 建议选择：session-memory。&lt;br /&gt;
出现 Token 提示（如 24b38f4...）即表示配置完成。&lt;br /&gt;
访问地址：http://公网IP:18789（建议后续使用域名访问，详见 5.2 节）。&lt;br /&gt;
&lt;br /&gt;
=== 2. 消息通知渠道配对 在服务器上执行配对命令以激活渠道： ===&lt;br /&gt;
; 宿主机直接执行&lt;br /&gt;
: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;openclaw pairing approve telegram YKEY9974&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
; Docker 版执行&lt;br /&gt;
: &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;docker compose run --rm openclaw-cli pairing approve telegram YKEY9974&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&#039;&#039;&#039;注意&#039;&#039;&#039;：配对码有效期为 1 小时。若过期，请在 Telegram 发送 /start 获取新码。&lt;br /&gt;
&lt;br /&gt;
=== 3. 模型选择建议 ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 维度 !! 任务类型 !! 推荐模型&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;按任务复杂度&#039;&#039;&#039;&lt;br /&gt;
| 编程、金融、数据分析等复杂任务&lt;br /&gt;
| Claude Opus 4.6, GPT 5.2 Pro&lt;br /&gt;
|-&lt;br /&gt;
| 资料整理、P 图、日常写作&lt;br /&gt;
| Kimi 2.5, GLM 5.0, MiniMax-M2.5&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;按使用频次&#039;&#039;&#039;&lt;br /&gt;
| 高频使用&lt;br /&gt;
| 推荐包月/包年套餐（如 GLM5）&lt;br /&gt;
|-&lt;br /&gt;
| 低频使用&lt;br /&gt;
| 推荐企业级 API 按量付费（如 Atlas Cloud）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 4. Skills &amp;amp; MCP Skills：推荐从 [https://clawhub.com ClawHub] 社区下载。 ===&lt;br /&gt;
** 常用推荐：find-skills, Agent Browser, DevTools MCP, auto-updater, self-improving-agent。&lt;br /&gt;
&lt;br /&gt;
MCP：若使用智谱模型，建议优先使用其专属 MCP 插件以获得最佳效果。&lt;br /&gt;
&lt;br /&gt;
=== 5. 常见问题排查 (FAQ) ===&lt;br /&gt;
&lt;br /&gt;
==== 5.1 权限问题 (EACCES permission denied) 现象：报错 Error: EACCES: permission denied。 ====&lt;br /&gt;
原因：容器用户（uid=1000）无权写入 root 拥有的目录。&lt;br /&gt;
&lt;br /&gt;
方案：执行 chown -R 1000:1000 &amp;quot;$HOME/.openclaw&amp;quot;，随后运行 docker compose run --rm openclaw-cli onboard 重新初始化。&lt;br /&gt;
&lt;br /&gt;
==== 5.2 安全环境要求 (HTTPS) 现象：报错 control ui requires HTTPS or localhost。 ====&lt;br /&gt;
方案：配置反向代理（推荐使用 &#039;&#039;&#039;Caddy&#039;&#039;&#039;）开启 HTTPS，通过域名访问。&lt;br /&gt;
&lt;br /&gt;
==== 5.3 Docker 专用排查步骤 ====&lt;br /&gt;
如果遇到设备配对失败（pairing required），请按以下步骤操作：&lt;br /&gt;
&lt;br /&gt;
修复网络：在 docker-compose.yml 中为 openclaw-cli 设置 OPENCLAW_GATEWAY_URL: ws://openclaw-gateway:18789。&lt;br /&gt;
绑定局域网：在 openclaw.json 中设置 &amp;quot;gateway&amp;quot;: { &amp;quot;bind&amp;quot;: &amp;quot;lan&amp;quot; }。&lt;br /&gt;
同步 Token：确保 .env 中的 OPENCLAW_GATEWAY_TOKEN 与 openclaw.json 一致。&lt;br /&gt;
手动批准设备：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose exec openclaw-gateway node dist/index.js devices list&lt;br /&gt;
docker compose exec openclaw-gateway node dist/index.js devices approve &amp;lt;request-id&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. 进阶技巧 核心文件清单 ===&lt;br /&gt;
位于 ~/.openclaw/workspace：&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AGENTS.md&#039;&#039;&#039;：行为准则。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SOUL.md&#039;&#039;&#039;：性格与逻辑（可修改此文件去除“班味”）。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MEMORY.md&#039;&#039;&#039;：长期记忆。&lt;br /&gt;
&lt;br /&gt;
常用命令行速查&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 功能 !! 命令 (Docker 环境下)&lt;br /&gt;
|-&lt;br /&gt;
| 重启网关 || docker compose restart openclaw-gateway&lt;br /&gt;
|-&lt;br /&gt;
| 进入配置界面 || docker compose run --rm openclaw-cli onboard&lt;br /&gt;
|-&lt;br /&gt;
| 启用 Slack 流 || docker compose run --rm openclaw-cli config set &amp;quot;channels.slack.autoSlackBot.streamMode&amp;quot; &amp;quot;enabled&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 查看设备 || docker compose run --rm openclaw-cli devices list&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%83%A8%E7%BD%B2sub-store&amp;diff=1317</id>
		<title>如何部署sub-store</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E5%A6%82%E4%BD%95%E9%83%A8%E7%BD%B2sub-store&amp;diff=1317"/>
		<updated>2026-02-01T03:10:21Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​新建页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
在 bandwagonhost VPS 上部署 &#039;&#039;&#039;Sub-Store&#039;&#039;&#039;（高级订阅管理工具）其实非常简单。Sub-Store 官方提供了非常便捷的 Docker 镜像，通过 Docker 部署是目前最稳定、也是维护成本最低的方式。&lt;br /&gt;
&lt;br /&gt;
以下是为你整理的从“零”开始的部署教程。&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第一步：远程登录你的 bandwagonhost VPS ==&lt;br /&gt;
首先，你需要通过 SSH 客户端（如 PuTTY、Termius 或 macOS/Windows 自带的终端）登录到你的服务器。&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;ssh root@你的服务器IP&amp;lt;/code&amp;gt;&lt;br /&gt;
&#039;&#039;输入密码时屏幕不会显示字符，直接回车即可。&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第二步：环境准备（Docker 快速安装） ==&lt;br /&gt;
大多数 Sub-Store 一键脚本或容器化部署都依赖 &#039;&#039;&#039;Docker&#039;&#039;&#039;。如果你的服务器还没安装，可以使用以下官方的一键脚本：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;curl -fsSL &amp;lt;nowiki&amp;gt;https://get.docker.com&amp;lt;/nowiki&amp;gt; | bash -s docker&lt;br /&gt;
 systemctl enable --now docker&amp;lt;/code&amp;gt;&lt;br /&gt;
安装完成后，确认 Docker 正在运行：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;docker version&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第三步：一键部署 Sub-Store ==&lt;br /&gt;
Sub-Store 官方支持使用 Docker 命令快速启动。我们将使用 &#039;&#039;&#039;Docker Compose&#039;&#039;&#039; 方式，因为它更方便后续修改配置。&lt;br /&gt;
&lt;br /&gt;
=== 1. 创建工作目录 ===&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;mkdir -p /root/sub-store &amp;amp;&amp;amp; cd /root/sub-store&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. 创建并编辑配置文件 ===&lt;br /&gt;
使用 &amp;lt;code&amp;gt;vi&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;nano&amp;lt;/code&amp;gt; 创建一个 &amp;lt;code&amp;gt;docker-compose.yml&amp;lt;/code&amp;gt; 文件：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;nano docker-compose.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
将以下内容复制并粘贴进去：&lt;br /&gt;
&lt;br /&gt;
YAML&lt;br /&gt;
 &amp;lt;code&amp;gt;version: &#039;3&#039;&lt;br /&gt;
 services:&lt;br /&gt;
   sub-store:&lt;br /&gt;
     image: xream/sub-store:latest&lt;br /&gt;
     container_name: sub-store&lt;br /&gt;
     restart: always&lt;br /&gt;
     volumes:&lt;br /&gt;
       - ./data:/opt/sub-store/data&lt;br /&gt;
     ports:&lt;br /&gt;
       - &amp;quot;3001:3001&amp;quot;&lt;br /&gt;
     environment:&lt;br /&gt;
       - SUB_STORE_FRONTEND_BACKEND_PATH=/你的随机路径&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;注意：&#039;&#039;&#039; &amp;lt;code&amp;gt;SUB_STORE_FRONTEND_BACKEND_PATH&amp;lt;/code&amp;gt; 建议设置一个复杂的随机字符串（例如 &amp;lt;code&amp;gt;/mysecret_2026&amp;lt;/code&amp;gt;），防止别人直接扫描到你的后台。&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. 启动容器 ===&lt;br /&gt;
按下 &amp;lt;code&amp;gt;Ctrl+O&amp;lt;/code&amp;gt; 保存，&amp;lt;code&amp;gt;Ctrl+X&amp;lt;/code&amp;gt; 退出，然后运行：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
 &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第四步：配置防火墙 ==&lt;br /&gt;
VPS 默认可能关闭了 3001 端口，你需要手动开启：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;如果使用 UFW (Ubuntu/Debian):&#039;&#039;&#039; &amp;lt;code&amp;gt;ufw allow 3001/tcp&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;如果使用 CentOS (Firewalld):&#039;&#039;&#039; &amp;lt;code&amp;gt;firewall-cmd --zone=public --add-port=3001/tcp --permanent &amp;amp;&amp;amp; firewall-cmd --reload&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;云服务商控制台：&#039;&#039;&#039; 请务必在腾讯云/阿里云/甲骨文的“安全组”页面，放行 &#039;&#039;&#039;3001&#039;&#039;&#039; 端口。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 第五步：访问与使用 ==&lt;br /&gt;
部署完成后，你可以通过浏览器访问 Sub-Store 的 Web 界面：&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;访问地址：&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://你的服务器IP:3001&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;进阶技巧：&#039;&#039;&#039; 如果你设置了 &amp;lt;code&amp;gt;SUB_STORE_FRONTEND_BACKEND_PATH&amp;lt;/code&amp;gt;，请在进入页面后，在设置里填入对应的路径，确保前端和后端能够通信。&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== 常见问题小贴士 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;需求&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;操作&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;查看日志&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;docker logs -f sub-store&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;更新版本&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;停止服务&#039;&#039;&#039;&lt;br /&gt;
|&amp;lt;code&amp;gt;docker compose down&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;下一步建议：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
为了安全起见，建议你使用 &#039;&#039;&#039;Nginx Proxy Manager&#039;&#039;&#039; 为这个地址配置一个 &#039;&#039;&#039;SSL 域名访问&#039;&#039;&#039;（HTTPS），避免订阅链接在明文传输中被拦截。需要我为你补充如何配置 Nginx 反向代理吗？&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%80%8E%E4%B9%88%E9%83%A8%E7%BD%B2wordpress&amp;diff=1316</id>
		<title>怎么部署wordpress</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%80%8E%E4%B9%88%E9%83%A8%E7%BD%B2wordpress&amp;diff=1316"/>
		<updated>2026-02-01T03:05:43Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​编辑格式，插入代码块&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;零基础实战：从 购买 bandwagonhost VPS 到 WordPress 个人站点&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
这是一篇专为新手设计的“保姆级”教程。我们将跳过晦涩的容器底层原理，直接教你如何在一台全新的 bandwagonhost 服务器（VPS）上，使用最现代化的 Docker Compose 技术，在 10 分钟内搭建一个稳定、安全的 WordPress 网[[:Category:500 常见应用指南 — Application Guides|站]]。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;准备工作&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
在开始之前，你需要：&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;购买一台 bandwagonhost的 VPS 服务器&#039;&#039;&#039;：推荐系统为 &#039;&#039;&#039;Ubuntu 22.04&#039;&#039;&#039; 或 &#039;&#039;&#039;Debian 11/12&#039;&#039;&#039;（本教程以 Ubuntu 为例）。&lt;br /&gt;
# &#039;&#039;&#039;SSH 连接工具&#039;&#039;&#039;：Windows 用户推荐使用 PowerShell 或 Putty，Mac/Linux 用户直接使用终端。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第一步：登录你的服务器 (SSH)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
首先，我们需要通过命令行控制你的远程服务器。&lt;br /&gt;
&lt;br /&gt;
# 打开你的终端（Terminal）或 PowerShell。&lt;br /&gt;
# 输入以下命令（将 your_server_ip 替换为你的 bandwagonhost VPS 实际 IP 地址）：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh root@your_server_ip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# 如果这是第一次连接，系统会询问是否继续，输入 yes 并回车。&lt;br /&gt;
# 输入你的服务器密码（注意：输入密码时屏幕上不会显示任何字符，输完直接回车即可）。&lt;br /&gt;
&lt;br /&gt;
当看到类似 root@hostname:~# 的提示符时，说明你已成功登录。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第二步：一键安装 Docker 环境&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们使用 Docker 官方提供的“懒人脚本”来安装，这是最适合新手的安装方式，它会自动配置好 Docker 引擎和 Docker Compose 插件。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;执行安装脚本：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
复制以下命令并在终端中执行：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl -fsSL https://get.docker.com | sh&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;等待几分钟，直到脚本执行完毕。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;验证安装：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
输入以下命令，如果能看到版本号（如 Docker Compose version v2.x.x），说明安装成功。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第三步：创建项目文件&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们需要为网站创建一个“家”目录，并放入配置文件。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;创建并进入目录：&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir my-site&lt;br /&gt;
cd my-site&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;创建配置文件 compose.yml：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们将使用 Linux 自带的简易编辑器 nano。&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nano compose.yml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;粘贴以下内容：&#039;&#039;&#039;     这是一个经过优化、包含&#039;&#039;&#039;自动修复机制&#039;&#039;&#039;（健康检查）的配置，直接复制即可，无需改动代码 。&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  # 数据库服务&lt;br /&gt;
  db:&lt;br /&gt;
    image: mysql:8.0&lt;br /&gt;
    restart: always&lt;br /&gt;
    environment:&lt;br /&gt;
      MYSQL_ROOT_PASSWORD: my_secure_root_password  # 数据库管理员密码&lt;br /&gt;
      MYSQL_DATABASE: wordpress&lt;br /&gt;
      MYSQL_USER: wp_user&lt;br /&gt;
      MYSQL_PASSWORD: wp_user_password              # 网站连接数据库的密码&lt;br /&gt;
    volumes:&lt;br /&gt;
      - db_data:/var/lib/mysql&lt;br /&gt;
    healthcheck:&lt;br /&gt;
      test:&lt;br /&gt;
      interval: 10s&lt;br /&gt;
      timeout: 5s&lt;br /&gt;
      retries: 5&lt;br /&gt;
&lt;br /&gt;
  # 网站服务&lt;br /&gt;
  wordpress:&lt;br /&gt;
    image: wordpress:latest&lt;br /&gt;
    restart: always&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;8000:80&amp;quot;  # 你的网站将在 8000 端口访问&lt;br /&gt;
    environment:&lt;br /&gt;
      WORDPRESS_DB_HOST: db&lt;br /&gt;
      WORDPRESS_DB_USER: wp_user&lt;br /&gt;
      WORDPRESS_DB_PASSWORD: wp_user_password       # 必须与上面的密码一致&lt;br /&gt;
      WORDPRESS_DB_NAME: wordpress&lt;br /&gt;
    volumes:&lt;br /&gt;
      - wp_data:/var/www/html&lt;br /&gt;
    depends_on:&lt;br /&gt;
      db:&lt;br /&gt;
        condition: service_healthy&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
  db_data:&lt;br /&gt;
  wp_data:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;保存并退出：&#039;&#039;&#039;&lt;br /&gt;
#* 按 Ctrl + O，然后按 Enter（回车）保存。&lt;br /&gt;
#* 按 Ctrl + X 退出编辑器。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;gt; &#039;&#039;&#039;注意&#039;&#039;&#039;：为了演示方便，我们在文件中直接写了密码（如 wp_user_password）。在正式建站时，建议你将这些密码修改为更复杂的字符。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第四步：启动网站&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
这是最激动人心的一步，只需一条指令，Docker 就会自动下载镜像、建立网络并启动服务。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;启动服务：&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#* -d 意思是“在后台运行”，这样你关掉终端网站也不会停。&lt;br /&gt;
#* 你会看到一系列的 Pulling（下载中）和 Created（已创建）。&lt;br /&gt;
# &#039;&#039;&#039;确认状态：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
等待约 30 秒后，输入：&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose ps&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
如果你看到两个服务的状态（STATUS）都显示为 Up 或 Up (healthy)，恭喜你，服务器端的操作全部完成了！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第五步：在浏览器中初始化 WordPress&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
现在，离开命令行，回到你熟悉的浏览器。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;访问安装向导：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
在浏览器地址栏输入：&amp;lt;nowiki&amp;gt;http://你的服务器IP:8000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;例如：&amp;lt;nowiki&amp;gt;http://123.45.67.89:8000&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;选择语言：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
你将看到 WordPress 的标志。在列表中找到并选择 &#039;&#039;&#039;“简体中文”&#039;&#039;&#039;，点击“继续”。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;填写站点信息：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
屏幕上会出现“欢迎”界面，你需要填写以下信息：&lt;br /&gt;
&lt;br /&gt;
#* &#039;&#039;&#039;站点标题&#039;&#039;&#039;：给你的网站起个名字（如“我的第一个博客”）。&lt;br /&gt;
#* &#039;&#039;&#039;用户名&#039;&#039;&#039;：这是你登录 WordPress 后台的账号（不要用简单的 admin，容易被猜到）。&lt;br /&gt;
#* &#039;&#039;&#039;密码&#039;&#039;&#039;：系统会自动生成一个强密码，请&#039;&#039;&#039;务必复制并保存好&#039;&#039;&#039;这个密码。&lt;br /&gt;
#* &#039;&#039;&#039;您的电子邮件&#039;&#039;&#039;：用于找回密码。&lt;br /&gt;
# &#039;&#039;&#039;完成安装：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
点击底部的 &#039;&#039;&#039;“安装 WordPress”&#039;&#039;&#039; 按钮。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;登录后台：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
几秒钟后，你会看到“成功！”的提示。点击“登录”，输入刚才设置的用户名和密码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;常用管理命令速查表&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以后你需要管理网站时，只需要重新 SSH 登录并进入目录 cd my-site，然后使用以下命令：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;你的需求&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;终端命令&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想看网站运行日志&#039;&#039;&#039;（排错用）&lt;br /&gt;
|docker compose logs -f&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想重启网站&#039;&#039;&#039;&lt;br /&gt;
|docker compose restart&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想彻底停止并删除网站&#039;&#039;&#039;&lt;br /&gt;
|docker compose down&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想更新 WordPress 版本&#039;&#039;&#039;&lt;br /&gt;
|先执行 docker compose pull，再执行 docker compose up -d&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;常见问题解答 (Q&amp;amp;A)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: 我想用域名访问（如 www.example.com）而不是 IP+端口，怎么办？&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A: 这需要配置&#039;&#039;&#039;反向代理&#039;&#039;&#039;（Nginx）。对于新手，建议后续学习使用 &#039;&#039;&#039;Nginx Proxy Manager&#039;&#039;&#039;，它提供了一个图形化界面来管理域名和 SSL 证书（HTTPS），可以帮你把 8000 端口映射到域名的 80/443 端口。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: 这里的数据库数据存在哪里？&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A: 数据非常安全。我们在配置文件中定义了 volumes（卷），数据实际上保存在宿主机的 Docker 管理区域，即使你删除了容器（docker compose down），数据也不会丢失，下次启动时会自动挂载回来。&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%80%8E%E4%B9%88%E9%83%A8%E7%BD%B2wordpress&amp;diff=1315</id>
		<title>怎么部署wordpress</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%80%8E%E4%B9%88%E9%83%A8%E7%BD%B2wordpress&amp;diff=1315"/>
		<updated>2026-02-01T02:52:51Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​增加链接到分类页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;零基础实战：从 购买 bandwagonhost VPS 到 WordPress 个人站点&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
这是一篇专为新手设计的“保姆级”教程。我们将跳过晦涩的容器底层原理，直接教你如何在一台全新的 bandwagonhost 服务器（VPS）上，使用最现代化的 Docker Compose 技术，在 10 分钟内搭建一个稳定、安全的 WordPress 网[[:Category:500 常见应用指南 — Application Guides|站]]。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;准备工作&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
在开始之前，你需要：&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;购买一台 bandwagonhost的 VPS 服务器&#039;&#039;&#039;：推荐系统为 &#039;&#039;&#039;Ubuntu 22.04&#039;&#039;&#039; 或 &#039;&#039;&#039;Debian 11/12&#039;&#039;&#039;（本教程以 Ubuntu 为例）。&lt;br /&gt;
# &#039;&#039;&#039;SSH 连接工具&#039;&#039;&#039;：Windows 用户推荐使用 PowerShell 或 Putty，Mac/Linux 用户直接使用终端。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第一步：登录你的服务器 (SSH)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
首先，我们需要通过命令行控制你的远程服务器。&lt;br /&gt;
&lt;br /&gt;
# 打开你的终端（Terminal）或 PowerShell。&lt;br /&gt;
# 输入以下命令（将 your_server_ip 替换为你的 bandwagonhost VPS 实际 IP 地址）：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
ssh root@your_server_ip&lt;br /&gt;
&lt;br /&gt;
# 如果这是第一次连接，系统会询问是否继续，输入 yes 并回车。&lt;br /&gt;
# 输入你的服务器密码（注意：输入密码时屏幕上不会显示任何字符，输完直接回车即可）。&lt;br /&gt;
&lt;br /&gt;
当看到类似 root@hostname:~# 的提示符时，说明你已成功登录。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第二步：一键安装 Docker 环境&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们使用 Docker 官方提供的“懒人脚本”来安装，这是最适合新手的安装方式，它会自动配置好 Docker 引擎和 Docker Compose 插件。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;执行安装脚本：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
复制以下命令并在终端中执行：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
curl -fsSL &amp;lt;nowiki&amp;gt;https://get.docker.com&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;等待几分钟，直到脚本执行完毕。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;验证安装：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
输入以下命令，如果能看到版本号（如 Docker Compose version v2.x.x），说明安装成功。&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
docker compose version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第三步：创建项目文件&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们需要为网站创建一个“家”目录，并放入配置文件。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;创建并进入目录：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
mkdir my-site&lt;br /&gt;
&lt;br /&gt;
cd my-site&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;创建配置文件 compose.yml：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们将使用 Linux 自带的简易编辑器 nano。&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
nano compose.yml&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;粘贴以下内容：&#039;&#039;&#039;     这是一个经过优化、包含&#039;&#039;&#039;自动修复机制&#039;&#039;&#039;（健康检查）的配置，直接复制即可，无需改动代码 。&lt;br /&gt;
&lt;br /&gt;
YAML&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  # 数据库服务&lt;br /&gt;
&lt;br /&gt;
  db:&lt;br /&gt;
&lt;br /&gt;
  image: mysql:8.0&lt;br /&gt;
&lt;br /&gt;
  restart: always&lt;br /&gt;
&lt;br /&gt;
  environment:&lt;br /&gt;
&lt;br /&gt;
    MYSQL_ROOT_PASSWORD: my_secure_root_password  # 数据库管理员密码&lt;br /&gt;
&lt;br /&gt;
    MYSQL_DATABASE: wordpress&lt;br /&gt;
&lt;br /&gt;
    MYSQL_USER: wp_user&lt;br /&gt;
&lt;br /&gt;
    MYSQL_PASSWORD: wp_user_password              # 网站连接数据库的密码&lt;br /&gt;
&lt;br /&gt;
  volumes:&lt;br /&gt;
&lt;br /&gt;
    - db_data:/var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
  healthcheck:&lt;br /&gt;
&lt;br /&gt;
    test:&lt;br /&gt;
&lt;br /&gt;
    interval: 10s&lt;br /&gt;
&lt;br /&gt;
    timeout: 5s&lt;br /&gt;
&lt;br /&gt;
    retries: 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # 网站服务&lt;br /&gt;
&lt;br /&gt;
wordpress:&lt;br /&gt;
&lt;br /&gt;
  image: wordpress:latest&lt;br /&gt;
&lt;br /&gt;
  restart: always&lt;br /&gt;
&lt;br /&gt;
  ports:&lt;br /&gt;
&lt;br /&gt;
    - &amp;quot;8000:80&amp;quot;  # 你的网站将在 8000 端口访问&lt;br /&gt;
&lt;br /&gt;
  environment:&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_HOST: db&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_USER: wp_user&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_PASSWORD: wp_user_password       # 必须与上面的密码一致&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_NAME: wordpress&lt;br /&gt;
&lt;br /&gt;
  volumes:&lt;br /&gt;
&lt;br /&gt;
    - wp_data:/var/www/html&lt;br /&gt;
&lt;br /&gt;
  depends_on:&lt;br /&gt;
&lt;br /&gt;
    db:&lt;br /&gt;
&lt;br /&gt;
      condition: service_healthy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
&lt;br /&gt;
  db_data:&lt;br /&gt;
&lt;br /&gt;
wp_data:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;保存并退出：&#039;&#039;&#039;&lt;br /&gt;
#* 按 Ctrl + O，然后按 Enter（回车）保存。&lt;br /&gt;
#* 按 Ctrl + X 退出编辑器。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;gt; &#039;&#039;&#039;注意&#039;&#039;&#039;：为了演示方便，我们在文件中直接写了密码（如 wp_user_password）。在正式建站时，建议你将这些密码修改为更复杂的字符。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第四步：启动网站&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
这是最激动人心的一步，只需一条指令，Docker 就会自动下载镜像、建立网络并启动服务。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;启动服务：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&lt;br /&gt;
#* -d 意思是“在后台运行”，这样你关掉终端网站也不会停。&lt;br /&gt;
#* 你会看到一系列的 Pulling（下载中）和 Created（已创建）。&lt;br /&gt;
# &#039;&#039;&#039;确认状态：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
等待约 30 秒后，输入：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
docker compose ps&lt;br /&gt;
&lt;br /&gt;
如果你看到两个服务的状态（STATUS）都显示为 Up 或 Up (healthy)，恭喜你，服务器端的操作全部完成了！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第五步：在浏览器中初始化 WordPress&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
现在，离开命令行，回到你熟悉的浏览器。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;访问安装向导：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
在浏览器地址栏输入：&amp;lt;nowiki&amp;gt;http://你的服务器IP:8000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;例如：&amp;lt;nowiki&amp;gt;http://123.45.67.89:8000&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;选择语言：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
你将看到 WordPress 的标志。在列表中找到并选择 &#039;&#039;&#039;“简体中文”&#039;&#039;&#039;，点击“继续”。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;填写站点信息：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
屏幕上会出现“欢迎”界面，你需要填写以下信息：&lt;br /&gt;
&lt;br /&gt;
#* &#039;&#039;&#039;站点标题&#039;&#039;&#039;：给你的网站起个名字（如“我的第一个博客”）。&lt;br /&gt;
#* &#039;&#039;&#039;用户名&#039;&#039;&#039;：这是你登录 WordPress 后台的账号（不要用简单的 admin，容易被猜到）。&lt;br /&gt;
#* &#039;&#039;&#039;密码&#039;&#039;&#039;：系统会自动生成一个强密码，请&#039;&#039;&#039;务必复制并保存好&#039;&#039;&#039;这个密码。&lt;br /&gt;
#* &#039;&#039;&#039;您的电子邮件&#039;&#039;&#039;：用于找回密码。&lt;br /&gt;
# &#039;&#039;&#039;完成安装：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
点击底部的 &#039;&#039;&#039;“安装 WordPress”&#039;&#039;&#039; 按钮。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;登录后台：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
几秒钟后，你会看到“成功！”的提示。点击“登录”，输入刚才设置的用户名和密码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;常用管理命令速查表&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以后你需要管理网站时，只需要重新 SSH 登录并进入目录 cd my-site，然后使用以下命令：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;你的需求&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;终端命令&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想看网站运行日志&#039;&#039;&#039;（排错用）&lt;br /&gt;
|docker compose logs -f&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想重启网站&#039;&#039;&#039;&lt;br /&gt;
|docker compose restart&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想彻底停止并删除网站&#039;&#039;&#039;&lt;br /&gt;
|docker compose down&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想更新 WordPress 版本&#039;&#039;&#039;&lt;br /&gt;
|先执行 docker compose pull，再执行 docker compose up -d&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;常见问题解答 (Q&amp;amp;A)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: 我想用域名访问（如 www.example.com）而不是 IP+端口，怎么办？&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A: 这需要配置&#039;&#039;&#039;反向代理&#039;&#039;&#039;（Nginx）。对于新手，建议后续学习使用 &#039;&#039;&#039;Nginx Proxy Manager&#039;&#039;&#039;，它提供了一个图形化界面来管理域名和 SSL 证书（HTTPS），可以帮你把 8000 端口映射到域名的 80/443 端口。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: 这里的数据库数据存在哪里？&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A: 数据非常安全。我们在配置文件中定义了 volumes（卷），数据实际上保存在宿主机的 Docker 管理区域，即使你删除了容器（docker compose down），数据也不会丢失，下次启动时会自动挂载回来。&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%80%8E%E4%B9%88%E9%83%A8%E7%BD%B2wordpress&amp;diff=1314</id>
		<title>怎么部署wordpress</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%80%8E%E4%B9%88%E9%83%A8%E7%BD%B2wordpress&amp;diff=1314"/>
		<updated>2026-02-01T02:49:35Z</updated>

		<summary type="html">&lt;p&gt;Aricch：​新建 用 bandwagonhost 搭建wordpress的教程。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;零基础实战：从 购买 bandwagonhost VPS 到 WordPress 个人站点&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
这是一篇专为新手设计的“保姆级”教程。我们将跳过晦涩的容器底层原理，直接教你如何在一台全新的 bandwagonhost 服务器（VPS）上，使用最现代化的 Docker Compose 技术，在 10 分钟内搭建一个稳定、安全的 WordPress 网站。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;准备工作&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
在开始之前，你需要：&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;购买一台 bandwagonhost的 VPS 服务器&#039;&#039;&#039;：推荐系统为 &#039;&#039;&#039;Ubuntu 22.04&#039;&#039;&#039; 或 &#039;&#039;&#039;Debian 11/12&#039;&#039;&#039;（本教程以 Ubuntu 为例）。&lt;br /&gt;
# &#039;&#039;&#039;SSH 连接工具&#039;&#039;&#039;：Windows 用户推荐使用 PowerShell 或 Putty，Mac/Linux 用户直接使用终端。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第一步：登录你的服务器 (SSH)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
首先，我们需要通过命令行控制你的远程服务器。&lt;br /&gt;
&lt;br /&gt;
# 打开你的终端（Terminal）或 PowerShell。&lt;br /&gt;
# 输入以下命令（将 your_server_ip 替换为你的 bandwagonhost VPS 实际 IP 地址）：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
ssh root@your_server_ip&lt;br /&gt;
&lt;br /&gt;
# 如果这是第一次连接，系统会询问是否继续，输入 yes 并回车。&lt;br /&gt;
# 输入你的服务器密码（注意：输入密码时屏幕上不会显示任何字符，输完直接回车即可）。&lt;br /&gt;
&lt;br /&gt;
当看到类似 root@hostname:~# 的提示符时，说明你已成功登录。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第二步：一键安装 Docker 环境&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们使用 Docker 官方提供的“懒人脚本”来安装，这是最适合新手的安装方式，它会自动配置好 Docker 引擎和 Docker Compose 插件。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;执行安装脚本：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
复制以下命令并在终端中执行：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
curl -fsSL &amp;lt;nowiki&amp;gt;https://get.docker.com&amp;lt;/nowiki&amp;gt; | sh&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;等待几分钟，直到脚本执行完毕。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;验证安装：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
输入以下命令，如果能看到版本号（如 Docker Compose version v2.x.x），说明安装成功。&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
docker compose version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第三步：创建项目文件&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们需要为网站创建一个“家”目录，并放入配置文件。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;创建并进入目录：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
mkdir my-site&lt;br /&gt;
&lt;br /&gt;
cd my-site&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;创建配置文件 compose.yml：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
我们将使用 Linux 自带的简易编辑器 nano。&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
nano compose.yml&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;粘贴以下内容：&#039;&#039;&#039;     这是一个经过优化、包含&#039;&#039;&#039;自动修复机制&#039;&#039;&#039;（健康检查）的配置，直接复制即可，无需改动代码 。&lt;br /&gt;
&lt;br /&gt;
YAML&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
&lt;br /&gt;
  # 数据库服务&lt;br /&gt;
&lt;br /&gt;
  db:&lt;br /&gt;
&lt;br /&gt;
  image: mysql:8.0&lt;br /&gt;
&lt;br /&gt;
  restart: always&lt;br /&gt;
&lt;br /&gt;
  environment:&lt;br /&gt;
&lt;br /&gt;
    MYSQL_ROOT_PASSWORD: my_secure_root_password  # 数据库管理员密码&lt;br /&gt;
&lt;br /&gt;
    MYSQL_DATABASE: wordpress&lt;br /&gt;
&lt;br /&gt;
    MYSQL_USER: wp_user&lt;br /&gt;
&lt;br /&gt;
    MYSQL_PASSWORD: wp_user_password              # 网站连接数据库的密码&lt;br /&gt;
&lt;br /&gt;
  volumes:&lt;br /&gt;
&lt;br /&gt;
    - db_data:/var/lib/mysql&lt;br /&gt;
&lt;br /&gt;
  healthcheck:&lt;br /&gt;
&lt;br /&gt;
    test:&lt;br /&gt;
&lt;br /&gt;
    interval: 10s&lt;br /&gt;
&lt;br /&gt;
    timeout: 5s&lt;br /&gt;
&lt;br /&gt;
    retries: 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  # 网站服务&lt;br /&gt;
&lt;br /&gt;
wordpress:&lt;br /&gt;
&lt;br /&gt;
  image: wordpress:latest&lt;br /&gt;
&lt;br /&gt;
  restart: always&lt;br /&gt;
&lt;br /&gt;
  ports:&lt;br /&gt;
&lt;br /&gt;
    - &amp;quot;8000:80&amp;quot;  # 你的网站将在 8000 端口访问&lt;br /&gt;
&lt;br /&gt;
  environment:&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_HOST: db&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_USER: wp_user&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_PASSWORD: wp_user_password       # 必须与上面的密码一致&lt;br /&gt;
&lt;br /&gt;
    WORDPRESS_DB_NAME: wordpress&lt;br /&gt;
&lt;br /&gt;
  volumes:&lt;br /&gt;
&lt;br /&gt;
    - wp_data:/var/www/html&lt;br /&gt;
&lt;br /&gt;
  depends_on:&lt;br /&gt;
&lt;br /&gt;
    db:&lt;br /&gt;
&lt;br /&gt;
      condition: service_healthy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
&lt;br /&gt;
  db_data:&lt;br /&gt;
&lt;br /&gt;
wp_data:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;保存并退出：&#039;&#039;&#039;&lt;br /&gt;
#* 按 Ctrl + O，然后按 Enter（回车）保存。&lt;br /&gt;
#* 按 Ctrl + X 退出编辑器。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;gt; &#039;&#039;&#039;注意&#039;&#039;&#039;：为了演示方便，我们在文件中直接写了密码（如 wp_user_password）。在正式建站时，建议你将这些密码修改为更复杂的字符。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第四步：启动网站&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
这是最激动人心的一步，只需一条指令，Docker 就会自动下载镜像、建立网络并启动服务。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;启动服务：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&lt;br /&gt;
#* -d 意思是“在后台运行”，这样你关掉终端网站也不会停。&lt;br /&gt;
#* 你会看到一系列的 Pulling（下载中）和 Created（已创建）。&lt;br /&gt;
# &#039;&#039;&#039;确认状态：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
等待约 30 秒后，输入：&lt;br /&gt;
&lt;br /&gt;
Bash&lt;br /&gt;
&lt;br /&gt;
docker compose ps&lt;br /&gt;
&lt;br /&gt;
如果你看到两个服务的状态（STATUS）都显示为 Up 或 Up (healthy)，恭喜你，服务器端的操作全部完成了！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;第五步：在浏览器中初始化 WordPress&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
现在，离开命令行，回到你熟悉的浏览器。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;访问安装向导：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
在浏览器地址栏输入：&amp;lt;nowiki&amp;gt;http://你的服务器IP:8000&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;例如：&amp;lt;nowiki&amp;gt;http://123.45.67.89:8000&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;选择语言：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
你将看到 WordPress 的标志。在列表中找到并选择 &#039;&#039;&#039;“简体中文”&#039;&#039;&#039;，点击“继续”。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;填写站点信息：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
屏幕上会出现“欢迎”界面，你需要填写以下信息：&lt;br /&gt;
&lt;br /&gt;
#* &#039;&#039;&#039;站点标题&#039;&#039;&#039;：给你的网站起个名字（如“我的第一个博客”）。&lt;br /&gt;
#* &#039;&#039;&#039;用户名&#039;&#039;&#039;：这是你登录 WordPress 后台的账号（不要用简单的 admin，容易被猜到）。&lt;br /&gt;
#* &#039;&#039;&#039;密码&#039;&#039;&#039;：系统会自动生成一个强密码，请&#039;&#039;&#039;务必复制并保存好&#039;&#039;&#039;这个密码。&lt;br /&gt;
#* &#039;&#039;&#039;您的电子邮件&#039;&#039;&#039;：用于找回密码。&lt;br /&gt;
# &#039;&#039;&#039;完成安装：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
点击底部的 &#039;&#039;&#039;“安装 WordPress”&#039;&#039;&#039; 按钮。&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;登录后台：&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
几秒钟后，你会看到“成功！”的提示。点击“登录”，输入刚才设置的用户名和密码。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;常用管理命令速查表&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
以后你需要管理网站时，只需要重新 SSH 登录并进入目录 cd my-site，然后使用以下命令：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;你的需求&#039;&#039;&#039;&lt;br /&gt;
|&#039;&#039;&#039;终端命令&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想看网站运行日志&#039;&#039;&#039;（排错用）&lt;br /&gt;
|docker compose logs -f&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想重启网站&#039;&#039;&#039;&lt;br /&gt;
|docker compose restart&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想彻底停止并删除网站&#039;&#039;&#039;&lt;br /&gt;
|docker compose down&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;我想更新 WordPress 版本&#039;&#039;&#039;&lt;br /&gt;
|先执行 docker compose pull，再执行 docker compose up -d&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;常见问题解答 (Q&amp;amp;A)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: 我想用域名访问（如 www.example.com）而不是 IP+端口，怎么办？&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A: 这需要配置&#039;&#039;&#039;反向代理&#039;&#039;&#039;（Nginx）。对于新手，建议后续学习使用 &#039;&#039;&#039;Nginx Proxy Manager&#039;&#039;&#039;，它提供了一个图形化界面来管理域名和 SSL 证书（HTTPS），可以帮你把 8000 端口映射到域名的 80/443 端口。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Q: 这里的数据库数据存在哪里？&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
A: 数据非常安全。我们在配置文件中定义了 volumes（卷），数据实际上保存在宿主机的 Docker 管理区域，即使你删除了容器（docker compose down），数据也不会丢失，下次启动时会自动挂载回来。&lt;/div&gt;</summary>
		<author><name>Aricch</name></author>
	</entry>
</feed>