添加旁路由部署文档、赛里木湖旅行计划、CLAUDE.md 维护说明
This commit is contained in:
@@ -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 <SSH端口> root@<VPS IP>
|
||||
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 <SSH端口> root@<VPS IP> '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
|
||||
```
|
||||
Reference in New Issue
Block a user