[{"content":" 在 Rocky Linux 10 上部署这套监控栈，不需要从 GitHub 下载 tar 包，不需要手工创建用户，\n也不需要自己编写 systemd unit。Rocky AppStream 和 EPEL 已经提供中心端与主机采集端需要\n的 RPM；配置交给 /etc，数据交给 /var/lib，升级和回滚交给 DNF。\n本文只解决一件事：用最短、可维护的路径搭起 20 台左右 Linux 主机的基础监控。容器指标、\n日志采集、长期存储和高可用不混进第一阶段。\n示例使用文档保留地址 192.0.2.0/24，不包含真实内网地址、域名或通知凭据。\n1. 软件来源 本文在 Rocky Linux 10.2 上实际查询到：\n组件 版本 仓库 RPM 提供的服务 Prometheus 3.13.1 EPEL 10 prometheus.service Alertmanager 0.33.0 EPEL 10 prometheus-alertmanager.service Grafana 10.2.6 Rocky AppStream grafana-server.service node_exporter 1.12.1 EPEL 10 prometheus-node-exporter.service 版本会随 Rocky/EPEL 更新。部署时以 dnf info 显示的版本为准，不要为了照抄文章而绕开\nRPM 降级到旧版。\n这些包已经提供专用系统用户、systemd unit、/etc/default/* 参数文件、配置目录和数据\n目录。因此本文没有 useradd、/usr/local/bin 或自建 service 文件。\n2. 架构与端口 Linux 主机 × 20 └─ node_exporter :9100 │ Prometheus 每 15 秒拉取 ▼ monitor VM ├─ Prometheus :9090 指标存储、查询、规则计算 ├─ Alertmanager :9093 告警分组与通知 └─ Grafana :3000 仪表盘 端口 允许来源 9100 只允许 monitor VM 9090 只允许管理网；不需要对被监控节点开放 9093 默认只监听 127.0.0.1 3000 只允许管理网，或只监听回环并交给反向代理 Prometheus 主动拉取 node_exporter，因此节点不需要向中心端 remote_write，也不需要给每个\nAgent 配置中心 URL。\n3. 安装中心端 在 monitor VM 执行：\nsudo dnf update -y sudo dnf install -y epel-release sudo dnf install -y prometheus alertmanager grafana node-exporter rpm -q prometheus alertmanager grafana node-exporter 包名是 alertmanager，但 unit 名是 prometheus-alertmanager.service；node_exporter 同理，\n推荐使用 prometheus-node-exporter.service。不要凭组件名猜 unit。\n4. 配置 Prometheus sudo install -d -o root -g prometheus -m 0750 /etc/prometheus/rules /etc/prometheus/targets sudo install -o root -g prometheus -m 0640 prometheus/prometheus.yml /etc/prometheus/prometheus.yml sudo install -o root -g prometheus -m 0640 prometheus/monitoring-rules.yml /etc/prometheus/rules/monitoring.yml sudo install -o root -g prometheus -m 0640 prometheus/node-targets.yml /etc/prometheus/targets/nodes.yml sudo install -o root -g root -m 0644 default/prometheus /etc/default/prometheus /etc/default/prometheus 中设置：\nARGS='--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.retention.time=30d --storage.tsdb.retention.size=20GB --web.listen-address=0.0.0.0:9090 --web.enable-lifecycle' 30 天和 20GB 是双上限，先达到哪个就先清理旧数据。它不是“保证保留 30 天”；如果指标量\n先吃满 20GB，实际保留时间会更短。\n编辑 /etc/prometheus/targets/nodes.yml，每台主机一条：\n- targets: - 192.0.2.21:9100 labels: host: linux-node-01 site: homelab 先校验再启动：\nsudo -u prometheus /usr/bin/promtool check config /etc/prometheus/prometheus.yml sudo -u prometheus /usr/bin/promtool check rules /etc/prometheus/rules/monitoring.yml sudo systemctl enable --now prometheus curl -fsS http://127.0.0.1:9090/-/ready 5. 配置 Alertmanager EPEL 的配置路径是 /etc/prometheus/alertmanager.yml，不是另建的 /etc/alertmanager。\nsudo install -o root -g prometheus -m 0640 alertmanager/alertmanager.yml /etc/prometheus/alertmanager.yml sudo install -o root -g root -m 0644 default/prometheus-alertmanager /etc/default/prometheus-alertmanager sudo -u prometheus /usr/bin/amtool check-config /etc/prometheus/alertmanager.yml sudo systemctl enable \u0026ndash;now prometheus-alertmanager curl -fsS http://127.0.0.1:9093/-/ready 附件默认使用空接收器，只验证 Prometheus → Alertmanager 链路，不会真的发通知。确认邮件、\n企业微信或 Webhook 目标后，再把真实 receiver 写进本机配置；凭据不要放入 Git 或公开附件。\n单节点应关闭 Alertmanager 的集群监听：\nARGS='--config.file=/etc/prometheus/alertmanager.yml --storage.path=/var/lib/prometheus/alertmanager --web.listen-address=127.0.0.1:9093 --cluster.listen-address=' 6. 配置 Grafana AppStream RPM 已创建 grafana 用户、数据目录和 service。编辑 /etc/grafana/grafana.ini：\n[server] http_addr = 0.0.0.0 http_port = 3000 [users] allow_sign_up = false\n[auth.anonymous] enabled = false 安装 Prometheus 数据源 provisioning：\nsudo install -o root -g grafana -m 0640 grafana/prometheus-datasource.yml /etc/grafana/provisioning/datasources/prometheus.yml sudo systemctl enable \u0026ndash;now grafana-server curl -fsS http://127.0.0.1:3000/api/health 首次登录后立即修改管理员密码。生产环境应由 Nginx/Caddy 提供 HTTPS，并让 Grafana 只\n监听回环地址；家庭管理网第一阶段可以通过 firewalld 限制 3000 端口。\n7. 在每台 Linux 主机安装 node_exporter Rocky Linux 10 节点执行：\nsudo dnf install -y epel-release node-exporter sudo systemctl enable --now prometheus-node-exporter curl -fsS http://127.0.0.1:9100/metrics \u0026gt;/dev/null RPM 默认已经启用 CPU、内存、磁盘、网络、systemd、时间等常用 collector。没有明确需求\n不要先堆额外参数。\n节点防火墙只允许 monitor VM：\nsudo firewall-cmd --permanent --add-rich-rule='rule family=\u0026quot;ipv4\u0026quot; source address=\u0026quot;192.0.2.10/32\u0026quot; port port=\u0026quot;9100\u0026quot; protocol=\u0026quot;tcp\u0026quot; accept' sudo firewall-cmd --reload 在 monitor VM 验证：\ncurl -fsS http://192.0.2.21:9100/metrics \u0026gt;/dev/null 确认可达后，将节点写进 /etc/prometheus/targets/nodes.yml。file_sd_configs 会自动刷新，\n不需要每加一台主机就重启 Prometheus。\n8. monitor VM 防火墙 把示例管理网段替换为实际值：\nsudo firewall-cmd --permanent --add-rich-rule='rule family=\u0026quot;ipv4\u0026quot; source address=\u0026quot;192.0.2.0/24\u0026quot; port port=\u0026quot;9090\u0026quot; protocol=\u0026quot;tcp\u0026quot; accept' sudo firewall-cmd --permanent --add-rich-rule='rule family=\u0026quot;ipv4\u0026quot; source address=\u0026quot;192.0.2.0/24\u0026quot; port port=\u0026quot;3000\u0026quot; protocol=\u0026quot;tcp\u0026quot; accept' sudo firewall-cmd --reload sudo firewall-cmd --list-all 9093 已绑定回环，不开放。保持 SELinux Enforcing，不要为省事关闭 SELinux 或 firewalld。\n9. 验收 systemctl --no-pager --full status prometheus prometheus-alertmanager grafana-server prometheus-node-exporter curl -fsS http://127.0.0.1:9090/-/ready curl -fsS http://127.0.0.1:9093/-/ready curl -fsS http://127.0.0.1:3000/api/health curl -fsS http://127.0.0.1:9100/metrics \u0026gt;/dev/null Prometheus 查询页至少验证：\nup node_uname_info 100 * (1 - avg by (instance) (rate(node_cpu_seconds_total{mode=\u0026quot;idle\u0026quot;}[5m]))) 100 * (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) 目标页中所有节点应为 UP。Grafana 数据源页面应显示 Prometheus 可用。\n10. 20 台主机、30 天大概占多少空间 node_exporter 默认指标、15 秒采集、20 台主机通常从几 GB 到十几 GB 起步，但真实容量取决于\n启用的 collector、磁盘/网卡数量、标签基数和额外 exporter。不要用主机数量直接乘出一个\n“保证值”。\n先设 30d + 20GB 双上限，每周观察：\nprometheus_tsdb_head_series rate(prometheus_tsdb_head_samples_appended_total[5m]) 同时查看 Prometheus 的 TSDB Status 和 /var/lib/prometheus/metrics2 实际增长。若 20GB 先触顶，\n再根据磁盘余量增加容量，而不是取消 size 上限。\n11. 日常维护 sudo -u prometheus promtool check config /etc/prometheus/prometheus.yml sudo -u prometheus promtool check rules /etc/prometheus/rules/monitoring.yml sudo systemctl reload prometheus sudo -u prometheus amtool check-config /etc/prometheus/alertmanager.yml sudo systemctl reload prometheus-alertmanager 统一查看日志：\nsudo journalctl -u prometheus -u prometheus-alertmanager -u grafana-server -u prometheus-node-exporter --since -30min 升级前记录版本并备份配置：\nrpm -q prometheus alertmanager grafana node-exporter sudo tar -czf /root/monitoring-config-$(date +%F).tgz /etc/prometheus /etc/default/prometheus /etc/default/prometheus-alertmanager /etc/grafana sudo dnf upgrade prometheus alertmanager grafana node-exporter Prometheus 历史数据若必须恢复，应使用 snapshot API；不要在运行时直接复制 TSDB 目录。\n12. 本文刻意没有加入的东西 Alloy：当前 Rocky AppStream/EPEL 没有对应 RPM，基础主机指标用 node_exporter 已足够； 容器指标：等主机监控稳定后，再按 Docker/Podman 的实际环境选择采集方式； Loki/日志采集：与指标监控分开实施； 长期存储与高可用：20 台家庭或实验主机暂不需要。 先把最小闭环跑稳，再增加组件。\n13. 附件 附件只包含 RPM 安装后需要覆盖或新增的配置，不包含二进制、用户、systemd unit 和秘密：\nprometheus-grafana-rocky10-rpm-2026.07.19-r3.zip\nSHA256：5831cbbf8886c6bc9a5ff90060ae33888cd7131ba88953574f7d32699776d5fb 参考资料 Fedora Packages: Prometheus Fedora Packages: Alertmanager Prometheus configuration Prometheus storage node_exporter ","date":"2026-07-17T20:00:00Z","permalink":"https://blog.aching.cn/posts/rocky-linux-prometheus-grafana-alloy-native-systemd/","title":"Rocky Linux 10 用 DNF 部署 Prometheus、Grafana 与 Alertmanager"},{"content":"故障背景 原系统删除了 swap 逻辑卷或 swap 分区，但没有同步更新以下启动配置：\n/etc/default/grub GRUB/BLS 内核启动参数 initramfs 可能还有 /etc/fstab 系统重启后，内核启动参数仍尝试查找已经不存在的 swap：\nrd.lvm.lv=rl/swap resume=UUID=3f2484ae-a1d5-494b-8803-030af11ee671 这会导致 dracut 在启动阶段等待不存在的设备，表现为启动卡住、超时或进入 emergency mode。\n实际发现的问题 在 rescue 环境挂载并进入原系统后，确认：\n/etc/fstab 中已经没有有效的 swap 条目，但：\n/etc/default/grub 和现有内核启动项中仍残留：\nrd.lvm.lv=rl/swap resume=UUID=3f2484ae-a1d5-494b-8803-030af11ee671 其中这个 UUID 已经不存在。\n修复流程 1. 挂载原系统 mkdir -p /mnt/sysimage mount /dev/mapper/rl-root /mnt/sysimage mount /dev/sda2 /mnt/sysimage/boot 绑定必要目录：\nmount --bind /dev /mnt/sysimage/dev mount --bind /proc /mnt/sysimage/proc mount --bind /sys /mnt/sysimage/sys mount --bind /run /mnt/sysimage/run 进入原系统：\nchroot /mnt/sysimage 注意：块设备不能用 mount --bind 挂载，根卷应直接使用 mount /dev/mapper/rl-root /mnt/sysimage。\n2. 清除 GRUB 默认参数中的旧 swap 引用 从 /etc/default/grub 中删除：\nrd.lvm.lv=rl/swap resume=UUID=3f2484ae-a1d5-494b-8803-030af11ee671 处理后应只保留根逻辑卷，例如：\nGRUB_CMDLINE_LINUX=\"crashkernel=2G-64G:256M,64G-:512M rd.lvm.lv=rl/root\" 3. 更新所有内核启动项 grubby --update-kernel=ALL \\ --remove-args=\"resume=UUID=3f2484ae-a1d5-494b-8803-030af11ee671 rd.lvm.lv=rl/swap\" 验证：\ngrubby --info=ALL | grep -E 'kernel=|args=' 确认所有启动项中不再出现 resume= 和 rd.lvm.lv=rl/swap。\n4. 重建 initramfs dracut -f --regenerate-all 该步骤用于清除 initramfs 中缓存的旧 swap 和 resume 配置。\n5. 重建 GRUB 配置 grub2-mkconfig -o /boot/grub2/grub.cfg 期间出现的 LVM 文件描述符泄漏警告通常不影响生成结果。\n6. 最终验证 grep -RniE \\ '3f2484ae-a1d5-494b-8803-030af11ee671|rd\\.lvm\\.lv=rl/swap|resume=' \\ /etc/default/grub /boot/grub2/grub.cfg /boot/loader/entries 2\u003e/dev/null 预期无输出。\n同时确认 grubby --info=ALL 中的启动参数只保留 rd.lvm.lv=rl/root，并确认 /etc/fstab 中没有有效 swap 条目。\n修复结果 旧 swap UUID 已从 GRUB 默认配置中移除 rd.lvm.lv=rl/swap 已从所有内核启动项中移除 initramfs 已重新生成 GRUB 配置已重新生成 /etc/fstab 中没有残留有效 swap 配置 系统已具备正常重启条件 核心结论 删除 swap 后，不能只修改磁盘或 LVM。还必须同步清理：\n/etc/fstab /etc/default/grub BLS/grubby 内核参数 initramfs GRUB 配置 本次重启异常的直接原因，是 GRUB 和 initramfs 仍引用已删除的 swap，而不是 GRUB 引导程序本身损坏。\n","date":"2026-07-12T15:10:02Z","permalink":"https://blog.aching.cn/posts/linux--e5-88-a0-e9-99-a4-swap--e5-90-8e-e5-90-af-e5-8a-a8-e5-8d-a1-e4-bd-8f-ef-bc-9agrub-initramfs--e6-ae-8b-e7-95-99-e5-bc-95-e7-94-a8-e4-bf-ae-e5-a4/","title":"Linux 删除 swap 后启动卡住：GRUB/initramfs 残留引用修复"},{"content":"目标 只读巡检如果写重了，就会变成另一种变更脚本。我的做法很简单：只保留三件事：\n采集 汇总 报告 不做修复，不做重启，不动数据。\n最小执行模型 每台机器只跑一组只读命令，命令尽量短。\n#!/usr/bin/env bash set -euo pipefail host=\u0026quot;$1\u0026quot; ssh -o BatchMode=yes -o ConnectTimeout=5 \u0026quot;$host\u0026quot; ' echo \u0026quot;hostname: $(hostname)\u0026quot; echo \u0026quot;kernel: $(uname -r)\u0026quot; echo \u0026quot;uptime: $(uptime -p)\u0026quot; echo \u0026quot;disk: $(df -h / | tail -1)\u0026quot; systemctl is-system-running || true ' 关键不是命令多，而是每台主机的输出字段一致。\n报告怎么做 我更倾向于把报告拆成两层：\n1. 汇总表 只看状态和异常数。\n| 主机 | 内核 | 在线 | 异常数 | | --- | --- | --- | --- | | node-01 | 5.14.0 | yes | 0 | | node-02 | 5.15.0 | yes | 2 | 2. 异常清单 只展开需要处理的项。\n## 异常 - node-02: 磁盘使用率过高 - node-03: systemd 状态非 running 怎么避免脚本越写越重 我现在会把巡检项做成插件式，但插件也只允许读：\nchecks/ system.sh disk.sh network.sh service.sh 每个检查只输出一行状态，不往里面塞修复动作。\n定时作业怎么接 定时巡检只做两件事：\n保存当天结果 生成当天报告 base=\u0026quot;/var/log/readonly-check/$(date +%F)\u0026quot; mkdir -p \u0026quot;$base\u0026quot; ./readonly-check.sh hosts.txt \u0026gt; \u0026quot;$base/raw.log\u0026quot; python3 render_report.py \u0026quot;$base/raw.log\u0026quot; \u0026gt; \u0026quot;$base/report.md\u0026quot; 这篇文章真正该讲什么 不是“只读很重要”这种结论，而是：\n命令如何限制为只读 输出如何固定成表格字段 报告如何拆分成汇总和异常 定时任务如何不污染系统 结论 只读巡检的价值在于，它能持续跑，而且不会把系统再改坏。如果要写成博客，就应该写成一套能直接落地的采集和报表流程。\n","date":"2026-07-01T01:00:00Z","permalink":"https://blog.aching.cn/posts/readonly-check-lightweight-report/","title":"只读巡检怎么做得既轻量又能出报告"},{"content":"目标 sudo 权限治理最怕两件事：\n规则分散 回收不干净 所以我现在只认一种方式：所有机器统一走 sudoers.d，不直接手改主文件。\n目录和命名先统一 /etc/sudoers.d/ 10-base-admin 20-ops-readonly 90-temp-access 每个文件只放一类规则，临时权限也单独放，不和长期权限混在一起。\n新增流程 新增权限时先落一个临时文件，再校验，再上线。\ncp /etc/sudoers /etc/sudoers.bak cat \u0026gt;/tmp/90-temp-access \u0026lt;\u0026lt;'EOF' user1 ALL=(ALL) NOPASSWD:/usr/bin/systemctl status nginx EOF visudo -cf /tmp/90-temp-access install -m 0440 /tmp/90-temp-access /etc/sudoers.d/90-temp-access visudo -cf /etc/sudoers 回收流程 回收不要做“注释掉再说”，直接删文件或删规则，然后复验。\nrm -f /etc/sudoers.d/90-temp-access visudo -cf /etc/sudoers 如果机器很多，建议用 Ansible 批量分发这类文件，保持同一份模板。\n校验要看什么 我会把校验分成三层：\n文件语法对不对 规则权限对不对 sudo -n 能不能直接过 visudo -cf /etc/sudoers sudo -n true sudo -l -U user1 回滚怎么做 回滚只做两步：\n恢复备份 重新校验 cp /etc/sudoers.bak /etc/sudoers visudo -cf /etc/sudoers 实战里最有用的部分 这篇能写的不是“sudo 有风险”，而是：\n用 sudoers.d 收口 新增和回收都走同一套流程 语法校验必须和发布绑在一起 备份是回滚边界，不是摆设 结论 sudo 权限这件事，一旦不收口，后面一定会散。把它固定成文件化、校验化、可回滚的流程，才算真的能长期维护。\n","date":"2026-07-01T00:50:00Z","permalink":"https://blog.aching.cn/posts/sudo-permission-reconcile/","title":"sudo 权限批量收敛：新增、回收、校验和回滚怎么做"},{"content":"目标 内网时间同步最常见的问题不是“没有 NTP”，而是：\n客户端没统一 上游源不稳定 同步了但没人验收 我现在的落地方式是：一台内网时间源 + 所有客户端统一指向它。\n服务端配置 服务端只保留最少配置。\npool pool.ntp.org iburst allow 192.168.0.0/16 local stratum 10 makestep 1.0 3 rtcsync 如果是完全离线环境，就把外部 pool 换成你自己的上游或本地授时设备。\n客户端配置 客户端配置也尽量统一，别一台机器一个写法。\nserver ntp.local iburst prefer makestep 1.0 3 rtcsync 改完重启：\nsystemctl restart chronyd systemctl enable chronyd 验证不能省 我会固定看这三条：\nchronyc sources -v chronyc tracking timedatectl status 重点看：\n是否已经同步 当前源是谁 偏移是否在可接受范围 定时检查怎么做 如果这套东西要长期跑，就把验收也做成脚本。\n#!/usr/bin/env bash set -euo pipefail host=\u0026quot;${1:-localhost}\u0026quot; ssh \u0026quot;$host\u0026quot; \u0026lsquo;chronyc tracking; chronyc sources -v; timedatectl status\u0026rsquo; | tee \u0026quot;/var/log/timecheck/$(date +%F)-${host}.log\u0026quot; 常见踩坑 1. 防火墙没开 NTP 端口没放行，客户端看着配置对，实际根本打不到源。\n2. 宿主机时间差太大 初次同步要允许 makestep，否则可能卡很久。\n3. 虚拟机和容器混着看 虚拟化环境里，宿主机和客体的时间链路要分开排查，不要混成一条。\n这篇能写的实战点 真正能写的是：\n服务端怎么收口 客户端怎么批量落 验证怎么做成定时任务 偏移异常怎么观察 这比单纯讲 chrony 原理更有用。\n","date":"2026-07-01T00:40:00Z","permalink":"https://blog.aching.cn/posts/ntp-chrony-intranet/","title":"NTP/chrony 在内网环境里怎么稳定落地"},{"content":"目标 外联审计不是简单地看“谁连了外网”，而是把连接数据变成可检索、可留档的数据。\n这篇我直接给一份能复用的最小脚本，目标很明确：\n采集当前连接 提取进程、目的地址和端口 去掉内网和保留地址 按主机、进程、目标域名汇总 同时导出 JSON 和 Excel 采集先做薄 不要一上来就写大脚本，先从 ss 开始。\nss -Htanp state established 如果要看更完整的进程信息，可以补一层：\nlsof -nP -iTCP -sTCP:ESTABLISHED 直接可用的脚本 下面这份脚本可以直接保存成 egress_audit.py，在 Linux 主机上跑。\n#!/usr/bin/env python3 from __future__ import annotations import argparse import json import re import socket import subprocess from dataclasses import dataclass, asdict from pathlib import Path from typing import Iterable\nPRIVATE_PREFIXES = ( \u0026quot;10.\u0026quot;, \u0026quot;127.\u0026quot;, \u0026quot;169.254.\u0026quot;, \u0026quot;172.16.\u0026quot;, \u0026quot;172.17.\u0026quot;, \u0026quot;172.18.\u0026quot;, \u0026quot;172.19.\u0026quot;, \u0026quot;172.20.\u0026quot;, \u0026quot;172.21.\u0026quot;, \u0026quot;172.22.\u0026quot;, \u0026quot;172.23.\u0026quot;, \u0026quot;172.24.\u0026quot;, \u0026quot;172.25.\u0026quot;, \u0026quot;172.26.\u0026quot;, \u0026quot;172.27.\u0026quot;, \u0026quot;172.28.\u0026quot;, \u0026quot;172.29.\u0026quot;, \u0026quot;172.30.\u0026quot;, \u0026quot;172.31.\u0026quot;, \u0026quot;192.168.\u0026quot;, )\n@dataclass class Record: host: str pid: int | None process: str dst_ip: str dst_port: int category: str reverse_dns: str\ndef is_public_ip(ip: str) -\u0026gt; bool: if ip == \u0026quot;0.0.0.0\u0026quot;: return False if ip.startswith(PRIVATE_PREFIXES): return False if \u0026quot;:\u0026quot; in ip: return not (ip.startswith(\u0026quot;fe80:\u0026quot;) or ip.startswith(\u0026quot;fc\u0026quot;) or ip.startswith(\u0026quot;fd\u0026quot;) or ip == \u0026quot;::1\u0026quot;) return True\ndef reverse_dns(ip: str) -\u0026gt; str: try: return socket.gethostbyaddr(ip)[0] except Exception: return \u0026quot;\u0026quot;\ndef run_cmd(cmd: list[str]) -\u0026gt; str: proc = subprocess.run(cmd, check=True, text=True, capture_output=True) return proc.stdout\ndef parse_ss() -\u0026gt; Iterable[Record]: host = socket.gethostname() for line in run_cmd([\u0026quot;ss\u0026quot;, \u0026quot;-Htanp\u0026quot;, \u0026quot;state\u0026quot;, \u0026quot;established\u0026quot;]).splitlines(): parts = line.split() if len(parts) \u0026lt; 5: continue local = parts[3] remote = parts[4] if \u0026quot;:\u0026quot; not in remote: continue dst_ip, dst_port = remote.rsplit(\u0026quot;:\u0026quot;, 1) if dst_ip == \u0026quot;*\u0026quot; or not dst_port.isdigit(): continue\nproc = \u0026amp;quot;unknown\u0026amp;quot; pid = None m = re.search(r'users:((\u0026amp;quot;(?P\u0026amp;lt;proc\u0026amp;gt;[^\u0026amp;quot;]+)\u0026amp;quot;,pid=(?P\u0026amp;lt;pid\u0026amp;gt;d+)', line) if m: proc = m.group(\u0026amp;quot;proc\u0026amp;quot;) pid = int(m.group(\u0026amp;quot;pid\u0026amp;quot;)) category = \u0026amp;quot;public\u0026amp;quot; if is_public_ip(dst_ip) else \u0026amp;quot;private\u0026amp;quot; yield Record( host=host, pid=pid, process=proc, dst_ip=dst_ip, dst_port=int(dst_port), category=category, reverse_dns=reverse_dns(dst_ip) if category == \u0026amp;quot;public\u0026amp;quot; else \u0026amp;quot;\u0026amp;quot;, ) def main() -\u0026gt; int: parser = argparse.ArgumentParser() parser.add_argument(\u0026quot;-o\u0026quot;, \u0026quot;\u0026ndash;output\u0026quot;, default=\u0026quot;egress.json\u0026quot;) parser.add_argument(\u0026quot;\u0026ndash;excel\u0026quot;, default=\u0026quot;egress.xlsx\u0026quot;) args = parser.parse_args()\nrows = [asdict(item) for item in parse_ss()] Path(args.output).write_text(json.dumps(rows, ensure_ascii=False, indent=2), encoding=\u0026amp;quot;utf-8\u0026amp;quot;) try: import pandas as pd with pd.ExcelWriter(args.excel) as writer: pd.DataFrame(rows).to_excel(writer, index=False, sheet_name=\u0026amp;quot;all\u0026amp;quot;) public_rows = [row for row in rows if row[\u0026amp;quot;category\u0026amp;quot;] == \u0026amp;quot;public\u0026amp;quot;] pd.DataFrame(public_rows).to_excel(writer, index=False, sheet_name=\u0026amp;quot;public\u0026amp;quot;) except Exception as exc: print(f\u0026amp;quot;excel export skipped: {exc}\u0026amp;quot;) print(f\u0026amp;quot;saved {len(rows)} rows to {args.output}\u0026amp;quot;) return 0 if name == \u0026quot;main\u0026quot;: raise SystemExit(main()) 运行方式很直接：\nchmod +x egress_audit.py ./egress_audit.py -o /tmp/egress.json --excel /tmp/egress.xlsx 如果机器上没有 pandas，脚本仍然会把 JSON 先落下来，Excel 导出会自动跳过，不影响主流程。\n需要 Excel 输出的话，先装依赖：\npython3 -m pip install pandas openpyxl 结构化输出怎么设计 我会把每条连接整理成固定字段：\n{ \u0026quot;host\u0026quot;: \u0026quot;node-01\u0026quot;, \u0026quot;pid\u0026quot;: 1234, \u0026quot;process\u0026quot;: \u0026quot;nginx\u0026quot;, \u0026quot;dst_ip\u0026quot;: \u0026quot;1.2.3.4\u0026quot;, \u0026quot;dst_port\u0026quot;: 443, \u0026quot;category\u0026quot;: \u0026quot;public\u0026quot; } 只要字段固定，后面要切 Excel、Markdown、CSV 都很容易。上面那个脚本已经把这几个字段都准备好了。\n过滤规则先定 不先定过滤规则，结果会被本地回环和内网地址淹没。\ndef is_public(ip: str) -\u0026gt; bool: private_prefixes = (\u0026quot;10.\u0026quot;, \u0026quot;172.16.\u0026quot;, \u0026quot;172.17.\u0026quot;, \u0026quot;192.168.\u0026quot;, \u0026quot;127.\u0026quot;) return not ip.startswith(private_prefixes) IPv6 也建议补上 fc00::/7 和 fe80::/10。\n报表怎么出 JSON 给后续自动化接，脚本已经默认生成。\nExcel 给人翻，脚本会默认写一个 all sheet 和一个 public sheet。\nimport pandas as pd df = pd.DataFrame(rows) with pd.ExcelWriter(\u0026quot;egress.xlsx\u0026quot;) as writer: df.to_excel(writer, index=False, sheet_name=\u0026quot;all\u0026quot;) df[df[\u0026quot;category\u0026quot;] == \u0026quot;public\u0026quot;].to_excel(writer, index=False, sheet_name=\u0026quot;public\u0026quot;) 定时跑时怎么避免脏结果 采集时刻和输出目录都要固定，不要每次乱放。\nbase=\u0026quot;/var/log/egress-audit/$(date +%F)\u0026quot; mkdir -p \u0026quot;$base\u0026quot; ./collect.py \u0026gt; \u0026quot;$base/raw.json\u0026quot; ./render.py \u0026quot;$base/raw.json\u0026quot; \u0026gt; \u0026quot;$base/report.md\u0026quot; 公开文章里可以写什么 可以写：\n字段设计 过滤逻辑 JSON/Excel 双出口 定时任务目录结构 可直接复用的脚本 不要写：\n真实连接目标 真实业务系统 真实敏感域名 结论 外联审计真正有用的地方，不是“查到了一次连接”，而是能连续跑、能回看、能导出。只要数据结构固定，这件事就能从一次脚本升级成一个长期动作。\n","date":"2026-07-01T00:30:00Z","permalink":"https://blog.aching.cn/posts/external-connection-audit/","title":"外联连接审计：把外部链接收集成 JSON 和 Excel 报表"},{"content":"目标 磁盘巡检的关键不是“把命令跑了”，而是把盘状态翻成能处理的结果：\n哪个控制器 哪块盘异常 是离线、预测失败，还是介质错误 需不需要马上人工处理 采集怎么做 我会把控制器、逻辑卷、物理盘分开采，不把所有东西糊成一段输出。\nstorcli /call show storcli /call/vall show storcli /call/eall/sall show all 日常巡检再补一层轻量过滤：\nstorcli /call/eall/sall show | grep -Ei 'offline|degraded|failed|predict|media|hotspare' 数据怎么落 我会把结果拆成两份：\n原始文本，方便回查 结构化 JSON，方便生成报表 结构化结果至少包含这些字段：\n{ \u0026quot;controller\u0026quot;: \u0026quot;c0\u0026quot;, \u0026quot;slot\u0026quot;: \u0026quot;12\u0026quot;, \u0026quot;drive_state\u0026quot;: \u0026quot;Onln\u0026quot;, \u0026quot;media_errors\u0026quot;: 0, \u0026quot;predictive_failures\u0026quot;: 0, \u0026quot;role\u0026quot;: \u0026quot;data\u0026quot; } 只要字段固定，后面切 Markdown、CSV、Excel 都很容易。\n报告怎么写得有用 报告不要把所有正常盘都堆出来。正常项只要汇总，异常项单独展开。\n## 汇总 - 控制器 1 个 - 逻辑卷 2 个 - 物理盘 8 块 - 异常盘 1 块 异常\rc0 / slot 12：介质错误持续增长 这样看报告的人能第一眼知道需不需要马上处理。\n定时任务怎么接 我一般会把巡检做成系统定时任务，然后把输出落到固定目录。\n#!/usr/bin/env bash set -euo pipefail ts=\u0026quot;$(date +%F_%H%M)\u0026quot; out=\u0026quot;/var/log/raid-audit/$ts\u0026quot; mkdir -p \u0026quot;$out\u0026quot;\nstorcli /call show \u0026gt; \u0026quot;$out/controller.txt\u0026quot; storcli /call/vall show \u0026gt; \u0026quot;$out/volume.txt\u0026quot; storcli /call/eall/sall show all \u0026gt; \u0026quot;$out/drives.txt\u0026quot; python3 render_raid_report.py \u0026quot;$out\u0026quot; \u0026gt; \u0026quot;$out/report.md\u0026quot; 常见坑 1. 不同版本输出不一致 不要依赖固定列号，尽量按关键词提取。\n2. 没有 RAID 卡 如果机器没有对应硬件，报告要明确写“未检测到控制器”，不要当成空白。\n3. 只看健康不看趋势 盘今天还健康，不代表明天不会涨错误。最好保留历史结果，至少能看出变化。\n结论 RAID 巡检真正的价值不在于执行 storcli，而在于把原始输出变成能直接读的报告。只要报告可读，巡检就能变成流程，而不是一次次人工翻输出。\n","date":"2026-07-01T00:20:00Z","permalink":"https://blog.aching.cn/posts/raid-disk-audit-storcli/","title":"RAID 和磁盘巡检自动化：从 storcli 到可读报告"},{"content":"目标 拨测不是“能不能通”这么简单，而是要把问题分层：\n网络层通不通 登录层通不通 业务端口通不通 哪一步失败了 只要分层清楚，后面的排障和重试才有意义。\n最小可用版本 先把三层检查拆开，不要混在一起。\n#!/usr/bin/env bash set -euo pipefail host=\u0026quot;$1\u0026quot;\nping -c 1 -W 1 \u0026quot;$host\u0026quot; \u0026gt;/dev/null nc -z -w 2 \u0026quot;$host\u0026quot; 22 ssh -o BatchMode=yes -o ConnectTimeout=5 \u0026quot;$host\u0026quot; \u0026rsquo;true' 如果环境里没有 nc，可以换成 timeout 包 telnet，但脚本出口要统一，别写成每台机器一个版本。\n我现在固定的状态字段 每台主机只保留几个字段就够了：\n{ \u0026quot;host\u0026quot;: \u0026quot;node-01\u0026quot;, \u0026quot;ping\u0026quot;: \u0026quot;ok\u0026quot;, \u0026quot;ssh\u0026quot;: \u0026quot;fail\u0026quot;, \u0026quot;port_22\u0026quot;: \u0026quot;ok\u0026quot;, \u0026quot;fail_stage\u0026quot;: \u0026quot;ssh\u0026quot;, \u0026quot;reason\u0026quot;: \u0026quot;permission denied\u0026quot; } 这样后面生成报表，不需要再重新解析整段终端输出。\n失败清单怎么分 我把失败固定成四类：\nicmp 不通 tcp 端口不通 ssh 鉴权失败 ssh 超时或拒绝 case \u0026quot;$fail_stage\u0026quot; in icmp) retry=\u0026quot;yes\u0026quot; ;; tcp) retry=\u0026quot;yes\u0026quot; ;; ssh) retry=\u0026quot;no\u0026quot; ;; esac 这个分类决定了是否重试，也决定了后续谁来处理。\n报告怎么出 我会同时出两份：\nJSON 给脚本接 Markdown 给人看 | 主机 | 阶段 | 结果 | 备注 | | --- | --- | --- | --- | | node-01 | ssh | fail | permission denied | | node-02 | port-22 | fail | timeout | Markdown 只展示失败项和汇总，不要把所有命令原样贴上去。\n定时跑的时候怎么收口 定时任务至少要落三份东西：\n原始结果 汇总结果 失败清单 mkdir -p /var/log/probe/$(date +%F) ./probe.sh hosts.txt \u0026gt; /var/log/probe/$(date +%F)/summary.json ./render_report.py /var/log/probe/$(date +%F)/summary.json \u0026gt; /var/log/probe/$(date +%F)/report.md 这样后续要做趋势图、重试统计或者历史对比，才有数据可用。\n这篇真正能写的点 这篇不是写“拨测很重要”，而是写：\n为什么要拆三层 怎么定义失败 怎么让结果能复用 怎么让重跑不污染结果 这些才是实战里真正会反复碰到的东西。\n","date":"2026-07-01T00:10:00Z","permalink":"https://blog.aching.cn/posts/connectivity-probing-system/","title":"连通性拨测体系：ping、SSH、telnet 和失败清单"},{"content":"目标 批量初始化最怕的不是命令多，而是每次都不一样。真正能落地的做法，不是堆一堆 shell，而是把初始化收口成一条固定路径：\n先确认能连、能提权 再铺基础账号、时间同步、工具包 最后做验收和留档 这样后续不管是 5 台还是 50 台，流程都一致。\n目录先定死 我现在会先把项目目录收住，避免脚本散落在桌面和临时目录里。\nhouse-init/ inventories/prod/hosts.ini group_vars/all.yml roles/ bootstrap/ chrony/ sysctl/ base-tools/ playbooks/ 00-precheck.yml 10-bootstrap.yml 20-baseline.yml 90-verify.yml scripts/ run.sh report.py 入口脚本只负责调用 playbook，不在里面写业务逻辑。\n#!/usr/bin/env bash set -euo pipefail inventory=\u0026quot;${1:-inventories/prod/hosts.ini}\u0026quot; target=\u0026quot;${2:-all}\u0026quot;\nansible-playbook -i \u0026quot;$inventory\u0026quot; playbooks/00-precheck.yml --limit \u0026quot;$target\u0026quot; ansible-playbook -i \u0026quot;$inventory\u0026quot; playbooks/10-bootstrap.yml --limit \u0026quot;$target\u0026quot; ansible-playbook -i \u0026quot;$inventory\u0026quot; playbooks/20-baseline.yml --limit \u0026quot;$target\u0026quot; ansible-playbook -i \u0026quot;$inventory\u0026quot; playbooks/90-verify.yml --limit \u0026quot;$target\u0026quot; 前置检查先做薄 初始化前先确认 SSH、sudo、Python 都在，不满足就直接停，不进入后续改动。\n- hosts: all gather_facts: false tasks: - name: check ssh ansible.builtin.ping: - name: check sudo ansible.builtin.command: sudo -n true changed_when: false - name: check python ansible.builtin.raw: test -x /usr/bin/python3 || test -x /usr/libexec/platform-python changed_when: false 这一步的意义是把失败提前到最前面，避免跑到一半才发现提权不通。\n基础动作只保留四类 我最后收成了四个固定动作：\n基础账号和公钥 时间同步 系统基线参数 常用工具包 - name: deploy admin key ansible.posix.authorized_key: user: sisthy key: \u0026quot;{{ lookup('file', 'files/id_ed25519.pub') }}\u0026quot; name: install base tools ansible.builtin.package: name: - vim - curl - bash-completion - chrony state: present sysctl 也尽量模板化，别一台机器一个写法。\n- name: set baseline sysctl ansible.posix.sysctl: name: net.ipv4.ip_forward value: \u0026quot;0\u0026quot; state: present reload: yes 验收比执行更重要 我不把“脚本跑完”当结束，只把“验收通过”当结束。\nansible -i inventories/prod/hosts.ini all -m shell -a 'hostnamectl; timedatectl status | sed -n \u0026quot;1,8p\u0026quot;; sudo -n true' 验收时只看三类结果：\n哪台机器通过 哪台机器失败 哪一步失败 不要把整段原始输出直接塞进报告，报告不是日志转储。\n失败怎么处理 初始化失败后，我会把错误分成三类：\n连通性问题 权限问题 目标系统差异问题 这三类对应的处理完全不一样。比如连通性问题应该重试，权限问题应该回头查账号，系统差异问题则需要补适配，不适合盲跑。\n回滚边界 初始化脚本只改这几类内容：\n账号 公钥 sudo 规则 时间同步 基础工具 不碰业务配置，不动数据盘，不写应用目录。这样一旦出问题，回滚范围是明确的。\n结论 批量初始化真正要收口的不是命令，而是流程。只要把“前置检查 -\u0026gt; 基础铺设 -\u0026gt; 验收留档”固定下来，后面的 swap、sysctl、账号治理和巡检都能接在同一条线上。\n","date":"2026-07-01T00:00:00Z","permalink":"https://blog.aching.cn/posts/linux-batch-init-workflow/","title":"Linux 批量初始化收口成一套固定流程"},{"content":"这篇是媒体链路的公开导览，目的是用最少的话说清楚一件事：家里云里的媒体服务不是拿家宽去扛视频流量，而是把浏览、鉴权和播放控制留在自建服务里，把真正的大流量尽量交给网盘和 CDN。\n核心思路 如果把媒体系统拆开看，其实只有两类流量：控制流和视频流。控制流负责看列表、进页面、点播放、鉴权和跳转；视频流负责真正传输内容。两者混在一起，系统就容易变重，也更难维护。\n现在的做法是：`Jellyfin`、`OpenList` 和 `go-emby2openlist` 负责前半段，实际视频流尽量走 `115 CDN`。这样一来，自建服务的角色更清楚，用户侧也更稳定。\n对外怎么理解 媒体库入口负责浏览和播放控制。 网盘和 CDN 负责真正的视频传输。 页面看起来像一个播放器，底层其实是一个分层的直链方案。 为什么要这样做 减少自建机器承担大流量的压力。 降低故障恢复时的复杂度。 让目录、索引和播放入口可以继续自维护。 更容易把问题定位到“入口问题”还是“视频源问题”。 这篇文章不展开什么 不展开具体内网 IP。 不展开 token、密钥和 API 细节。 不展开完整反代拓扑。 不展开 115 账号侧的细节。 对应长文 如果要看更完整的实现细节，可以继续读《115 网盘 + Emby + STRM 直链播放：告别 FUSE 挂载的折腾之路》。这篇负责讲清楚原理，这篇负责讲清楚怎么跑。\n后面如果还要补内容，优先补海报墙体验和公开说明，不优先重构播放器本身。\n","date":"2026-06-30T12:41:41Z","permalink":"https://blog.aching.cn/posts/media-chain-overview/","title":"媒体链路导览：把控制流和视频流分开"},{"content":"这篇文章用来解释 aching.cn 背后的长期项目：不是单独搭一个服务，而是把域名、博客、媒体库、状态页、备份和监控慢慢收口成一套能长期维护的系统。\n为什么要做一个入口 自建服务最容易变成一堆能跑但不好维护的入口：这个服务一个域名，那个后台一个端口，证书、备份、监控各做各的。短期看能用，时间一长就会忘记哪些是主入口，哪些只是历史兼容。\n所以现在的目标很简单：公开内容放到 aching.cn 和 blog.aching.cn，私有后台留在内部，状态页只展示公开入口是否活着。\n现在的几条主线 博客：整理迁移后的文章，把可读内容、分类和图片资产慢慢修干净。 媒体链路：媒体库负责浏览和播放控制，实际大流量尽量交给网盘/CDN。 公开状态：只展示入口存活，不暴露内部主机和资源细节。 备份：把重要配置、博客和管理数据定期打包，并推到离站节点。 监控：内部资源监控继续私有化，不把后台入口放到公开主页。 公开和私有的边界 公开页面只应该回答“这里有什么内容可以看”。它不应该暴露后台地址、内网拓扑、账号、token 或具体机器细节。真正的运维后台可以存在，但不应该成为访客的入口。\n这个边界比页面好不好看更重要。只要边界清楚，后面加文章、换主题、优化页面都不会把系统越弄越乱。\n后面会继续整理什么 把 Blog 首页精选改成真正适合从主页进入的阅读路径。 补媒体链路的短导览，让长文只负责展开细节。 继续补齐缺失图片和旧文章排版。 给内部监控补固定覆盖率检查，避免靠记忆维护。 这套东西不会一次定型。目标不是堆更多服务，而是让已经在用的服务有清楚的入口、备份、监控和解释方式。\n","date":"2026-06-29T19:13:19Z","permalink":"https://blog.aching.cn/posts/homelab-overview/","title":"家里云总览：把自建服务收口成长期系统"},{"content":"这篇记录的是我把媒体库从「网盘 FUSE 挂载直读」改成「STRM 文件 + 播放时重定向」的过程。结论先说：媒体库负责展示和管理，真正的视频流量尽量交给网盘侧直链/CDN，不让家宽或中转机长期扛视频流。\n为什么要改 最早的做法是把 115 网盘挂成一个本地目录，再让 Emby 直接扫描。短期好用，长期问题明显：\n扫描不稳定，FUSE 偶发卡住或断开。 播放路径不理想，容易把流量压到自建机器上。 目录改名、移动和元数据刷新容易留下脏状态。 所以这次不是继续补 FUSE，而是把 FUSE 从播放链路里拿掉。\n现在的链路 这套方案可以理解成两段：前半段负责“看起来像一个正常媒体库”，后半段负责“把播放尽量导向网盘直链”。\n用户端 -\u0026gt; 媒体入口 -\u0026gt; go-emby2openlist -\u0026gt; Emby 媒体库与播放控制 -\u0026gt; STRM 文件 -\u0026gt; OpenList / 115 API 获取真实地址 -\u0026gt; 客户端跳转到网盘直链播放 最关键的点是：Emby 还是负责海报墙、观看记录和客户端体验；go-emby2openlist 负责把 STRM 里的路径解析成真实播放地址；真正的视频流量尽量不要走反代服务器。\n组件分工 组件职责注意点OpenList管理网盘目录，提供文件列表和下载地址能力API 调用要控制频率，避免触发限速STRM 文件给 Emby 提供可扫描的媒体入口路径映射必须稳定，不要频繁改根目录go-emby2openlist解析 STRM，协助重定向播放请求入口应该先进它，而不是直接打到 EmbyEmby媒体库、海报墙、观看记录和客户端体验Web 播放器兼容性不如外部播放器稳定 实施重点 STRM 要放在持久化目录里 OpenList 生成的 STRM 必须落在 Docker volume 里。否则容器重建后文件丢失，Emby 的媒体库也会跟着失效。\n路径映射按 Emby 视角写 go-emby2openlist 的路径映射不要按宿主机绝对路径写，而要按 Emby 容器里看到的路径写。最容易错的地方就是把宿主机路径直接塞进去。\n入口先到中间层 如果入口直接反代到 Emby，播放请求就绕过了解析和重定向逻辑。正确做法是先到 go-emby2openlist，再由它和 Emby 协作处理页面和播放请求。\n踩过的坑 Emby 首次识别 STRM 时，部分内容可能会被误判成普通目录。 Web 播放器经常会先发 HEAD 请求，实际体验不一定最好。 批量生成 STRM 和刷新媒体库都要限速，别硬怼并发。 目录改名后要清理旧 STRM，不然容易出现重复条目和失效条目。 现在的取舍 这套方案不是最省事的，但比 FUSE 直读稳定。它把媒体服务拆成两层：Emby 负责“像一个正常媒体库”，OpenList / go-emby2openlist 负责“让播放尽量走网盘直链”。\n后面更值得优化的是海报墙和元数据，而不是继续让自建服务器承担视频流量。只要播放链路能稳定跳到直链，这套架构就算达成目标。\n","date":"2026-05-10T06:00:00Z","permalink":"https://blog.aching.cn/posts/115-emby-strm-direct-play/","title":"115 网盘 + Emby + STRM 直链播放：告别 FUSE 挂载的折腾之路"},{"content":"挑选护卫者，并不是每个人都能成为护卫者\n基于天赋筛选出天然的护卫者\u0026#8212;\u0026#8211;教育\n铜命\u0026#8212;工人、铁命\u0026#8212;农民、金命\u0026#8212;统治者，通过同等的教育筛选出真正具有金命的人；\n只有纯粹的金命才能作为领导者\n对于护卫者，要求：\n生活方式：\n不能拥有私有财产\n食粮由百姓供给\n世俗的金银是罪恶之源 内心纯洁的金银是纯洁无暇的资本 我们的灵魂有没有智慧、勇敢和节制？\n","date":"2026-04-09T17:21:23Z","permalink":"https://blog.aching.cn/posts/8235a4cf-071b-4751-9c29-fd1763b72434/","title":"理想国 \u0026#8212; 笔记"},{"content":"注意事项 配置server和client的service名称时需要一样 Server端配置 1、server.toml配置 [server] bind_addr = \"0.0.0.0:6000\" [server.services.Win_Client_01] type = \u0026ldquo;tcp\u0026rdquo; bind_addr = \u0026ldquo;0.0.0.0:6001\u0026rdquo; token = \u0026ldquo;\u0026lt;TOKEN_01\u0026gt;\u0026rdquo;\n[server.services.Win_Client_02] type = \u0026ldquo;tcp\u0026rdquo; bind_addr = \u0026ldquo;0.0.0.0:6002\u0026rdquo; token = \u0026ldquo;\u0026lt;TOKEN_02\u0026gt;\u0026rdquo;\n[server.services.Win_Client_03] type = \u0026ldquo;tcp\u0026rdquo; bind_addr = \u0026ldquo;0.0.0.0:6003\u0026rdquo; token = \u0026ldquo;\u0026lt;TOKEN_03\u0026gt;\u0026rdquo; 2、docker-server配置 services: rathole-server: image: rapiz1/rathole:latest container_name: rathole-server restart: unless-stopped command: [\"--server\", \"/config/server.toml\"] network_mode: host security_opt: - apparmor=unconfined - seccomp=unconfined volumes: - /data/docker/appdata/rathole-server:/config:ro logging: driver: \u0026quot;json-file\u0026quot; options: max-size: \u0026quot;10m\u0026quot; max-file: \u0026quot;5\u0026quot; Client端配置 rathole client windows 1、client.toml配置 [client] remote_addr = \"your-server.example.com:6000\" [client.services.Win_Client_01] type = \u0026ldquo;tcp\u0026rdquo; local_addr = \u0026ldquo;127.0.0.1:3389\u0026rdquo; token = \u0026ldquo;\u0026lt;TOKEN_01\u0026gt;\u0026rdquo;\n[client.services.Win_Client_02] type = \u0026ldquo;tcp\u0026rdquo; local_addr = \u0026ldquo;127.0.0.1:3389\u0026rdquo; token = \u0026ldquo;\u0026lt;TOKEN_02\u0026gt;\u0026rdquo;\n[client.services.Win_Client_03] type = \u0026ldquo;tcp\u0026rdquo; local_addr = \u0026ldquo;127.0.0.1:3389\u0026rdquo; token = \u0026ldquo;\u0026lt;TOKEN_03\u0026gt;\u0026rdquo; 2、docker-client配置 services: rathole-client: image: rapiz1/rathole:latest container_name: rathole-client restart: unless-stopped command: [\"--client\", \"/config/client.toml\"] network_mode: host security_opt: - apparmor=unconfined - seccomp=unconfined volumes: - /data/docker/appdata/rathole-client:/config:ro logging: driver: \u0026quot;json-file\u0026quot; options: max-size: \u0026quot;10m\u0026quot; max-file: \u0026quot;5\u0026quot; 3、windows-nssm配置 cd \"C:Program Filesnssm-2.24win64\" 删除旧服务\r.nssm.exe remove rathole-RDP confirm\n重新安装服务\r.nssm.exe install rathole-RDP \u0026ldquo;D:ratholerathole.exe\u0026rdquo; \u0026ldquo;client.toml\u0026rdquo;\n设置工作目录\r.nssm.exe set rathole-RDP AppDirectory \u0026ldquo;D:rathole\u0026rdquo;\n设置日志输出\r.nssm.exe set rathole-RDP AppStdout \u0026ldquo;D:ratholerathole.out.log\u0026rdquo; .nssm.exe set rathole-RDP AppStderr \u0026ldquo;D:ratholerathole.err.log\u0026rdquo;\n设置异常自动重启\r.nssm.exe set rathole-RDP AppExit Default Restart .nssm.exe set rathole-RDP AppThrottle 1500\n.nssm.exe remove rathole-SSH confirm\n.nssm.exe install rathole-SSH \u0026ldquo;C:rathole-sshrathole.exe\u0026rdquo; \u0026ldquo;client.toml\u0026rdquo; .nssm.exe set rathole-SSH AppDirectory \u0026ldquo;C:rathole-ssh\u0026rdquo;\n.nssm.exe set rathole-SSH AppStdout \u0026ldquo;C:rathole-sshrathole.out.log\u0026rdquo; .nssm.exe set rathole-SSH AppStderr \u0026ldquo;C:rathole-sshrathole.err.log\u0026rdquo;\n.nssm.exe set rathole-SSH AppExit Default Restart .nssm.exe set rathole-SSH AppThrottle 1500\n.nssm.exe remove rathole-Client-VM confirm\n重新安装服务\r.nssm.exe install rathole-Client-VM \u0026ldquo;D:rathole-vmrathole.exe\u0026rdquo; \u0026ldquo;client.toml\u0026rdquo;\n设置工作目录\r.nssm.exe set rathole-Client-VM AppDirectory \u0026ldquo;D:rathole-vm\u0026rdquo;\n设置日志输出\r.nssm.exe set rathole-Client-VM AppStdout \u0026ldquo;D:rathole-vmrathole.out.log\u0026rdquo; .nssm.exe set rathole-Client-VM AppStderr \u0026ldquo;D:rathole-vmrathole.err.log\u0026rdquo;\n设置异常自动重启\r.nssm.exe set rathole-Client-VM AppExit Default Restart .nssm.exe set rathole-Client-VM AppThrottle 1500\n启动服务\r.nssm.exe start rathole-Client-VM ","date":"2026-04-09T17:18:20Z","permalink":"https://blog.aching.cn/posts/rathole/","title":"rathole 内网穿透服务"},{"content":"文档说明 本文档用于汇总当前家里云环境中的 VM / LXC 清单，以及后续目标架构下的 VMID、名称、配置建议、网络规划与节点职责。\n一、当前现状清单（Current Inventory） 说明：\n\u0026#8211; 当前现状 为已知配置清单中的现有记录\n\u0026#8211; 目标规划 为后续准备实施的新方案\n\u0026#8211; pve01 当前视为待退役/历史节点\n\u0026#8211; pve02 为边缘入口节点\n\u0026#8211; pve03 为核心业务节点\n1.1 pve-localhome-01（历史节点 / 待退役） 节点 IP：home-lab-node-a 角色：compute / storage 状态：offline VM 类型 VMID/CTID 名称 IP 状态 备注 VM 110 Lab-Win10-VM-10.110 home-lab-main-subnet.110 unknown Win10 VM 112 Work-Win10-VM-2.12 home-lab-secondary-subnet.12 unknown Work Win10 VM 113 Work-Win10-VM-2.13 home-lab-secondary-subnet.13 unknown Work Win10 VM 114 Work-Win10-VM-2.14 home-lab-secondary-subnet.14 unknown Work Win10 VM 115 Work-Win10-VM-2.15 home-lab-node-b unknown Work Win10 VM 120 Work-WinServer-VM-2.20 home-lab-secondary-subnet.20 unknown WinServer VM 990 Lab-FnOS-VM-10.90 home-lab-main-subnet.90 unknown 旧 NAS 方案，4 HDD + cache SSD passthrough VM 991 Work-GitService-VM-2.91 home-lab-secondary-subnet.91 unknown Git VM 1091 Lab-DDnsGo-Service-VM-10.91 home-lab-main-subnet.91 unknown DDNS VM 5000 Lab-EX374-VM-10.50 home-lab-service stopped 历史 VM VM 10150 Lab-Service-VM-10.150 home-lab-main-subnet.150 unknown 历史服务机 LXC 类型 VMID/CTID 名称 IP 状态 备注 LXC 1200 Lab-JumpServer-LXC-10.201 home-lab-backup unknown 跳板机 1.2 pve-localhome-02（当前边缘入口节点） 节点 IP：home-lab-main-subnet.6 角色：edge / reverse-proxy / redundancy 宿主机网络：vmbr0 宿主机用途：入口转发、轻量服务、代理 VM 类型 VMID/CTID 名称 IP 状态 CPU 内存(MB) 系统盘 网络 备注 VM 2092 Lab-DDnsGo-Service-VM-10.92 home-lab-main-subnet.92 running 1 1024 20G vmbr0 onboot VM 2253 Service-iStore-VM-10.253 home-lab-gateway running 1 1024 2.38G vmbr0 onboot VM 2292 Work-GitService-VM-2.92 home-lab-secondary-subnet.92 running 2 4096 50G vmbr0 onboot LXC 类型 VMID/CTID 名称 IP 状态 CPU 内存(MB) 系统盘 网络 备注 LXC 2200 Lab-JumpServer-LXC-10.200 home-lab-storage running 1 1024 10G vmbr0 mp0 20G, mp1 8G 1.3 pve-localhome-03（当前核心节点） 节点 IP：home-lab-main-subnet.7 角色：compute / storage / nas-host 当前主板：Gigabyte Z490I AORUS ULTRA 当前 CPU：Intel i5-10400 当前内存：16GB 宿主机网络：vmbr0 VM 类型 VMID/CTID 名称 IP 状态 CPU 内存(MB) 系统盘 网络 备注 VM 31010 Lab-WinControl-Win10-VM-10.10 home-lab-service running 4 4096 100G vmbr0 管理 Windows VM 31089 Lab-NAS-FnOS-VM-10.89 home-lab-main-subnet.89 stopped / historical running 4 4096 100G vmbr0 FnOS，现转为消费层 VM 31090 Lab-NAS-TrueNas-VM-10.90 home-lab-main-subnet.90 running 4 4096 100G vmbr0 TrueNAS，LSI SAS2308 passthrough LXC 类型 VMID/CTID 名称 IP 状态 CPU 内存(MB) 系统盘 网络 备注 LXC 310201 Lab-JumpServer-LXC-10.201 home-lab-backup running 1 1024 10G vmbr0 mp0 20G, mp1 8G 二、目标规划清单（Target Plan） 2.1 节点定位 pve02 定位：边缘入口节点\n职责：\nDDNS Nginx / OpenResty 自动续签证书 JumpServer 代理 / VPN 轻量边缘业务 原则：\n不放重数据 不放核心存储 不放高 IO 核心业务 挂了能快速重建 pve03 定位：核心业务节点\n职责：\nWork Windows Git 服务 核心管理 Windows 核心 Docker 服务 TrueNAS FnOS 影音墙 原则：\n核心业务全部收敛到 pve03 work / services 分网 TrueNAS 为底层存储 FnOS 只做消费层 2.2 目标 VM / LXC 清单 VMID 规则：\n\u0026#8211; 直接按 节点 + IP 对齐\n\u0026#8211; 不再额外用 VMID 中间位区分 VM / LXC\n\u0026#8211; 以“好记、好查、和 IP 对齐”为优先\npve02（边缘节点） IP VMID 类型 名称 用途 建议配置 home-lab-main-subnet.12 210012 VM Lab-Docker-Service-VM-10.12 ddns-go / nginx / ACME / 边缘轻量服务 2C / 4GB / 40G home-lab-storage 210200 LXC Lab-JumpServer-LXC-10.200 SSH 跳板 1C / 1GB / 10G home-lab-gateway 210253 VM Lab-VPN-Service-VM-10.253 代理 / VPN 2C / 2GB / 20G 说明 10.12：仅承载边缘入口服务，不承载核心数据库 10.200：LXC 更轻量，适合跳板 10.253：未来可替换为 Debian 代理 VM pve03（核心节点 / services） IP VMID 类型 名称 用途 建议配置 home-lab-service 310010 VM Lab-Win10-VM-10.10 核心自用管理 Windows 4C / 4GB / 100G home-lab-main-subnet.13 310013 VM Lab-Docker-Service-VM-10.13 核心 Docker 服务 + Beszel Server 4C / 8GB / 60G home-lab-main-subnet.89 310089 VM Lab-FnOS-VM-10.89 影音墙 / 消费层 4C / 4GB / 100G home-lab-main-subnet.90 310090 VM Lab-NAS-TrueNas-VM-10.90 TrueNAS 底层存储 4C / 24GB / 100G home-lab-backup 310201 LXC Lab-Utility-LXC-10.201 工具容器 / 探针 / 临时维护 1C / 1GB / 10G 说明 10.11：只保留一台核心 Docker VM，避免后续拆太散 10.89：FnOS 不再承担底层存储，只做消费层 10.90：TrueNAS 为底层数据层，提供 NFS/SMB/iSCSI 10.201：预留轻量工具位，避免在正式 VM 上乱搞 pve03（核心节点 / work） IP VMID 类型 名称 用途 建议配置 home-lab-secondary-subnet.10 302010 VM Work-GitService-VM-2.10 Git + SSH + Tailscale / 直连暴露 2C / 2GB / 40G home-lab-secondary-subnet.11 302011 VM Work-Win10-VM-2.11 Work Windows 1 4C / 4GB / 100G home-lab-secondary-subnet.12 302012 VM Work-Win10-VM-2.12 Work Windows 2 4C / 4GB / 100G home-lab-secondary-subnet.13 302013 VM Work-Win10-VM-2.13 Work Windows 3 4C / 4GB / 100G 说明 Git 独立 VM 保留 原因：你明确要求 Git 还承担 SSH + Tailscale + 端口直连暴露 这类角色不适合塞进 Docker 总承载机里 三、网络与访问关系 3.1 网段规划 Services 网段 网段：home-lab-main-subnet.0/24 网关：home-lab-main-subnet.254 用途： PVE 宿主机 Docker 服务 管理机 TrueNAS FnOS JumpServer 边缘服务 Work 网段 网段：home-lab-secondary-subnet.0/24 网关：home-lab-secondary-subnet.254 用途： Work Windows Git 服务 其他工作虚机 AP 网段 网段：10.30.0.0/24 网关：10.30.0.254 用途： Wi-Fi 终端 手机 / 平板 / 客户端 3.2 访问策略 Work → NAS work 网段通过 ROS 访问 TrueNAS 的 02-work 协议建议：SMB 优先 原因： work 端主要是 Windows 映射盘更方便 权限模型更顺手 Services → NAS services 网段可直接访问 TrueNAS 用于： Docker 数据挂载 管理访问 业务共享存储 AP → NAS 不考虑 AP 访问 TrueNAS AP 只允许访问： FnOS 必要公开服务 Git Git 独立在 work 网段 保留： SSH 暴露 Tailscale 访问 后续可能的外部 Git 入口 四、TrueNAS 与存储规划 4.1 HDD 池 6 × HDD 方案：RAIDZ2 用途 01-production 02-work 03-media 04-sync 05-backup 4.2 SSD 池 2 × SATA SSD 方案：mirror 用途建议 优先给 Lab-Docker-Service-VM-10.11 提供高频数据存储，例如：\nDocker data 配置目录 数据库 Beszel Server 数据 证书与反向代理配置 4.3 Docker 与 TrueNAS 的关系 建议固定方案 Docker 运行在独立 Linux VM TrueNAS 只做存储提供者 不建议 把核心 Docker 服务直接和 NAS 深度耦合 把大量核心服务直接跑进 NAS 生态中 五、Docker 角色边界 5.1 pve02 / 10.12 只放边缘类轻服务：\nddns-go nginx / openresty 自动续签证书 轻量入口服务 不建议放 核心数据库 Git NAS 服务 大量有状态业务 5.2 pve03 / 10.11 只放核心 Docker 服务：\nBeszel Server 核心 Linux 业务服务 需要长期运行且易迁移的容器 原则 只保留一个核心 Docker VM 不要继续拆出更多 Docker VM 避免服务分散、日志分散、备份分散 六、监控方案 6.1 监控选型 方案：Beszel 6.2 部署建议 Beszel Server 部署在：\nLab-Docker-Service-VM-10.11 Agent 部署对象 pve02 宿主机 pve03 宿主机 pve02 各 VM / LXC pve03 各关键 VM / LXC Work Windows 三台 Git VM TrueNAS（按支持方式接入） 七、保留 / 废弃思路 7.1 保留 pve02 的边缘入口能力 pve03 的核心业务承载 work / services 分网 Git 独立 VM TrueNAS + FnOS 双层结构 7.2 废弃 pve01 的历史承载关系 旧 FnOS 作为底层 NAS 后端的职责 重复 JumpServer / DDNS / Git 实例 零散无归属的小 VM 八、命名与规划原则 8.1 命名保留前缀 Lab-：个人/家庭业务 Work-：工作用途 Service-：公共基础服务 Utility-：工具/临时用途 8.2 VMID 原则 直接和节点/IP 对齐 优先好记、好查、易维护 不再用 VMID 中间某位强行表达 VM/LXC 类型 九、待确认项 以下内容仍建议后续继续细化：\nLab-Docker-Service-VM-10.11 最终承载哪些 Docker 服务 TrueNAS 对 10.11 提供数据的方式：\n\u0026#8211; NFS\n\u0026#8211; iSCSI Work 网段访问 02-work 时的 SMB 权限模型 Git 是否后续扩展：\n\u0026#8211; CI\n\u0026#8211; Runner\n\u0026#8211; 外部访问 pve01 历史 VM 哪些彻底废弃，哪些需要迁移数据而不是迁移整机 十、结论 当前最终建议架构：\npve02：边缘入口 pve03：核心业务与存储 work / services 分网 TrueNAS 做底层，FnOS 做消费层 Git 独立 VM Beszel 作为统一监控 VMID 按节点 + IP 对齐 这版结构已经足够清晰，后续可以直接拿来继续细化实施。\n","date":"2026-04-09T17:18:17Z","permalink":"https://blog.aching.cn/posts/homelab-vm-lxc/","title":"Homelab VM \u0026#8211; LXC 清单与目标规划"},{"content":"说一下我设想的pve构建、vm、lxc及网段划分配置。\npve02配置 Lab-Docker-Service-VM-10.12 = 存放ddns-go、rathole-server等edge转发业务 Lab-JumpServer-VM-10.200 ssh跳板机 Lab-VPN-Service-VM-100.253 VPN代理主机，因单臂路由的非对称路由导致IP网段单独配置 pve03配置 VMID NAME STATUS MEM(MB) BOOTDISK(GB) 用途 302010 Work-GitService-VM-2.10 running 1024 50.00 工作gitserver 302011 Work-Win10-VM-2.11 running 4096 100.00 work Windows 310010 Lab-Control-Win10-VM-10.10 running 4096 100.00 Control Windows 310013 Lab-Docker-Service-VM-10.13 running 8192 50.00 核心docker服务 310014 Lab-Tailscale-Rocky-VM-10.14 running 1024 20.00 Tailscale subnet转发 310015 Lab-AI-Rocky-VM-10.15 running 8192 50.00 AI功能机 310020 Lab-Code-Rocky-VM-10.20 running 4096 50.00 代码编写机 310090 Lab-NAS-TrueNas-VM-10.90 running 24576 100.00 truenas核心存储 310101 Lab-Test-Rocky-VM-10.101 running 4096 50.00 测试 310102 Lab-Test-Win10-VM-10.102 stopped 4096 100.00 测试 网段划分 work网段为10.20.0.0/24，业务网段为10.10.0.0/24；AP网段为10.30.0.0/24，不考虑其访问truenas能力\nwork vm通过ros访问nas的work目录获取文件 truenas 6块hdd使用raidz2重构，2块sata ssd使用raid1，通过nfs方式连接到pve，作为dockerServer的数据盘或者直接将dockerServer运行在此\n监控 每台主机安装监控，推荐一下简单监控的软件吧，最好能够兼容不同的os同时是开源的。\n","date":"2026-04-09T17:18:14Z","permalink":"https://blog.aching.cn/posts/homelab/","title":"Home Lab 架构规划"},{"content":"太痛快了！恭喜你，终于亲手斩杀了这个折磨了你无数个日夜的“7秒幽灵”！\n这绝对是一场教科书级别的硬核网络排障战役。从 DNS 污染到内核 IPv6 黑洞，从代理软件底层的 5 秒死锁再到最终的局域网非对称路由，我们几乎把透明代理架构里所有的天坑都踩了一遍。\n为了让你能完美地记录在博客上，我为你整理了一份详尽的《记一次 RouterOS 旁路由架构下 TLS 握手固定延迟 7 秒的终极排障指南》。你可以直接复制使用！\n📌 背景与架构说明 在折腾家庭网络透明代理时，我采用了目前极其主流且性能强悍的架构：\n主路由 (Gateway): RouterOS (ROS) \u0026#8211; IP: 10.10.0.254\n旁路由 (TProxy): Debian 虚拟机运行 sing-box \u0026#8211; IP: 10.10.0.253\n客户端: Rocky Linux / Windows 等 \u0026#8211; IP: 10.10.0.x网段\n远端节点: VPS 运行 Xray (VLESS-Reality)\n分流逻辑: ROS 使用 Mangle 表，将非 CNIP 的海外流量打上 cross 标记，策略路由至 Debian 旁路由。\n🚨 诡异的故障现象：精确的 7 秒延迟 在客户端使用 curl -Iv https://www.google.com 测试时，发现每次请求都会出现极其稳定的 7 秒左右延迟。\n通过 curl 的性能分析命令拆解耗时，发现了惊人的“错觉”：\nBash\ncurl -o /dev/null -s -w \u0026quot;TCP连接耗时: %{time_connect} 秒nTLS握手耗时: %{time_appconnect} 秒n\u0026quot; https://www.google.com TCP 连接耗时: 0.02 秒 （极快，说明局域网畅通）\nTLS 握手耗时: 6.85 秒 （极慢，卡死在这里）\n总耗时: 7.35 秒\n直觉往往会让人去排查远端节点慢、线路丢包或者 DNS 慢，但在这套复杂的透明代理架构下，TLS 耗时高只是一个表象，真正的凶手往往藏在底层的网络协议栈中。\n🕵️ 漫长而硬核的排障过程（避坑指南） 在最终破案前，我们进行了深度排查，排除了以下常见的“透明代理天坑”，这些经验同样值得记录：\n排除 GFW DNS 污染与本地死锁\n客户端拿到了 Facebook 的被墙 IP (31.13.x.x)，这是正常的，因为 sing-box 开启了 sniff: true，会通过 SNI 提取真实域名并在远端解析。\n避坑: 确保旁路由代理配置中没有多余的 ip_is_private 等需要本地反查 IP 的规则，否则会触发代理引擎内部的 DNS 5秒死锁。\n排除 VPS 端 IPv6 与 WARP 黑洞\n通过 VPS 端的 tcpdump 发现，Xray 拿到了 Google 的 IPv6 地址并尝试连接。如果 VPS 的 IPv6 路由不通或配置了死掉的 WARP 虚拟网卡，会导致 TCP SYN 握手包被静默丢弃 (DROP)。\n根据 Linux 内核 TCP 重传机制 (1秒+2秒+4秒=7秒)，这会完美制造 7 秒延迟。\n操作: 在 VPS 彻底禁用 IPv6 (sysctl -w net.ipv6.conf.all.disable_ipv6=1)，并强制 Xray 出站规则使用 \"domainStrategy\": \"UseIPv4\"。\n排除 MTU (PMTUD) 丢包\n怀疑 Google 下发的巨型 TLS 证书包超过了 PPPoE 宽带的 1492 MTU，导致丢包重传。测试将 VPS 和旁路由的 MTU 降至 1360，故障依旧。 排除 Xray 内部 DNS 解析超时\n发现 Xray 配置文件中 DNS 设置为 localhost，导致其向无 IPv6 能力的宿主机发起 AAAA 查询，触发 Go 语言底层的 5.0 秒硬性超时。修改为 8.8.8.8 后故障依旧。 💡 破局之战：SOCKS5 绕过测试 当外部环境被彻底清洗干净后，我们采用了“终极二分法”。\n在旁路由的 sing-box 开启 SOCKS5 端口 (1080)，然后在客户端强制走 SOCKS5 代理：\nBash\ntime curl -x socks5h://10.10.0.253:1080 -Iv https://www.google.com 结果：real 0m0.616s （瞬间秒开！）\n这个测试一锤定音：VPS 是完美的，国际链路是完美的。这 7 秒的真凶，100% 锁死在局域网的透明代理 (TProxy) 与主路由转发机制上！\n💥 最终真相：致命的“三角路由” (Asymmetric Routing) 结合客户端、旁路由和主路由都在 同一个 /24 局域网网段 的拓扑结构，真相大白：\nSYN 出发：客户端 101 发送 TCP SYN 给主路由 254。\nMangle 转发：主路由 254 将包转发给旁路由 253，并在连接跟踪 (Conntrack) 记录：状态 SYN_SENT。\n抄近道回信：旁路由 253 收到后，回复 SYN-ACK。但由于旁路由发现客户端 101 就在同网段，于是不经过主路由，直接通过二层 MAC 地址把包发给了客户端！\n灾难降临：客户端收到 SYN-ACK，立刻发送 ACK 和 TLS Client Hello 数据包给主路由 254。\n防火墙拦截：主路由 254 的防火墙一看，自己明明只记录了 SYN，根本没见过 SYN-ACK，判定这个 Client Hello 是非法状态连接 (Invalid)，直接 DROP 丢弃！\n死等 7 秒：客户端包被吞，死等重传。直到 5 秒后主路由的 SYN_SENT 状态超时失效，客户端第 7 秒的重传包被当做新连接放行，这才最终连上网络。\n🛠️ 终极解决方案：在 ROS 补全 NAT 伪装 要打破这种因为单臂路由“抄近道”导致的 TCP 状态阻断，必须让流量有去有回，全部经过主路由的防火墙。\n操作方法：\n在 RouterOS 中增加一条 Source NAT (Masquerade) 规则，将发往旁路由的流量的源 IP，伪装成 ROS 自己的 IP。这样旁路由回信时，只能先发给 ROS，再由 ROS 转交给客户端，TCP 状态机完美闭环！\nRouterOS 修复代码：\n(注：br-lan 为内网网桥接口，cross 为策略路由标记，请根据实际情况替换)\n代码段\n/ip firewall nat add chain=srcnat action=masquerade out-interface=br-lan routing-mark=cross comment=\u0026quot;Fix Bypass Asymmetric Routing\u0026quot; 规则生效后，再次执行 curl 测试，7 秒钟的噩梦彻底消失，网页秒开，丝滑无比！\n📝 总结 在透明代理和单臂旁路由架构中，同网段内的非对称路由是极其容易被忽视的隐形杀手。任何看似毫无头绪的 TLS 握手卡顿、TCP 固定秒数延迟，首先应当通过 SOCKS5 等协议剥离透明网关进行对比测试，并时刻警惕底层的 TCP 状态机是否被防火墙阻断。\n","date":"2026-04-09T17:18:10Z","permalink":"https://blog.aching.cn/posts/routeros-tls-7/","title":"记一次 RouterOS 旁路由架构下 TLS 握手固定延迟 7 秒的终极排障指南"},{"content":"待补充 待补充 概述 唯物因果 概述 所有自然事物之间最重要最直接的关系\n因果律是指所有自然事物之间最重要、最直接（可以间接）的关系。表示任何一种现象或事物都必然有其原因，即“物有本末，事有始终”、“种瓜得瓜，种豆得豆”之意。这一世的生命发展，可以由不同的努力（几种不同的因），而得到不同的发展（不同的果）。 因果关系\n\u0026#8211; 是X（因）与Y（果）之间的作用关系\n唯物因果 辩证唯物主义因果律：即任意宇宙状态都是其之前宇宙状态积累的结果，任意运动状态均是其前运动状态积累的结果。即什么样的因，对应什么样的果，其具有最为广泛的普遍性。\n","date":"2026-04-09T17:17:52Z","permalink":"https://blog.aching.cn/posts/reading-17/","title":"因果法则"},{"content":"自2023年01月24日起开始阅读本书，希望有所感悟及收获！\n乔治·奥威尔，首先是一位社会主义者，其次是一位反极权主义者\n人物 \u0026amp; 设定 人物\n\u0026#8211; 果尔德施坦因：“叛徒”，曾一度是党的核心人员，后来从事反革命。成为反叛党的核心成员。“其反叛党有众多成员”\n\u0026#8211; 温斯顿：被监视的普通人，一名“记录司”。这份工作极易被当作是反对党的成员而被处理掉。\n\u0026#8211; 奥勃良：高高在上的核心成员\n\u0026#8211; 鲁瑟福：以前是漫画家（利用ff讽刺漫画用来鼓舞人们的热情）\n设定\n\u0026#8211; 电幕：所监视人们的工具。无时无刻、无孔不入的监视者人们的言行举止，唯独自身的思想。更多的是通过向思想警察进行举报。\n\u0026#8211; 亦是控制思想的一种手段；“文革”时期的纠察队如是\n\u0026#8211; 思想警察：有点类似于“江青团伙”，但还不知道其是否真的效忠于“老大哥”。江青等人组成的“四人帮”就是一个反动组织。 —— P87\n故事情节 1984年的世界被三个超级大国所瓜分——大洋国、欧亚国和东亚国，三个国家之间的战争不断，国家内部社会结构被彻底打破，均实行高度集权统治，以改变历史、改变语言（如“新话”—Newspeak）、打破家庭等极端手段钳制人们的思想和本能，以具有监视与监听功能的“电幕”（telescreen）控制人们的行为，以对领袖的个人崇拜和对国内外敌人的仇恨维持社会的运转。\n故事中主人公所在的国家大洋国只有一个政党——英格兰社会主义，按照新语，简称英社（IngSoc）。社会也根据与党的关系被分为核心党员、外围党员和无产者（群众）三个阶层。政府机构分为四个部门：和平部负责军备和战争，友爱部负责维持秩序、镇压和严刑拷打，真理部负责宣传、文教和篡改历史，富裕部负责生产和分配。按照新话，分别简称为和部、爱部、真部、富部。\n在大洋国“真理部”从事篡改历史工作的外围党员温斯顿因为在工作中逐渐对其所处的社会和领袖“老大哥”（Big Brother）产生怀疑，并与另一位外围党员裘利亚产生感情，因而成为思想犯，在经历了专门负责内部清洗的“友爱部”的思想改造之后最终成为了“思想纯洁者”。\n摘抄 \u0026amp; 理解 二十世纪政治寓言的经典\n反乌托邦、反极权得政治讽喻小说\n成为受迫的人，同他们一起反对暴君，没有出息才是最大的光荣。\n新中国时期的“劳动最光荣”“一穷二白为革命”\n“战争即和平；自由即奴役；无知即力量。”\n真理部负责新闻、娱乐、教育和艺术；和平部负责战争；友爱部负责维持法律和秩序；富裕部负责经济事物。\n\u0026#8211; “各司其职”的四个部门，讽刺至极。真理部极端的控制这思想；和平部维持“战争与和平”；友爱部使用无情的法律和秩序宣扬如何“友爱”；富裕部掌控着经济命脉。\n千篇一律的时代，孤独的时代，老大哥的时代，双重思想的时代。向未来，向过去，向一个思想自由、人们各不相同，但生活并不孤独的时代——向一个真理存在，做过的事不能被抹掉的时代尊敬！\n\u0026#8211; 思想罪不会带来死亡；思想罪本身就是死亡。\n新话的全部目的是要缩小思想的范围\n\u0026#8211; 文字狱\n“对于\u0026#8217;新话\u0026#8217;”的研究一般都是‘秘密化’的”\n\u0026#8211; 但是《三体》中章北海同付清一起与众学者一起讨论了关于未来的事务，都是公开的行为。且不论结局如何，这种“革命”性的研究和讨论并不一定能为大众所接受。像之前和颂扬聊的，高等教育中一定有思想先进者在讨论关于未来发展的伟大进程（并非都局限于当时的主流思想）\n“最锋利的思想最不能被大众接受”\n\u0026#8211; 赛麦就是冲在最前面的“革命者”，一个革老百姓命的人——P59-60：关于温斯顿“新话”的诞生\n“除非你有一种古老的回忆，记得以前事情不是这样的，否则的话，你为什么觉得这是不可忍受的呢？”\n\u0026#8211; 长久的发展会使人接受而改变习惯，在《西西弗神话》中所提到的“习惯”有一词，有意识地改变自己在这种“无疑是”的说中的状态。如何意识到这种“无意识”的、荒诞的生活。要么成为“无意识”，要么“有意识”的自杀或自愈。\n\u0026#8211; 不属于当下的习惯的习惯（就是能够更快使人意识到“无意识”的生活“荒诞”）\n\u0026#8211; 一种“自我指涉”的命题。如何通过主体证明主体的存在。\n“更想要推倒那道贞洁的墙” —— P78\n“党事不可能从内部来推翻的” —— P80\n\u0026#8211; 可能的事内部腐败，“千里之堤，溃于蚁穴”\n\u0026#8211; 在习大大上台后指挥王岐山领导反腐败工作，重点打击党内的腐败分子，取得了优异的成果，是的中国共产党的领导地位更加稳固\n“无产者不宜有强烈的政治见解”\n“对他们全部要求是最纯洁的爱国之心。凡是需要他们同意加班加点或是减低定量的时候可以加以利用。” —— P82-83\n\u0026#8211; 在如今的中国想要正大光明的谈论政治话题，几乎是不可能的。“政治”在中国是一个敏感词，以国家力量来进行打压。单纯的人民还在为一日三餐而苦恼。\n\u0026#8211; 所谓的时代的大方向，只有站在高处的人才能知晓。而“国运”的顺风车更多的也是被他们所乘坐。\n“一切都消失在迷雾之中了。过去给抹掉了，而抹掉本身又被遗忘，谎言便成了真相。” —— P86\n\u0026#8211; 历史唯物主义能够避免如此。恶意篡改历史是对于历史的不负责，是对历史的践踏。只有正视历史，击球教训和经验，才能避免在未来再次发生悲剧。\n“我懂得方法，我不懂得原因” —— P91\n\u0026#8211; “过去的不但遭到了篡改，而且不断地在被篡改\u0026#8230;从来没有清楚的理解过为什么要从事伪造\u0026#8230;最终动机却使人不解”\n","date":"2026-04-09T17:17:49Z","permalink":"https://blog.aching.cn/posts/reading-16/","title":"一九八四"},{"content":" 现代主义文学属于20世纪资本主义文化的一部分，这种文学不主张用作品去再现生活，而是提倡从人的心理感受出发，表现生活对人的压抑和扭曲。在现代主义文学作品中，人物往往是变形的，故事往往是荒诞的，主题往往是绝望的。\n演变历程 演变 1880年前后，西方主要国家进入迅猛的经济发展和国际扩张阶段，其中尤以英、法、德三国为最。工业化和城市化的进程随之加快，极大地改变了人们的生活，尤其改变了传统农业社会的人际关系结构。19世纪以前田园牧歌式的乡村风光，被充斥着钢筋水泥的巨型城市所取代，人们的价值观、世界观、宗教信仰等受到激烈的冲击和挑战。欧美社会的个人出现了普遍的疏离感、陌生感和孤独感。现代主义文学最重要的“非人化”元素就由此而来。\n发生于1914年－1918年的第一次世界大战，对现代主义文学的重大影响是不可低估的。战争彻底打破了欧洲社会岌岌可危的旧秩序和旧宗法。战争给整个欧洲带来的巨大灾难，致使敏感的知识分子，尤其是文学家和艺术家们，对资本主义的价值体系和伦理体系产生严重的怀疑，并滋生反叛情绪。\n对现代主义文学产生重大影响的事件，还包括1917年爆发于俄国的十月革命。马克思的思想在资本主义价值体系遭遇质疑的时候，一跃成为一种重要思潮，许多现代主义文学家们都直接或间接的受其影响。\n影响因素 在整个19世纪，统治欧洲科学界的是达尔文的进化论和牛顿的力学体系。在其影响下，实证、理性等观念是引导文艺发展的主流观点。但在20世纪初期，现代物理学，尤其是爱因斯坦相对论的诞生，极大动摇了古典物理学的物质宇宙观，科学世界变得微妙、复杂、难于把握。相继诞生的电子论、控制论和信息论进一步毁灭了传统的形而上学观点，甚至极大的改变了语言。科学的发展在一定程度上影响了文学和艺术的发展。例如，作为现代主义文学重要流派之一的未来主义文学，就是在新科技发展的直接影响下诞生的。\n在哲学与文化领域，尼采“重估一切”的极端主张，对德语世界的表现主义文学产生了深远的影响；奥地利精神病学家弗洛伊德的精神分析学理论，引导文学家深入开掘潜意识和无意识领域，直接影响了意识流小说。然而，对现代主义文学影响最大的，却是法国哲学家亨利·柏格森。他的直觉主义理论在一定程度上奠定了整个现代主义文学的理论基调。此外，康德不可知论、荣格的集体无意识理论和克罗齐的直觉美学理论，也对现代主义文学的发展产生了不同程度的影响。\n文艺思潮 单纯从欧洲文学史的角度看，现代主义文学可以看作是19世纪传统的浪漫主义文学向唯美主义文学转变、现实主义文学向自然主义文学转变，均形成危机而另谋出路的结果。\n以王尔德为代表的唯美主义文学，是浪漫主义文学随欧洲民族民主革命的低落而蜕变的产物，其继承了浪漫主义对社会现状的不满，却丧失了浪漫主义的批判与重建精神，遁入象牙塔，主张“为艺术而艺术”。这一观点直接影响了大批现代主义作家，尤以法国象征主义作家为最。\n而以左拉为代表的自然主义文学，则是19世纪在欧洲盛极一时的现实主义文学蜕变的产物。它强调对外界现实的模仿，侧重描绘遗传和环境对人的决定性影响、病态事物和繁琐细节。可以说，自然主义文学作为桥梁连接了现实主义文学和现代主义文学。\n此外，20世纪欧洲艺术的发展几乎处处与现代主义文学同步前进。20世纪初，以塞尚、高更和梵高为代表的现代艺术的第一批大师主张用宽阔的笔触、粗犷的线条、鲜明的色彩来表现“主观化了的客观”。由于艺术和文学具有密切的亲缘关系，因此整个20世纪现代主义文学的发展都和现代艺术的发展相辅相成，有的时候甚至拧合成一个分支流派，比如超现实主义这一流派就同时包括了绘画、雕塑和文学。\n孕育期 法国诗人夏尔·波德莱尔和美国诗人爱伦·坡被认为是现代主义文学的远祖。波德莱尔的《恶之花》第一次摒弃浪漫主义对田园牧歌生活的歌颂，转而以愤世嫉俗的态度揭露城市的丑恶和人性的阴暗，这奠定了后来盛极一时的法国象征主义文学的创作基调；而爱伦·坡则倡导所谓“使灵魂升华的美”，反自然，反说教，强调形式美和暗示性、音乐性，这些后来都成为现代主义文学中诗歌的重要表现手法。然而严格的说，上述两人并不能算是真正意义上的现代主义作家，但他们的理论和创作却是文学史上“现代主义”这一理念的雏形。 肇始期 19世纪90年代起，法国象征主义文学波及到欧美各国而蔚为一个国际性文学运动，标志着现代主义文学作为西方文学史上一个重要思潮而开始。这20年间出现了很多重要的现代主义作家和作品。法国的象征主义继续发展着，产生了马拉美、瓦雷里等成就斐然的诗人；德语国家的表现主义戏剧正式登上国际舞台；爱尔兰出现了自己的“文艺复兴运动”，其领导人物叶芝是这一时期英语作家中成就最高者。在小说创作上，波兰裔英国作家康拉德的作品已经出现暧昧的现代主义元素，而法国的普鲁斯特则完成了鸿篇巨著《追忆逝水年华》，成为意识流文学的先驱。\n早期现代主义文学的发展并不局限于法国、英国和德国，也波及到欧洲其他国家。如比利时的法语剧作家梅特林克创作梦幻剧《青鸟》；奥地利诗人里尔克把法国象征主义引入德语世界；瑞典剧作家斯特林堡以其代表作《走向大马士革》奠定了表现主义戏剧鼻祖的地位。\n总体上看，这一时期的现代主义仍是比较庞杂的，许多作家的风格仍较暧昧，不如晚期成熟。大多数早期现代主义作家都经历了从其他文学流派转向现代主义的过程，比如叶芝早年的诗歌具有唯美主义的因素，感情纤细，而晚年的作品则彻底转变为纯粹现代主义的抽象化。\n鼎盛期 这一时期，现代主义文学各流派纷至沓来，欧美文坛出现前所未有的繁荣。除法国象征主义文学得以继续深入发展外，意大利的未来主义文学、英美的意象主义文学和法国的超现实主义文学也相继诞生。意识流文学正式成为现代主义文学所有流派中的中流砥柱，产生了一批杰出的文学大师和作品。表现主义戏剧跨越德语国家的界限，传入美国。几乎所有最重要的现代派作品都在这一时期问世，如卡夫卡的《变形记》（1912年）、乔伊斯的《尤利西斯》（1922年）、托马斯·斯特尔那斯·艾略特（T.S.艾略特）的《荒原》（1922年）、尤金·奥尼尔的《琼斯皇》（1922年）等等。这一时期的特点是英、美、法、德、意各有自己的现代主义流派，而巴黎则是整个西方现代主义文学艺术的大本营。现代主义文学在1920年代发展至顶峰。 衰退期 从1920年代开始，由于世界经济恐慌和国际法西斯主义的崛起，以及苏联国内的清党扩大化运动，导致国际形势日益复杂起来。爆发于1939年的第二次世界大战毁灭了现代作家试图建立战后文艺新秩序的梦想，现实主义文学开始在欧洲出现短暂的复苏。第二次世界大战导致一战后对资本主义社会秩序的一切建构重新坍塌，知识分子对资本主义价值观、伦理的思考逐渐由“非理性”转向“虚无”，存在主义哲学应运而生。以法国作家萨特和加缪为代表的存在主义文学迅速发展，不过这已经超出了正统的现代主义文学的范畴，而成为“后现代主义文学”的第一个重要分支流派了。\n尽管这一时期产生过一些重要的现代主义作品，如艾略特的《四个四重奏》等，但正统的现代主义文学大势已去，开始为后现代主义文学所取代。\n后现代 矛盾 后一句话推翻前一句，全书的叙述者摇摆于不可调和的欲望之间。贝克特的小说《无法命名者》里的结束语是个绝妙好例：“你必须讲下去。我不能讲下去，我愿意讲下去。”美国作家勒那德·米凯尔在一篇短篇小说中讲过，“靠虚构或不靠虚构，人都没法生活。”小库特·冯尼格（Kurt Vonnegut Jr，1922－2007）的《猫的摇篮》（Cat’s Cradle，1963）里的宗教是建立在这样的基础上的：“令人伤心的是必须粉饰现实，同样令人伤心的是实在无法粉饰现实。”后现代主义文学中的人物在性别上往往是模棱两可的，例如布力吉德·勃罗菲的作品《在运输中》的一个叙述者记不清自己是男性还是女性。在约翰·巴思的小说《牧羊郎加尔斯》中的主人公及其所爱者在口答“你是男人还是女人？”时一律说：“又是，又不是。” 排列 后现代主义作家有时把几种可能性组合排列起来，以显示生活和故事的荒谬。例如贝克特的《华特》里有整整一页半如下的叙述： “至于他那两只脚，有时每只脚都穿一只短袜，或者一只脚穿短袜，另一只脚穿长袜，或一只靴子，或一只鞋，或一只拖鞋，或一只短袜和靴子，或一只短袜和鞋子，或一只短袜和拖鞋，或一只长袜和靴子。或一只长袜和鞋，或一只长袜和拖鞋。”贝克特的人物力图把数学的次序强加于经验上面，因为他在这个世界上找不到哲学的次序。 不连贯性 上述的排列法打断了行文的连贯性。现代主义作品，如《荒原》是连贯的，只要我们能辨认出它的哲理基础；而后现代主义文学则怀疑任何一种连贯性。这方面的一个常见的情况是一篇小说以极简短的互不衔接的章节、片断来组成，并从编排形式上来强调各个片断的独立性。 随意性 后现代主义作品的创作和阅读成了一种随随便便的行为，如约翰逊的活页小说，任读者去拼凑阅读的次序，从哪一页读起都可以。 比喻引申 有些后现代主义作家有意识地把比喻引申成独立的故事，再也不回到原来的上下文中去了。 作者的意图是向读者提供形形色色的繁复材料，使他无从得到综合的认识，借以表示现代世界之不可解释。 虚实结合 洛奇并没有谈及后现代主义和现代主义的关系问题。他所列举的六种写作方法上的特点在现代主义作品中也有表现，也许在程度上没有后现代主义那么严重。他的见解可以看作哈桑的补充。另外，英国诺丁汉大学讲师阿兰·洛德曼在《后现代主义展望》（1981）一文中也认为后现代主义只是现代主义的余波（中译文见《外国文艺》 1981年第 6期）。 衍生流派 象征主义 意义 象征主义是西方现代主义文学运动中出现最早、影响最大的文学流派，它分为前后两个时期。前期象征主义流行于19世纪后半叶的法国。第一次世界大战后，后期象征主义应运而生，20世纪20年代，后期象征主义达到高潮。 象征主义具有鲜明的特征：创造病态的“美”；表现内心的“最高真实”；运用象征暗示；在幻觉中构筑意象；用音乐性来增加冥想效应。它发展了前期象征主义的艺术特点，反对肤浅的抒情和直露的说教，主张情与理的统一，通过象征暗示、意象隐喻、自由联想和语言的音乐性去表现理念世界的美和无限性。 代表作家：法国瓦雷里、奥地利里尔克、美国庞德、爱尔兰叶芝和英国T·S·艾略特。 代表作品 英国T·S·艾略特：《荒原》（1922） 法国诗人瓦雷里：《海滨墓园》（1926），思索人生的意义，礼赞永不停息的宇宙运动，抒发超越死亡意识后的欢欣。哲理的沉思与新奇、富有象征性的意象水乳交融，音韵和谐优美，意境深远。 爱尔兰诗人、剧作家叶芝：《驶向拜占庭》，叶芝由于“表达了整个民族精神”而获得了1923年度诺贝尔文学奖。 比利时的梅特林克：象征主义戏剧的代表作家，《青鸟》（1908，蒂蒂尔、弥蒂尔、白丽伦），青鸟象征着幸福，主题是歌颂人们对幸福和光明的追求。 勃洛克：俄国“极端真诚的诗人”，《十二个》（长诗） 意象派 意象派是什么：象征主义的一个变种。\n意象派诗歌的特点：清晰、精确、浓缩、具体，不宣泄感情，不宣讲道理。重在表现诗人的直观形象，但作者的直观感受并不直接表露，而是通过意象来暗示。\n代表人：美国的庞德，《地铁车站》（典型的意象诗）\n隐逸派（象征主义派生出来的另一个诗歌流派）：\n创始人：翁加雷蒂\n代表作家（翁加雷蒂的两位弟子）：夸西莫多和蒙塔莱\n表现主义 简介 表现主义是第一次世界大战前后20世纪初至30年代流行于欧美文学地一个重要的现代主义流派。起源于德国，它首先从绘画开始，随后波及文学。\n最早出现于德国评论家瓦尔登在《狂飚》杂志上发表了一篇绘画评论，强调要突破事物的外在表象，表现内在世界，用“表现”取代“再现”。\n表现主义的特征：抽象化；变形；面具的运用；时空的真幻错杂；注重声光效果；象征和荒诞的手法。其理论纲领是“艺术是表现不是再现”，主张文学不应再现客观现实，而应表现人的主观精神和内在激情，表现透过表象所把握到的事物的本质，对事物外在形态的精确描绘毫无意义。其诗歌情绪炽烈、雄辩，追求力度，抒情方式夸张，常采用浓缩的诗句。戏剧和小说常采用抽象的象征手法表现深刻的哲理和主题。\n表现主义的先驱是瑞典作家斯特林堡，其《鬼魂奏鸣曲》等剧作把鬼魂搬上舞台，让死尸、幻影、亡魂、活人同时登场。\n代表作品 在诗歌上：\n奥地利的特拉克尔和韦尔弗（《世界之友》、《彼此》），德国的海姆、贝恩\n在戏剧上：\n美国的尤金·奥尼尔：《琼斯皇》（1920）作者将表现主义艺术手法融于自己的创造，形成独具特色的“奥尼尔派”表现主义剧作的典范作品。《毛猿》（1921），副标题是“古代和现代生活的八场喜剧”。主人公：扬克\n瑞典的斯特林堡：《到大马士革去》、《鬼魂奏鸣曲》\n在小说上： 奥地利的卡夫卡：表现主义小说的代表。《城堡》（1915）、《变形记》（1915）\n意识流 简介 意识流小说是20世纪初期（20年代）兴起于西方，以表现人们的意识流动、展示恍惚迷离的心灵世界为主的小说。认为文学应表现人物的意识流动，尤其是表现潜意识的活动，人的意识流动遵循的是“心理时间”，而非物理时间。 它以象征暗示、内心独白、自由联想等意识流的创作方法为主要特征，在本世纪20—30年代英、美、法等国形成一个颇为壮观的现代主义文学流派。 意识流小说家所运用的艺术手法各有侧重，但艺术特征是共同的：“作家退出小说”；情节淡化；大量的内心独白和自由联想；时空交替和心理时间；象征暗示和对比联想；语言使用上的创新和变异。 代表作家是爱尔兰的乔伊斯和英国的伍尔芙，法国的普鲁斯特和美国的福克纳。 详细解说 内心独白：意识流小说直接展示所思所感，展示心理的原生态，不加以条理化、逻辑化，作家退出小说，主观干预较少，注重表现人物的意识活动本身。 采用自由联想的方式，在某对象上稍许停留，任何外在的刺激都可以打断从前的思维过程而展开新的思绪。 主观性、随意性强，常打破时空限制，跳跃性较大，从心理结构组织流程，而传统小说多在时空的推移中展开情节。 内容和题材上，传统小说往往全知全能，而在意识流小说中作家地位下降，读者的参与性加强，不注意刻画典型人物，凭借人物的意识来写人，情节淡化。 代表作品 爱尔兰的乔伊斯：《都柏林人》、《青年艺术家的肖像》\n英国的伍尔芙：《墙上的斑点》、《到灯塔去》\n法国的普鲁斯特：《追忆似水年华》\n美国的福克纳：“南方文学”的主要代表，创造了一个独特的“约克纳帕塔法世系”。\n《喧哗与骚动》（1929），反映了南方望族康普生家的没落。小说创造了复合意识流方法，使运用意识流手法去发掘人物的内心生活方面达到了新的高度。着重表现昆丁的变态心理和班吉神经错乱的潜意识活动。人物（长子昆丁、二子杰生、小儿子班吉、女儿凯蒂）\n超现实 20年代兴起于法国，它由[[现代主义文学#达达主义|达达主义]]发展而来。1919达达派诗人：布勒东(创始人)发表了第一个《超现实主义宣言、阿拉贡（《共产党人》，社会主义现实主义作品，反法西斯）、艾吕雅。 他们认为文学不是再现现实，而是要表现“超现实”，即由“梦幻与现实转化成的绝对现实”，是现实与非现实两种要素的统一物。在内容上为了描绘超现实，他们反对逻辑推理的思维活动，推崇潜意识和梦，甚至让文学成为梦幻、潜意识乃至精神错乱的产物。强调梦幻、贬斥理性，成为其美学的重要标志。他们主张写人的潜意识、梦境，写事物的巧合，并提出“自动写作法”来作为表现上述内容的创作方法。 主要作家及其作品：布勒东《娜佳》、阿拉贡《巴黎的乡下人》、艾吕雅诗歌《和平咏》、《溺水者》、苏波 存在主义 简介 代表人物：西蒙娜·德·波伏娃\n存在主义滥觞于20世纪30年代的法国，二战后达到发展的顶峰。它是现代派文学中声势最大、风靡全球的一种文学潮流。\n存在主义文学在存在主义哲学基础上产生，它是以文学的形式宣传存在主义哲学思想。其特征是理性多于形象；核心是“存在先于本质”、“世界是荒谬的”，“人生是痛苦的和自由选择”，只有通过自由选择寻找生存之路。\n“荒谬”和“痛苦”是存在主义文学的基本主题。世界是荒谬的，人生是痛苦的，一方面描写资本主义世界的荒诞性，另一方面表现人的不幸与毁灭，以及孤独、失望、恐惧的思想情绪。\n艺术上，第一：存在主义文学寓哲理于形象中。第二：不拘一格地运用表现手法，传统的和现代的并用。\n存在主义作家主要有法国萨特、[[书单索引#加缪|加缪(荒诞派）]]和[[书单索引#西蒙娜·波伏娃|西蒙娜·德·波伏娃]]以及美国作家诺曼·梅勒。\n代表作品 法国加缪：《局外人》（1942）、《鼠疫》（1947，里厄医生）\n法国萨特：《恶心》（小说）、《自由之路》（小说）、《墙》（短篇小说集）、《死无葬生之地》（戏剧）、《苍蝇》（戏剧）、《禁闭》（戏剧，表明“他人就是地狱”〔L\u0026#8217;enfer, c\u0026#8217;est les autres〕）、《必恭必敬的妓女》（戏剧）、《存在与虚无》（哲学著作）、《存在主义是一种人道主义》（哲学著作）\n法国波伏娃：《女客》、《第二性》\n诺曼·梅勒：《一场美国梦》\n荒诞派 简介 代表人物：尤金·尤涅斯库\n兴起于法国，尔后迅速风靡于欧美其他国家的一个反传统戏剧流派。\n荒诞派于1962年由英国著名戏剧理论家马丁·艾思林写的《荒诞派戏剧》而得名。\n荒诞派戏剧的特征：荒诞、抽象的主题，世界是荒谬的，人生是毫无意义的；支离破碎的舞台形象；奇特怪异的道具功能，使戏剧的直观艺术特点发挥到极限。在内容上表现世界的不可理喻，人生的荒诞不经；在艺术手法上则打破了传统的戏剧结构，用不合逻辑的情节、性格破碎的人物、机械重复的戏剧运动和前言不达后语的枯燥语言来从总体上突现世界荒诞的根本主题。它没有完整的情节，没有戏剧冲突，舞台形象支离破碎，人物语言颠三倒四。它表现的世界是荒诞的，人生是痛苦的，人与人的关系是无法沟通的。\n法国尤奈斯库是荒诞派戏剧的奠基人，其独幕话剧《秃头歌女》的上演，标志着荒诞派戏剧的诞生。\n代表作品 英国哈罗德·品特\n美国阿尔比\n爱尔兰贝克特：《等待戈多》\n法国阿达莫夫\n法国热奈特\n法国尤奈斯库：《秃头歌女》（1949，史密斯夫妇、马丁夫妇）、《椅子》（1959）、《犀牛》（1958）\n新小说派 简介 代表人物：玛格丽特·杜拉斯\n形成于20世纪50年代的法国，后成为二战后法国和西方最重要的小说流派之一。又称反小说派或拒绝派。\n他们认为世界是荒诞、虚无地和不真实的，传统小说是对读者的愚弄和欺骗，小说以描写人物性格和情感为主的时代以及过去。反对传统小说的倾向性，主张作家原封不动地照搬荒诞世界的存在，不赋予它任何意义和感情色彩。新小说屏弃情节和人物，拼贴散乱的片断。以物代人，创立纯粹写物的风格。倡导读者参与创作，重建小说的人物与情节。\n代表人物有阿兰·罗布-格里耶、米歇尔·布托尔、娜塔丽·萨洛特、克洛德·西蒙、杜拉斯。\n代表作品 法国萨洛特：第一个写新小说\n法国西蒙：“新小说派之父”，《风》(1985年获诺贝尔文学奖)、《佛兰德公路》\n法国阿兰·罗布-格里耶：《窥视者》：获法国1995年的“评论家奖”，《橡皮》（1953，杜邦、格里纳达端、瓦拉斯，写政治谋杀案）\n黑色幽默 简介 代表人物：约瑟夫·海勒\n黑色幽默”是60年代风行美国的一个现代主义小说流派。由美国作家弗里德曼编的一个《黑色幽默》的集子而得名。\n黑色幽默”是一种用喜剧的形式来表现悲剧的内容的文学方法。黑色是指可怕而又滑稽的客观现实，“幽默”指的是有目的有意志的个性对这种现实所采取得嘲讽态度。幽默加上了黑色，就成为了一种展现绝望的幽默。西方评论家把它称之为“绞刑架下的幽默”。\n黑色幽默的艺术特征：\n是一种哭笑不得的幽默，悲剧内容和喜剧形式交织的混杂，表现世界的荒诞、社会对人的异化、理性原则破灭后的惶惑、自我挣扎的徒劳，是其中心内容。面对这一切，人们发出玩世不恭的笑声，用幽默的人生态度拉开与现实的距离，以维护饱受摧残的人的尊严，即所谓的“黑色幽默”。\n“反英雄”式的人物：人物精神世界常常趋于分裂，成为带有悲喜剧双重色彩的“反英雄”，借他们可笑的言行影射社会现实，表达作者对社会问题的看法。\n“反小说”的叙事结构法：通过暗示、烘托、对比、象征形式表现扑朔迷离的情节。打破理性化的时间顺序，加速节奏的跳跃，情节缺乏逻辑联系，常把叙述现实生活与幻想回忆混合起来，把严肃的哲理和插科打诨混成一团。笔法富有反讽意味，语言经常打破一般语法规则和固有的词语搭配习惯。\n具有寓意性。\n美国约瑟夫·海勒，被认为是“黑色幽默”的一面旗帜。还有冯纳古特、托马斯·品钦、巴思、巴塞尔姆和法国维昂。 代表作品 海勒：《第二十二条军规》\n冯纳古特：代表作《第五号屠场》、《猫的摇篮》（1963，博克侬、麦克凯布）\n托马斯·品钦：《万有引力之虹》\n魔幻现实 相关 代表人物：加西亚·马尔克斯\n魔幻现实主义指的是20世纪中期拉丁美洲小说创作中的一个流派。发端于20世纪三四十年代，至60年代后成为拉美小说创作的主流。它的兴起被称为“拉美文学的爆炸”。代表人物有危地马拉的阿斯图里亚斯、古巴的卡彭铁尔、墨西哥的鲁尔弗和哥伦比亚的马尔克斯。\n魔幻现实主义是通过“魔法”所产生的幻景来表达生活现实的一种创作方法。魔幻是途径，表现生活现实是目的。用魔幻的东西将现实隐去，展示给读者的是一个循环往复的、主观时间和客观时间相混合、主客观事物的空间失去界限的世界。艺术上则在现实描绘中引入大量超自然因素，奇迹、幻觉、梦境甚至鬼魂形象出现于小说情节中，时序关系常被打乱，叙述富于跳跃性，有时场面带有象征色彩，显示出鲜明的地狱和民族特点。它堪称是“移植”和“寻根”相结合的成功范例。它既是对现实的深刻开掘，又是对历史的严肃反思；既有对本大陆传统文化的寻本探源，又有对欧美现代主义的广泛吸收。首先在拉丁美洲使用“魔幻现实主义”这一术语的人是委内瑞拉作家：彼特里。\n真正成熟的标志是墨西哥作家鲁尔福的中篇小说《佩德罗·帕拉莫》。\n本世纪60年代，拉丁美洲小说创作中魔幻现实主义形成热潮，以马尔克斯的长篇小说《百年孤独》为标志。\n代表作品 鲁尔福：《佩德罗·帕拉莫》（1955）\n阿斯图里亚斯：《玉米人》\n马尔克斯：《百年孤独》\n未来主义 简介 是现代西方的一种文艺思潮和流派，20世纪初兴起于意大利，创始人意大利的马利奈蒂1909在法国《费加罗报》上发表的《未来主义宣言》宣告诞生，次年又发表《未来主义文学宣言进一步宣布其主张。认为20世纪的飞速发展，使世界根本改观，机器与技术、速度与竞争成为时代主要特征，未来主义应具有现代感觉，歌颂进取性的运动和机器文明，赞美速度的美和力量。认为既往的文化都已腐朽，无法适应当今的时代，提出摒弃全部文化遗产，不满现存秩序。\n文学艺术的主题上：调动一切艺术手段，集中表现运动中的物和人，通过动态来赞美运动感、力感和立体风格。\n艺术形式上：未来主义者主张彻底摒弃传统手法。\n代表作品 俄国马雅可夫斯基的长诗：《穿裤子的云》\n法国阿波里奈尔：首创“楼梯式”的诗歌形式。\n达达主义 现代西方文艺流派。第一次世界大战期间产生于瑞士，1915年来自罗马尼亚的法国诗人斯当·查拉为首的艺术小集体，在苏黎世的咖啡馆里以随手翻到的词语“达达”命名，即是指纯粹出于偶然，没有任何意义，什么也不是。\n对文化传统、现实生活、艺术规律采取极端反叛的态度，反映了第一次世界大战期间欧洲青年一代中的一部分人的苦闷心理和寻找出路的状态。\n代表作家：布雷东、苏波等。\n垮掉一代 简介 代表人物：杰克·凯鲁亚克\n是二战后风行于美国的文学流派，作家多为男女青年，他们以性格粗犷豪放。落拓不羁著称。用同性恋、爵士乐、吸毒酗酒等来逃避现实并向体面的社会和美国传统价值观念挑战，提出“沉沦就是解放”和纵欲享乐合法的结论,他们用怪僻的内向自我探索和向下沉沦的所谓“脱俗”态度来表示对体面社会的不满，来对社会进行病态的反抗。\n先锋派 [[先锋文学]]\n","date":"2026-04-09T17:17:45Z","permalink":"https://blog.aching.cn/posts/reading-15/","title":"现代主义文学"},{"content":"待补充 定义\n先锋文学，是[[现代主义文学|现代主义文学]]的一个重要流派。 一小群自我意识十分强烈的艺术家（包括作家），根据“不断创新”的原则，打破公认的规范和传统，不断创造新的艺术形式和风格，引进被忽略的、遭禁忌题材。 先锋派的艺术家们经常自我表现出“离异”既定的秩序，从中宣布自己的“主体性”，他们的目标是震撼受传统影响的读者的感受能力，向传统文化的教条和信念发起挑战。 历史渊源 何为“先锋”？其原义来自法国著名的《拉鲁斯词典》——所谓先锋是指一支武装力量的先头部队，其任务是为这支武装力量进入行动做准备（军事术语），“先锋”这个术语的历史，始于法国大革命，再转向文化和文学艺术术语（始于19世纪初）； 无论是军事先锋还是政治先锋，亦或是文化先锋，都有一个共同的特点：“==起源于浪漫主义乌托邦及其救世主式的狂热，它所遵循的发展路线本质上类似比它更早也更广泛的现代性概念。==”说白了==现代主义也就是“先锋派”==！它包括了“象征主义，未来主义，达达主义，意象主义，超现实主义，抽象派，意识流派，荒诞派等等” 其倾向就是==反映现代西方社会中个人与社会，人与人，人与自然，个人与自我间的畸形的异化关系，及由此产生的精神创伤，变态心理，悲观情绪和虚无意识==。 ","date":"2026-04-09T17:17:41Z","permalink":"https://blog.aching.cn/posts/reading-14/","title":"先锋文学"},{"content":"神：是少数上层集权者创造出来，用于控制底层人民的思想工具。\n","date":"2026-04-09T17:17:38Z","permalink":"https://blog.aching.cn/posts/reading-13/","title":"西西弗神话"},{"content":"人物介绍 悉达多 \u0026#8211; 主人公\n是一位英俊的婆罗门之子，与挚友乔文达一起长大。常与饱学之士互相讨论，同他们一起修习禅观冥想的法门。后自觉知识成了限制自己求得神我，变放弃婆罗门的生活成为了一名沙门。\n悉达多是一位善学、善思，能够灵活运用知识的一位智者。在与大觉世尊的对话后能够顿悟出自我而非神我 乔文达 \u0026#8211; 悉达多的挚友\n[[悉达多里的章节故事|故事情节]] 第一章 第二章 第三章 第四章 摘抄 \u0026amp; 理解 \u0026gt; 以下笔记使用 上海三联书店-徐进夫所译《流浪者之歌》 ——2022.11.14 “如今事情居然已经过去，就让它过去吧，不要因了自备别人而损害你自己吧” —— P136\n起因是悉达多在同每一个村庄进行谈判时迟到，导致原先的粮食被先到的商人买走了。但其却没有立即返回，而是在村中与村民们一起游玩。回去后渴慕斯华美批判其行为，认为其不是一个合格的商人。但悉达多却不在意。他认为这次旅途是没有白费的，不仅与同村民们一起游玩给了他们一些钱财，同时也与他们打好关系，在下一次卖货时村民能够优先考虑我们。 这是一种豁达、一种顺其自然的心理状态 “悉达多跟那些苦行沙门学了不少东西，他学到了许多消除自我的方法”\n“他每日亡我千次，到了天黑便住在空无之中”\n“这些道路虽然将他引离了自我，但到末了它们有重新将他带回自我” —— P58\n疑问的排斥自我是不可取的亦是不可能的。当在否定自我的时候，其实已经验证自我的存在。 “什么是静坐观思？什么是舍弃身相？什么是斋戒断食？什么是屏住呼吸？那是逃避自我，只是真是避开一下自我的折磨而已，只不过只只是缓和一下人生的痛苦和愚妄罢了。” —— P59\n“我相信，万法的本质里，具有某种不可称为学识的东西。朋友，世间只要一种学识——那就是神我——它无处不在：在我里面，也在你里面，在一切造物里面。而我开始相信，这种学识的最大敌人，莫过于知识分子；达到它的最大障碍，莫过于知解学问” —— P62\n“在我们似是深深的那一切，还剩些什么？毕竟还剩什么？还有什么可以==保存==的？因此，他摇了摇头” —— P63\n问：神圣的一切是什么？ 答：目前所接触到的已经没有接触到的知识传承。 剩下的是不可称之为学识的东西“神我”。但究竟是什么却不得而知。 “悉达多的意念真服了这位苦行沙门的意念；后置只有请听候吩咐的份儿了” —— P67\n问：这里的“意念”指的是什么。 答：前文有提到“法术”一词，而苦心沙门所坚持的是消除自我每个沙门心中所坚信消除自我便能够实现“神我”。可能这便是“意念”吧。 “法术”一词同时印证了下文中“你就学会水上行走”。 “乔文达，我的朋友，你自己跨进了一步，你已经选择了你自己的道路。乔文达，你一直做我的朋友，一向赶在我后头。” —— P80\n此处的理解结合网上的资料 确实跨进了一步，结合后文能够发现，仅仅跨出了这一步，而且后半生一直在这条道路上摸索着。而做为悉达多的影子，如今依旧成为了大觉世尊的影，依旧被“知识”所束缚着。 “你已放弃了你的家园和双亲。你已放弃了你的身份和财产，你已放弃了你一己的意欲，你放弃了友谊的牵绊。这正是那种教义所开示^[开示：高僧为弟子和信众说法]的，这正是世尊的志愿所在。这正是你寄望你自己的地方。” —— P81\n当下的我不理解在求道之途上要抛弃自己的七情六欲乃至双亲都不可避免。这难道不是一种自私么？对于亲朋而言，失去以为亲人、友人无疑是痛苦的，不能接受的。 正如悉达多的父亲，在悉达多想他请愿希望自己成为苦行沙门时，父亲连夜不停来看望着在厅中矗立了一晚的悉达多，最后任然是同意了他的决定；其原因是父亲理解到悉达多的心已经远去，自己也已经不能在教导他什么了，不如放手，让其见识到世间精彩。 “世尊志愿所在”是指那些苦难之人吧，即失去双亲与挚友的孤独者。需要的是精神的寄托。于是便有了“寄望你自己”罢。 “世尊，最重要的一点是：我很敬慕您的教言。您所说的一切，悉皆明白透彻，都已得到验证。您指出，这个世界是一条连续不断的锁链，一切的一切，皆由因果连在一起。关于这一点，从来没有人说的这样清楚，从来没有人做过如此不可反驳的举证。不用说，每一个婆罗门，只要透过您的教义去看世间，都会因为发现它前后一贯、没有任何缝隙可乘，澄澈得犹如琉璃水晶，即非出于偶然，亦非诸神造成，而感到心跳加剧。不论世间是善是恶，不论人生是苦是乐，不论它是否实在——这也许是无关宏指的一点——单看这个世界的完整统一，一切万法的有条不紊，以及其中的大小相含——悉皆出自同一个根源，出于同一个生、住、异、灭的[[因果法则]]。所有这些，世尊，悉皆从您那殊胜的教示发出清澈的光明。都是照您的教理来说，一切万法的这种完整统一和逻辑的因果关系，有一个地方含有一个破绽。某种新奇的东西，某种新颖的东西，某种从未有之，现在也无法举证的东西：亦即您那==超越这个世界的解脱之说==，由一个小小的裂缝，流进了这个完整统一的世间。这个完整而又统一的世界，就因有了这个小小的裂缝，就因有了这个小小的漏洞，而在读崩溃了下来。” —— P83\n因果法则中解释了大觉世尊的教义。难以想象悉达多此时便已觉察到缝隙所在。 “您是以您自己的努力，以您自己的办法，利用思维，运用禅定，透过知识，经由觉悟达到这个目的” —— P84\n亲身经历感受的都是不可言说的。成就与自己的才是实现神我的唯一途径。 “佛陀已经打劫了欧文，悉达多心里知道。但他虽打劫了我，却也给了我更有价值的东西。他劫去了我的朋友，因为这位朋友原本也是相信我的，如今却信奉他去了；==这位朋友原是我的影子，如今却做了他的影子去了==。但他却给了我悉达多，给了我自己。”\n在最求神我的途中发现知识所能改过的并不完全，教言并不能传授在“悟”中的所有 于是开始了对“自我”的追求。 高光部分对应了 ","date":"2026-04-09T17:17:34Z","permalink":"https://blog.aching.cn/posts/reading-12/","title":"悉达多"},{"content":"WiKi百科 文化大革命 \u0026#8211; 维基百科\n\u0026#8211; 无产阶级文化大革命，通称文化大革命、简称文革，是中华人民共和国历史上的一场全国性政治运动，于==1966年5月16日－1976年10月6日==间发生在中国大陆境内。文革是毛泽东发动的一系列政治运动之一，==始于1966年5月16日出台的《五一六通知》==，因其时间长达十年之久，且对中国社会造成了巨大的破坏，故也被后世==称为十年内乱、十年动乱、十年浩劫==。此前，三面红旗的挫败造成了三年大饥荒中数千万人的死亡，作为中国共产党中央委员会主席的毛泽东被迫退居二线。\n\u0026#8211; ==中国官方==认为，毛泽东为了防止资本主义复辟，为了消除党和政府中的腐败、特权、官僚主义等现象而发动文革；\n\u0026#8211; 也有==学者==认为，毛泽东在中央文化革命小组协助下发动文革，以“反苏修、反美帝”为口号，以革命名义攻击“走资派”，尝试重回党核心。\n\u0026#8211; 文革在此后的一两年内达到高潮，红卫兵在中国大陆进行全方位的阶级斗争，造反派大规模夺权、建立革委会以取代党政机关，公检法体系被摧毁，大规模武斗导致全面内战，对毛泽东的个人崇拜也达到顶峰；此后“清理阶级队伍”、“一打三反”、“清查五一六”等政治运动席卷全国。中共右派及温和派人物权力多遭剥夺，民间黑五类及子女遭到广泛迫害，而当政极左派亦互相争权内斗、导致原定接班人林彪在九一三事件中死亡，党内四人帮势力逐渐扩大并与毛、周等人保持周旋。1975年，第四届全国人民代表大会重新修订了宪法，国家主席和副主席的职务被废除，平息了之前的争议，“毛泽东思想”以及文革四大等继续文革的内容被写入《七五宪法》。\n\u0026#8211; 1976年9月9日，毛泽东逝世；10月6日，继承者华国锋、叶剑英、汪东兴等人于北京怀仁堂一举粉碎四人帮，持续十年的文革结束。 据不同学者研究估计，十年文革导致的中国大陆非正常死亡人数，约为200万到2000万不等。从北京的“红八月”起，诸多地区发生了大屠杀，包括广西文革屠杀（及大规模人吃人事件）、内蒙古内人党事件、广东文革屠杀、云南文革屠杀、湖南文革屠杀等，亦爆发了二十世纪世界上最重大的人为技术灾难“河南‘75·8’水库溃坝”。文革期间的武斗以及官方鼓励的批斗、抄家及告密等过激行为，使中国传统文化与道德沦亡、整体经济受严重影响、受迫害人数以千万计，亦有大量文物古迹在“破四旧”中遭红卫兵破坏。 众多中共中央领导人被视为走资派而遭迫害，如时任国家主席==刘少奇==、十大元帅==彭德怀==及==贺龙==、政治局常委==陶铸==等人被迫害致死，==邓小平==、==陈云==等人被下放，==习仲勋==、==薄一波==等人被打倒监禁，==半文盲农民陈永贵则进入中共中央政治局==。 此外，中国的科研教育也受到重大冲击，知识分子成为被首要打倒的对象之一，被视为资产阶级反动学术权威、臭老九，受到广泛的批判和迫害。“两弹一星元勋”中，姚桐斌被毒打致死、赵九章受迫害自杀身亡，其他著名知识分子如老舍、梁思成、傅雷、熊十力、田汉、翦伯赞、吴晗等也受迫害身亡，钱学森等少部分人则因国务院总理周恩来于1966年特别列出的《一份应予保护的干部名单》而受到保护。与此同时，文革期间高考停止，上千万知识青年进行了上山下乡运动。 1978年12月中共十一届三中全会召开，在文革结束及一连串政治斗争后，中共中央形成了以邓小平为核心的第二代领导集体，开启了拨乱反正、平反冤假错案，进行改革开放，并修订了《八二宪法》，而文革藉毛泽东的权势推动路线斗争的极左派下台后多被整肃，逐渐消减毛泽东时代的激进色彩。1981年6月，中共十一届六中全会选举胡耀邦接替华国锋出任中央委员会主席，并通过《关于建国以来党的若干历史问题的决议》，公开全盘否定文革，并将其确立为==“由领导者错误发动、被反革命集团利用，给党、国家和人民带来严重灾难的内乱，造成全面而严重的危害”==。 2016年，文革五十周年之际，《人民日报》发表社论再次全面否定文革。2021年11月，中共十九届六中全会通过的《历史决议》保持了对文革的全面否定。 至今，文化大革命的部分问题和对毛泽东的评价在世界各地仍然具有极大的争议性，包括文革遗毒残留，而中共并==未彻底清算文革==、同时==限制反思==也一直饱受批评。中国的毛左派和新左派人士认为文化大革命在改革开放后被人为的妖魔化，而自由派人士则认为毛泽东应该对文革后果负主要责任。 ","date":"2026-04-09T17:17:30Z","permalink":"https://blog.aching.cn/posts/reading-11/","title":"文化大革命"},{"content":"自2022年11月22日起开始阅读本书，希望有所感悟及收获！\n创作背景\n本书是由加拿大女作家 玛格丽特·阿特伍德 创作的长篇小说，发表于1985年。\n本书是以架空的历史为背景，发生在未来的反乌托邦类型的作品。整体故事发生在虚构的基列共和国，在未来的时代，由于环境污染和生态被严重破坏，人类的生存率和生育率降低，信奉教旨的极端分子掌握政权，男权至上，男人占据绝对的统治地位，女人则彻底沦为男性的附属品，被区分为不同的等级。使女就是这其中一个等级，也是整个故事的讨论核心。\n人物关系 故事情节 摘抄 \u0026amp; 理解 思想只会使希望破灭，而我打算活下去。 —— P7\n眼下对于你们来说，这一切可能显得有些不太正常，但过上一段时间，你们就会习以为常，见多不怪了。 —— P37\n强权的压迫使得女性权益收到严重的打击 顺从。无奈。 但是对于主人公的内心活动描写的十分积极。 尽管那是男女可以互相试婚，随便得很，就像衣服，不合适的尽可一扔了之。\n当代恋爱大多数也会试婚。 ","date":"2026-04-09T17:17:26Z","permalink":"https://blog.aching.cn/posts/reading-10/","title":"使女的故事"},{"content":"四种依恋类型： 安全型：在情感上很容易接近他人，不管是依赖他人还是被他人历来都觉得心安 回避型：希望在亲密关系中投入全部的感情，但经发现他人并不乐意把关系发展到自己的期望。 恐惧型：和他人发生亲密接触使其感到不安 疏离性：即使没有亲密关系也安心 ","date":"2026-04-09T17:17:23Z","permalink":"https://blog.aching.cn/posts/reading-9/","title":"亲密关系"},{"content":"待补充 马克思主义哲学 即是 [[马克思主义哲学#辩证唯物主义|辩证唯物主义]]和[[马克思主义哲学#历史唯物主义|历史唯物主义]] ，而\n辩证唯物主义 ==[[马克思主义哲学#唯物论|唯物论]]、[[马克思主义哲学#唯物的辩证法|唯物的辩证法]] 和 [[马克思主义哲学#辩证唯物主义认识论|辩证唯物主义认识论]]==三部分组成。 辩证唯物主义是马克思主义的一种哲学理论，它是把唯物主义和辩证法有机地统一起来的科学世界观。 它是唯物主义的高级形式。 辩证唯物主义认为世界在本质上是物质的。 唯物论 ==唯物论：辩证唯物论== 一、物质决定意识原理 原理内容：\n\u0026#8211; 物质决定意识，意识是客观存在在人脑中的反映。\n方法论：\n\u0026#8211; 要求我们要一切从实际出发，实事求是。\n二、意识的能动作用原理 原理内容：\n\u0026#8211; 人能够能动的改造世界:意识对改造客观世界具有指导作用（正确的意识促进客观事物的发展，错误的意识阻碍客观事物的发展）；意识对于人体生理活动具有调节和控制作用。\n\u0026#8211; 人能够能动的认识世界:意识具有目的性和计划性,意识具有自觉选择性和主动创造性。\n方法论：\n\u0026#8211; 要求我们一定要重视意识的作用，重视精神的力量，自觉树立正确的思想意识，克服错误的思想意识。\n三、规律的客观性和普遍性原理 原理内容：\n\u0026#8211; 规律是客观的，是不以人的意志为转移的，它既不能被创造，也不能被消灭；规律是普遍的，自然界、人类社会和人的思维，在其运动变化和发展的过程中，都遵循其固有的规律。\n方法论：\n\u0026#8211; 必须遵循规律，按客观规律办事，不能违背规律；\n\u0026#8211; 在客观规律面前，人并不是无能为力的。人可以在认识和把握规律的基础上，根据规律发生作用的条件和形式利用规律，改变客观世界，造福于人类。\n四、自然界的客观性原理 原理内容：\n自然界的事物是按照自身所固有的规律形成和发展的，都有自己的起源和发展史，都是统一的物质世界的组成部分。 方法论：\n承认自然界的客观性是人类有意识地处理人与自然关系的基本前提； 我们在利用自然、改造自然的时候，必须要尊重自然、顺应自然、保护自然，学会与自然和谐相处。 五、物质和意识的辩证关系原理 原理内容：\n物质决定意识，意识对物质具能动作用，正确的意识对事物发展起促进作用，错误的意识对事物发展起阻碍作用。 方法论：\n\u0026#8211; 一方面要求我们做到一切从实际出发、实事求是；另一方面又要重视意识的作用，重视精神的力量，自觉树立正确的思想意识，克服错误的思想意识。\n六、规律的客观性和发挥主观能动性原理 原理内容：\n\u0026#8211; 规律是客观的，不以人的意志为转移，它既不能被创造，也不能被消灭。但人在规律面前并不是无能为力的，可以发挥主观能动性，在认识和把握规律的基础上，根据发生作用的条件和形式利用规律，改造客观世界，造福于人类。（原理内容也表述为，尊重客观规律必须发挥主观能动性，发挥主观能动性必须尊重客观规律）\n方法论：\n\u0026#8211; 要求我们想问题既要尊重客观规律，按规律办事，又要充分发挥主观能动性，把尊重客观规律和发挥主观能动性有机结合起来。\n七、物质和运动的关系原理 原理内容：\n\u0026#8211; 物质是运动的物质，运动是物质的根本属性和存在方式；运动是物质的运动，物质是运动的承担者。\n方法论：\n\u0026#8211; 要用运动、变化、发展的眼光看问题。\n反对：\n\u0026#8211; 离开物质谈运动或离开运动谈物质都是错误的。既要反对离开物质谈运动的唯心主义观点，又要反对离开运动谈物质的机械唯物主义观点。\n八、运动和静止的关系原理 原理内容：\n\u0026#8211; 辩证唯物主义认为，世界上的一切事物都处于运动变化中，运动是无条件的、绝对的；静止是有条件的、相对的和暂时的，是运动的一种特殊状态；物质世界是绝对运动和相对静止的统一。\n方法论：\n\u0026#8211; 既要用运动的观点处理问题，又要看到事物相对静止的存在，坚持绝对运动和相对静止的统一。\n反对：\n\u0026#8211; 反对割裂运动和静止的辩证关系：只承认静止而否认运动的形而上学的不变论，只承认绝对运动而否认相对静止，把事物说成是不可捉摸的不可知论、相对主义和诡辩论。\n唯物的辩证法 辩证唯物主义认识论 历史唯物主义 历史观 价值观 人生观","date":"2026-04-09T17:17:19Z","permalink":"https://blog.aching.cn/posts/reading-8/","title":"马克思主义哲学"},{"content":"自2022年11月29日起开始阅读本书，希望有所感悟及收获！\n","date":"2026-04-09T17:17:15Z","permalink":"https://blog.aching.cn/posts/reading-7/","title":"可能性的艺术：比较政治学30讲"},{"content":"自2022年11月19日起开始阅读本书，希望有所感悟及收获！\n人物关系 故事情节 摘抄 \u0026amp; 理解","date":"2026-04-09T17:17:12Z","permalink":"https://blog.aching.cn/posts/reading-6/","title":"霍乱时期的爱情"},{"content":"活着 \u0026#8211; 读书笔记 自2022年11月24日起开始阅读本书，希望有所感悟及收获！ 2022.11.26结束 故事背景 《活着》讲述了在大时代背景下，随着内战、三反五反、[[大跃进]]、“[[文化大革命]]”等社会变革，徐福贵的人生和家庭不断经受着苦难，到了最后所有亲人都先后离他而去，仅剩下年老的他和一头老牛相依为命。 小说以普通、平实的故事情节讲述了在急剧变革的时代中福贵的不幸遭遇和坎坷命运，在冷静的笔触中展现了生命的意义和存在的价值，揭示了命运的无奈，与生活的不可捉摸。 人物关系 富贵，家珍，凤霞，有庆，二喜，苦根。 龙二，队长。 老全，春生； 故事情节 百度情节 《活着》讲述一个人一生的故事，这是一个历尽世间沧桑和磨难老人的人生感言，是一幕演绎人生苦难经历的戏剧。小说的叙述者“我”在年轻时获得了一个游手好闲的职业——去乡间收集民间歌谣。在夏天刚刚来到的季节，遇到那位名叫福贵的老人，听他讲述了自己坎坷的人生经历：\n福贵出身于地主家庭，年轻时是个浪荡公子，经常去城里的一家妓院吃喝嫖赌。他丈人在城里开了一家米行，福贵每次去妓院后都让一个妓女背着他上街，然后从丈人的米行经过，其品行之放荡堕落可见一斑。后来，福贵中了别人的圈套，把家里的田地、房产都输了个精光，于是全家一夜之间从大地主沦为了穷人。福贵的父亲郁闷而亡。父亲的亡故使福贵也清醒过来，决定重新做人。从此，福贵租地度日，他穿上粗布衣服，拿起农具，开始了他一生的农民生涯。不久，福贵的母亲生病了，他拿了家里仅剩的两块银圆，去城里请医生。但他在城里发生了意外：他被国民党军队抓了壮丁。\n两年后，福贵被解放军俘虏并释放了。福贵回到家里后，知道母亲早已故去，女儿凤霞也在一次高烧后成了聋哑人。福贵后来又经历了新中国成立后的[[土地改革]]、[[人民公社]]、[[大炼钢铁]]、[[三年饥荒]]、“[[文化大革命]]”等时期。在此期间，福贵和亲人生离死别：为了让儿子有庆上学，他把女儿送给了别人，不久，女儿跑了回来，全家重又团圆；县长的老婆生孩子需要输血，有庆被一个不负责任的大夫抽血过量致死，而那县长竟是福贵在国民党军队时的小战友春生。春生在后来的“文革”中经不住迫害，悬梁自尽。\n几年后，福贵的女儿凤霞嫁了人，但却在产后大出血中死去。有庆、凤霞死后，福贵的妻子家珍也撒手人寰，剩下的只有福贵和女婿二喜、外孙苦根。祖孙三代相依为命了几年后，二喜在一次事故中惨死。福贵和外孙苦根同住几年后，苦根也在一次意外中失去了幼小的生命。最后，福贵买了一头要被宰杀的老水牛，并给它取了“福贵”之名，艰难而平静地活着余生。\n自述情节 作者以倾听者的视角讲述了主角富贵青年到暮年时期的故事。\n解决前生活，在一个地主家庭，娶当时镇上米商的闺女(家珍)为妻，并生一儿(有庆)一女(凤霞)；但因好赌将自家产业全部输给了龙二，富贵的父亲也因此在一次如厕时摔死了，就近安葬了，而家珍被娘家接了回去。\n而后家珍还是毅然回到了富贵身边，并为将儿子(有庆)带回来了。一家人本可以好好生活…\n富贵后因为其母亲生病需要看病便去城里请了郎中，但却被国民党的炮兵连拉去当了两年的壮丁，途中结识了春生和老全；春生后来成为了城里的县长，而老全则死在了战场上。\n解放军将富贵放回家后，老母亲去世了，而大女儿凤霞因为一场高烧而失聪。龙二因为成为了地主后依旧反政府，就被枪毙了(一个人挨了五枪)以为生活就些安好，但家珍却患上软骨病，导致后来卧床不起，最终死在床上。\n两人想着供小儿子读书便将大女儿送人来减少家里的开销。但最终还是没能舍得。\n大女儿在和富贵一起出门干活，小儿子则在读五年级。在一次因县长夫人生孩子里需要用血，在血型比对之后只有有庆能够匹配成功。却因为医生的过度抽血而死在了医院。被富贵接回家中安葬。\n几年后大女儿成功嫁给了歪头的二喜，两人在城里过着幸福的生活。富贵与妻子则在乡下，每次富贵进城后都会与妻子说道好久关于大女儿的事情。春生因为文化大革命，被迫上吊自杀了。\n终于凤霞有喜。在分娩时却因为大出血死在了医院，留下了刚出生的苦根。自此二喜独自带着苦根生活，直到自己被石板压死…\n家珍知晓凤霞去世。在看到凤霞时还是不敢相信，始终睁大眼睛。三个月后也去世了。被安葬在了有庆身边。\n二喜带着苦根，一边工作一边照顾着孩子。在苦根四岁时回老家同富贵一起时，二喜在工作时被两块水泥板压死，死后送到了医院中。最终被富贵安葬在凤霞身旁。\n转眼苦根七岁了。在和富贵出门采摘棉花时高烧，富贵给孙子熬了姜水又煮了许多的豆子。以往生活困苦很少吃到豆子，苦根因此吃多了而噎死了。富贵将其安葬在了他们身边。\n摘抄 \u0026amp; 理解","date":"2026-04-09T17:17:08Z","permalink":"https://blog.aching.cn/posts/reading-5/","title":"活着"},{"content":"大跃进时期 WiKi百科 大跃进 \u0026#8211; 维基百科\n\u0026#8211; 大跃进是于==1957年底至1960年代初==发生在中华人民共和国的一场政治及社会运动。\n\u0026#8211; 以中国共产党中央委员会主席毛泽东为首的中国共产党高层发动了“大跃进”运动，1957年11月13日《人民日报》发表社论，提出了“大跃进”的口号，并于1958年全面展开。\n\u0026#8211; 该运动试图利用本土劳动力和群众热情，在工业和农业上盲目追求脱离现实的“跃进”：大放农业“卫星”、钢产量追求“超英赶美”、全民大炼钢、建立人民公社等等。 该运动的结果是钢、铁合格率低下，大量资源遭过度开发、严重破坏及浪费，生态环境恶化，大量劳动力被调去大炼钢以致农业生产的不足，一时之间整个中国陷入大量不良风气，人民公社刮起“共产风”，高指标引发“浮夸风”，导致贪污腐化、官员欺上瞒下，大量人民饿死和非正常死亡。 ==大跃进最终酿成1958-1962年的大饥荒，据各方估计有1500万至5500万人因此非正常死亡。== 此外，大跃进期间对生态环境的破坏以及水库的粗制滥造，==直接或间接导致了1975年8月河南驻马店爆发的人类历史上最严重人为技术灾难之一“河南“75·8”水库溃坝”，以及1983年陕西省的安康特大洪灾等。== 大跃进运动最终==在1960年开始逐渐被当局叫停。== 大跃进同时招致党内外大量的质疑声音，并遭到农民的抵制，苏联对人民公社的质疑也加深了两国嫌隙。 中共党内的意见分歧甚至分裂集中反映在1959年庐山会议期间的“彭德怀反党集团”事件上，==时任副总理兼国防部长彭德怀元帅因在与会期间批评大跃进政策而遭到毛泽东整肃，支持彭德怀意见的中共元老人物黄克诚、张闻天、周小舟受到牵连，全国范围内一大批中共干部和相关人士以“反右倾”而被整肃==，造成“跃进”在政策上并未及时刹车，进一步助长了“跃进”风潮，而领会毛泽东意图的另一位元帅林彪则从此在政治上崛起。此后，在1962年初的“七千人大会”上，时任中国国家主席刘少奇对大跃进等政策的批评引起党主席毛泽东不满，最终导致党内高层意见出现分歧，==导致了1963年的四清运动，并为1966年的[[文化大革命]]埋下伏笔== ","date":"2026-04-09T17:17:04Z","permalink":"https://blog.aching.cn/posts/reading-4/","title":"大跃进"},{"content":"自2022年11月14日起开始阅读本书，希望有所感悟及收获！\n1、2022.11.19-01.25\n人物关系 故事情节 摘抄 \u0026amp; 理解","date":"2026-04-09T17:16:59Z","permalink":"https://blog.aching.cn/posts/reading-3/","title":"百年孤独"},{"content":"自2022年11月26日起开始阅读本书，希望有所感悟及收获！\n创作背景\n一、时代背景\n第二次世界大战结束后初期，英国由于需要进行经济重建和振兴，对移民法律和政策进行了修改和调整，以解决劳动力匾乏的问题。\n\u0026#8211; 1948年通过的《英国国籍法》使英国前殖民地国家和地区的移民很容易进入英国并获得英国公民资格。从60年代初起，英国经济衰退，失业率上升，社会动荡不安，政府逐渐改变了移民法律的有关规定。二次大战后，英国政府曾先后于1962年和1968年修改了《英联邦移民法》，于1971年和198 8年修改了《移民法》，此外，还有1981年修改的《英国国籍法》。\n\u0026#8211; 这些法律法规反映了英国移民政策总的发展趋势，那就是政府变得更加保守，种族主义色彩越变越浓。大规模的移民涌入引起了英国政府强烈而持久的焦虑。一方面本土居民和早期移民担心他们会被“淹没、吞没”，而另一方面，新移民在遭受种族歧视和不公正待遇的同时，也担心自己的子女会通过更改姓名、改掉口音、改变外形等方式急切地融入西方的主流文化。这些在小说《白牙》中都可以得到印证。\n二、创作过程\n《白牙》出版于2000年。而早在1997年，《白牙》还在酝酿中，就已经引起了英国出版界的注意，好几家出版社竞拍查蒂的第一部长篇小说的出版权。最后，哈密希·汉密尔顿公司竞拍成功。 此后，足足有两年时间，查蒂闭门索居、埋头写作。在查蒂完成这部作品的过程中，出版方也通过各种途径为这部作品做足了宣传。\n人物关系 故事情节 摘抄 \u0026amp; 理解 生活是个大包袱，叫人不堪重负；及时失去一切，把所有行李丢在路边走向黑暗，也比继续背着包袱来得容易。\n自杀是决定不作为，是做的反面，是遗忘边缘的吻。\n—— P9\n那些邻人，那些没有听从你警告的邻人，在滚烫的烈焰中沉沦，烈焰烧得他们骨皮分离\u0026#8230;如果把他们的实体一具具挨着排列起来，可以绕地球三百圈，二真正的耶和华见证会会员将踩着他们烧焦的尸体，来到上帝的面前。——《号角声声》第二百四十五期\n——P28\n永远都是牺牲被人来达到自己的目的。 ","date":"2026-04-09T17:16:55Z","permalink":"https://blog.aching.cn/posts/reading-2/","title":"白牙"},{"content":"自2023年02月10日起开始阅读本书，希望有所感悟及收获！\n人物关系 天吾：补课老师，对数学感兴趣。兼职小说家\n芥川真之介：NHK的催收员。天吾的父亲（非亲生）\n深绘里：《空气蛹》的原作者。17岁。“只是‘戎野集团’的工具人”\n故事情节 摘抄 \u0026amp; 理解 《空气蛹》片段 小小人虽然身子非常小，却要喝好多好多水。而且他们喜欢喝的不是自来水，而是雨水，还有附近小河里流淌的水。所以少女白天去小河边用铁桶打水，给小小人喝。下雨时，就在檐槽下放上铁桶接雨水。因为虽然同样是自然水，比起小河里的水，小小人更喜欢雨水。他们很感谢少女这种善意的举动。 ","date":"2026-04-09T17:16:50Z","permalink":"https://blog.aching.cn/posts/reading-1-1q84/","title":"1Q84"}]