diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..57ab0db --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,41 @@ +# CLAUDE.md — kb 维护说明 + +## ⚠️ 最重要:敏感信息 + +kb 内容会被部署到公网,**禁止包含任何敏感信息**,包括但不限于: +- 公网 IP 地址 +- 密码、API Key、Token +- 加密密钥(私钥、公钥、UUID、ShortID 等) +- SSH 密钥路径或内容 +- VPN/代理服务的连接凭据(如 Shadowrocket 配置) +- 路由器/设备管理密码 +- 任何可用于攻击服务器或网络的信息 + +技术文档只保留:**架构、方法、命令模板、已知问题、解决思路**。具体 IP/密钥/密码用占位符(如 ``)代替或直接删除。 + +## 维护方式 + +- **用户**:kurihada,主要口述内容,由 Claude 完成写作 +- **Claude**:负责写作、排版、组织文件结构、更新导航 +- **语言**:简体中文 + +## 技术栈 + +- MkDocs Material 构建 +- 源文件:`docs/` 下的 Markdown +- 构建输出:`site/`(已在 .gitignore 中忽略) +- 配置:`mkdocs.yml` + +## 文件组织 + +- 每个分类一个目录,index.md 作为分类概览 +- 具体主题拆成独立 `.md` 文件,放在对应分类目录下 +- `assets/` 放图片等附件 +- 新增文件后需同步更新 `mkdocs.yml` 的 `nav:` 部分 + +## 每次编辑后 + +```bash +cd ~/kb && mkdocs build # 重新构建 site/ +git add -A && git commit -m "描述改动" +``` diff --git a/docs/技术/index.md b/docs/技术/index.md index 3537ffa..f57421b 100644 --- a/docs/技术/index.md +++ b/docs/技术/index.md @@ -31,4 +31,4 @@ ## 📝 技术笔记 -> 还没有内容,待 Claude 帮你整理。 +- [旁路由 + 去广告 部署](旁路由部署.md) — sing-box + AdGuard Home 旁路由架构、配置路径、已知问题 diff --git a/docs/技术/旁路由部署.md b/docs/技术/旁路由部署.md new file mode 100644 index 0000000..466e160 --- /dev/null +++ b/docs/技术/旁路由部署.md @@ -0,0 +1,142 @@ +# 旁路由 + 去广告 部署文档 + +> 部署日期:2026-06-02 | 服务器:香港 VPS | 旁路由:Ubuntu 24.04 + +## 架构总览 + +``` +香港 VPS 本机 - 旁路由 +┌──────────────────────┐ ┌──────────────────────────────┐ +│ sing-box 服务端 │ VLESS │ sing-box 客户端 │ +│ VLESS + Reality │←────────│ ├─ SOCKS5 :7890 → 本机+LAN翻墙│ +│ 伪装 microsoft.com │ Reality │ ├─ TProxy :7895 → 透明代理 │ +│ 端口: 8443 │ │ └─ 规则: 内网直连/其余走代理 │ +└──────────────────────┘ │ │ + │ AdGuard Home (Docker) │ + │ ├─ DNS :53 → 全屋去广告 │ + │ ├─ Web :8080 → 管理面板 │ + │ └─ 45万条过滤规则 │ + └──────────────────────────────┘ +``` + +## 关键配置 + +### 1. 本机网络 + +- **IP**: 静态 IP(通过 NetworkManager 设置) +- **连接名**: `有线连接 1` +- **网关**: `192.168.31.1`(小米路由器 Redmi RM2100) +- **IP 转发**: 已开启 (`net.ipv4.ip_forward=1`) + +### 2. 端口清单 + +| 端口 | 服务 | 用途 | +|------|------|------| +| 7890 | sing-box mixed | SOCKS5/HTTP 代理(翻墙) | +| 7895 | sing-box tproxy | 透明代理(TProxy,回包有问题暂未用)| +| 53 | AdGuard Home | DNS(去广告) | +| 8080 | AdGuard Home | Web 管理面板 | +| 8443 | HK VPS | VLESS+Reality 服务端 | + +### 3. 服务管理 + +```bash +# 本机 +sudo systemctl restart sing-box # 重启翻墙客户端 +docker restart adguardhome # 重启去广告 +sudo journalctl -u sing-box -f # 查看翻墙日志 +docker logs adguardhome -f # 查看去广告日志 + +# 香港 VPS +ssh -i ~/.ssh/hk_vps -p root@ +systemctl restart sing-box +``` + +### 4. 配置文件路径 + +| 文件 | 说明 | +|------|------| +| `/etc/sing-box/config.json` | sing-box 客户端配置 | +| `/opt/adguard/conf/AdGuardHome.yaml` | AdGuard Home 配置 | +| `/opt/adguard/work/data/filters/` | 过滤规则文件 | +| `/etc/iptables/rules.v4` | iptables 持久化规则 | +| `/etc/systemd/system/sing-box.service` | sing-box systemd 服务 | +| `/etc/systemd/system/tproxy-route.service` | TProxy 路由(fwmark)| + +### 5. 广告过滤规则 + +当前 45 万条规则,来源: + +1. AdGuard DNS filter (16万) +2. AdAway Default Blocklist (6500) +3. Malicious URL Blocklist (1.7万) +4. Peter Lowe's Blocklist (8.1万) +5. AdRules DNS Filter 中国广告 (18.5万) + +自定义拦截:`wwads.cn`, `tanx.com`, `sdkclick.qq.com`, `byteimg.com`, `bytecdn.com`, `snssdk.com`, `toutiao.com` + +## 各设备配置 + +### 本机 (Ubuntu) + +- 系统代理: SOCKS5 `127.0.0.1:7890`(GNOME 已配) +- DNS: 自动(走 AdGuard `127.0.0.1:53`) + +### Windows + +- DNS: 手动设为旁路由 IP(去广告) +- 备用 DNS: `223.5.5.5` +- 翻墙: 系统代理 SOCKS5 `旁路由IP:7890`(需要时开) +- 关掉浏览器 DNS over HTTPS(Chrome/Edge 设置) + +### 手机 - 在家(连 WiFi) + +- DNS: 设为旁路由 IP(去广告) +- 翻墙: WiFi 设置 → 代理 → 手动 → `旁路由IP:7890` + +### 手机 - 出门(4G/5G) + +- App: Shadowrocket / Hiddify Next +- 协议: VLESS Reality,直连 HK VPS +- 配置参数与 VPS 一致 + +## 网络背景 + +- **路由器**: 小米 Redmi RM2100,固件 2.0.23 +- **上游**: 电信大内网,光猫 `192.168.1.1` 由运营商管控 +- **DNS 劫持**: 运营商强制接管 53 端口,所以路由器改 WAN DNS 无效 +- **解决**: 各设备 DNS 手动设为旁路由 IP,绕过运营商劫持 +- **AP 隔离**: 路由器重启后消失,设备互访正常 + +## 已知问题 + +1. **TProxy 透明代理不通**: 回包路径有问题,和 Docker 网络冲突。目前用 SOCKS5 代理替代,效果一样。 + +2. **路由器 DNS 劫持**: 小米路由器 + 电信大内网劫持所有 53 端口。Windows DNS 设成旁路由 IP 可以绕过。 + +3. **sing-box 配置用了废弃字段**: DNS 和 inbound 格式使用了 legacy 格式,需要环境变量 `ENABLE_DEPRECATED_LEGACY_DNS_SERVERS=true` 兼容,sing-box 1.14 之前需要迁移到新格式。 + +4. **AdGuard UDP 在 Docker bridge 模式下有问题**: 容器内 UDP 监听 `[::]:53`(IPv6 dual-stack)导致本地回环 UDP DNS 偶尔超时。解决方法是 `--net host` 模式。 + +## 重启后恢复 + +```bash +# 大部分自动恢复。如果翻墙或去广告挂了,依次检查: +sudo systemctl status sing-box # 翻墙 +docker ps | grep adguardhome # 去广告 +ssh -i ~/.ssh/hk_vps -p root@ 'systemctl status sing-box' # HK VPS +``` + +## 添加新的广告域名到拦截列表 + +```bash +sudo python3 << 'PYEOF' +import yaml +with open('/opt/adguard/conf/AdGuardHome.yaml') as f: + cfg = yaml.safe_load(f) +cfg['user_rules'].append('||新域名.com^') +with open('/opt/adguard/conf/AdGuardHome.yaml', 'w') as f: + yaml.dump(cfg, f, default_flow_style=False) +PYEOF +docker restart adguardhome +``` diff --git a/docs/旅行/赛里木湖2026.md b/docs/旅行/赛里木湖2026.md new file mode 100644 index 0000000..7cb7661 --- /dev/null +++ b/docs/旅行/赛里木湖2026.md @@ -0,0 +1,26 @@ +# 🏔️ 赛里木湖 — 2026 年 8 月 + +> 公司组织的团建/旅行,具体日期待定。 + +--- + +## 📋 行前准备 + +> 待补充:出发日期、交通方式、住宿、行程安排。 + +--- + +## 📸 拍摄计划 + +- 器材:Sony 相机 + DJI Action 5 Pro +- 拍摄重点: + - [ ] 湖面全景 + - [ ] 沿途风光 + - [ ] 团队合影 +- 参数备忘:待补充 + +--- + +## 📝 游记 + +> 旅行结束后记录。 diff --git a/mkdocs.yml b/mkdocs.yml index fa9a366..b506ae0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -57,10 +57,12 @@ nav: - 首页: index.md - 旅行: - 旅行/index.md + - 赛里木湖 2026: 旅行/赛里木湖2026.md - 摄影: - 摄影/index.md - 技术: - 技术/index.md + - 旁路由部署: 技术/旁路由部署.md - 3D打印: - 3D打印/index.md - 日记: