chore: 同步知识库文档更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-27 19:10:31 +08:00
parent fda12a614e
commit cb683a9e8c
6 changed files with 173 additions and 32 deletions

View File

@@ -11,10 +11,14 @@
"id": "c1c9b81829eaeb44",
"type": "leaf",
"state": {
"type": "empty",
"state": {},
"type": "markdown",
"state": {
"file": "docs/Obsidian笔记体系/Projects/个人知库/项目资料.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "新标签页"
"title": "项目资料"
}
}
]
@@ -49,7 +53,7 @@
"state": {
"type": "search",
"state": {
"query": "腾讯云",
"query": "宝塔",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
@@ -179,44 +183,41 @@
"command-palette:打开命令面板": false
}
},
"active": "5b497a77c6d68c73",
"active": "c1c9b81829eaeb44",
"lastOpenFiles": [
"docs/Obsidian笔记体系/Projects/女童生长激素项目/宝塔面板.md.tmp.16048.1779593050820",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/ssl证书申请.md.tmp.16048.1779593050693",
"docs/Obsidian笔记体系/Projects/故障排除记录/2026-06-27-云服务器3001端口无法访问.md",
"docs/Obsidian笔记体系/Projects/故障排除记录",
"docs/Obsidian笔记体系/Projects/命令工作台.md",
"docs/Obsidian笔记体系/Projects/claude code/claude连接腾讯云服务器.md",
"cloude连接腾讯云服务器.txt",
"docs/assets/images/Pasted image 20260524111918.png",
"docs/assets/images/Pasted image 20260524104329.png",
"docs/assets/images",
"docs/assets",
"Pasted image 20260524111918.png",
"Pasted image 20260524104539.png",
"Pasted image 20260524104404.png",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/SSL证书续期_20260524.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/宝塔面板.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/ssl证书申请.md",
"Pasted image 20260524104329.png",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/项目资料.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/后台检查报告_20260524.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/生长激素缺乏预测模型项目需求文档.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/使用系统nginx.md",
"docs/Obsidian笔记体系/Projects/陪诊/瑞来健康项目资料.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/宝塔nginx和系统nginx对比分析.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/配置完成.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/项目目录位置.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/后台管理网址.md",
"docs/Obsidian笔记体系/Projects/agent/未来规划.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/SSL证书续期_20260524.md",
"docs/index.md",
"docs/Obsidian笔记体系/Projects/女童生长激素项目/宝塔面板.md",
"docs/Obsidian笔记体系/Projects/故障排除记录/2026-06-27-云服务器3001端口无法访问.md.tmp.11140.1782558433540",
"docs/Obsidian笔记体系/Projects/claude code/取消claude code频繁确认权限提示.md",
"docs/龙虾openclaw/🦞 OpenClaw 龙虾助手 使用教程.md",
"docs/龙虾openclaw/🦞🍊 多Agent系统使用指南.md",
"docs/龙虾openclaw/🦞🍊 扩展Agent利用率的方法.md",
"docs/龙虾openclaw/未命名 2.md",
"docs/Obsidian笔记体系/Projects/claude code/temp.md",
"docs/Obsidian笔记体系/Projects/claude code/claude-code启动.md",
"docs/Obsidian笔记体系/Projects/claude code/Claude 功能.md",
"docs/Obsidian笔记体系/Projects/claude code/自主agent改造计划方案.md",
"docs/Obsidian笔记体系/Projects/claude code/启动claude.md",
"docs/Obsidian笔记体系/Projects/claude code/模型上下文限制问题.md",
"docs/Obsidian笔记体系/Projects/claude code/更换云服务器.md",
"docs/Obsidian笔记体系/Projects/agent/agent资料.md",
"docs/Obsidian笔记体系/Projects/agent/未来规划.md",
"docs/Obsidian笔记体系/Projects/agent/wk3.md",
"docs/Obsidian笔记体系/Projects/agent/wk4.md",
"docs/Obsidian笔记体系/Projects/claude code/temp.md",
"docs/Obsidian笔记体系/Projects/claude code/启动claude.md",
"docs/Obsidian笔记体系/Projects/个人知库/项目资料.md",
"docs/Obsidian笔记体系/Projects/陪诊/数据库配置.md",
"docs/Obsidian笔记体系/Projects/陪诊/修复计划0512.md",
"docs/Obsidian笔记体系/Projects/陪诊/蓝湖.md",
"docs/Obsidian笔记体系/Projects/个人知库",
"docs/Obsidian笔记体系/Projects/陪诊/后台管理系统访问和登录信息.md",
"docs/学习笔记/honor工作资料.md",
"docs/学习笔记/效率提升.md",
"未命名 1.base",
"未命名.base",
"未命名 3.base",
@@ -225,7 +226,9 @@
"Pasted image 20260510095333.png",
"Pasted image 20260510091232.png",
"Pasted image 20260510133924.png",
"docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/产品经理",
"docs/Obsidian笔记体系/Projects/瑞来兹软件公司组织架构/测试"
"Pasted image 20260510092432.png",
"Pasted image 20260510083609.png",
"Pasted image 20260129111501.png",
"Pasted image 20260129111451.png"
]
}

View File

@@ -0,0 +1,22 @@
101.43.95.130 username:renjianbo port 22 密码123456
● 经历了以下步骤:
1. 直接用 ssh 命令 — 失败,因为缺少 sshpass 无法在命令行传入密码
2. 检测到 Python 3.12 — WindowsApps 里的 python3 不可用,用了实际安装的 C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python
3. 安装 paramiko — pip install paramikoPython 的 SSH 库 4. 用 paramiko 连接 — 脚本如下:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 自动接受主机密钥
ssh.connect('101.43.95.130', port=22, username='renjianbo', password='123456', timeout=10)
# 连接成功后执行命令
stdin, stdout, stderr = ssh.exec_command('hostname && uname -a && uptime')
print(stdout.read().decode())
ssh.close()
关键点paramiko 支持直接在代码里传入密码,绕过了 OpenSSH 客户端不支持命令行传密码的限制。

View File

@@ -0,0 +1,22 @@
101.43.95.130 username:renjianbo port 22 密码123456
● 经历了以下步骤:
1. 直接用 ssh 命令 — 失败,因为缺少 sshpass 无法在命令行传入密码
2. 检测到 Python 3.12 — WindowsApps 里的 python3 不可用,用了实际安装的 C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python
3. 安装 paramiko — pip install paramikoPython 的 SSH 库 4. 用 paramiko 连接 — 脚本如下:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 自动接受主机密钥
ssh.connect('101.43.95.130', port=22, username='renjianbo', password='123456', timeout=10)
# 连接成功后执行命令
stdin, stdout, stderr = ssh.exec_command('hostname && uname -a && uptime')
print(stdout.read().decode())
ssh.close()
关键点paramiko 支持直接在代码里传入密码,绕过了 OpenSSH 客户端不支持命令行传密码的限制。

View File

@@ -2,3 +2,6 @@
知库项目D:\zhiku\mkdocs\docs 上传到git
知库项目D:\workspace\mkdocs\docs上传到git

View File

@@ -0,0 +1,8 @@
将问题修复的记录
将记录输出到D:\workspace\mkdocs\docs\Obsidian笔记体系\Projects\故障排除记录

View File

@@ -0,0 +1,83 @@
---
tags: [故障排除, 服务器, iptables, 网络]
date: 2026-06-27
server: 101.43.95.130
---
# 云服务器 3001 端口无法访问
## 问题
浏览器无法访问 `http://101.43.95.130:3001/`Gitea腾讯云安全组已放行 3001 端口。
## 排查过程
### 1. 本地端口监听检查
```bash
netstat -tlnp | grep 3001
```
端口 3001 正常监听docker-proxy但 PID 需要 root 才能看到。
### 2. 服务可达性
```bash
curl http://127.0.0.1:3001/ # 返回 200 ✓
curl http://10.0.4.13:3001/ # 返回 200 ✓
```
服务器本地访问正常Gitea 运行在 Docker 容器 `gitea` 中。
### 3. 防火墙检查
```bash
firewall-cmd --list-ports # 3001/tcp 在列表中 ✓
iptables -L INPUT -n # IN_public_allow 允许 3001 ✓
iptables -t nat -L DOCKER -n # DNAT 规则正确 ✓
```
firewalld 和 iptables filter/NAT 规则都正确。
### 4. tcpdump 抓包
```bash
tcpdump -i any -n port 3001
```
外网 SYN 包到达服务器 `10.0.4.13:3001`,但服务器**没有回复 SYN-ACK**。说明包在到达服务前被静默丢弃。
### 5. 关键发现
`iptables -t nat -L PREROUTING -n -v` 显示 DNAT 规则只有 1 个包命中52 bytes`iptables -L FORWARD -n -v` 中没有包到达 172.19.0.3:3000 的 ACCEPT 规则。说明包在 PREROUTING 和 FORWARD 之间丢失。
## 根因
检查 **raw 表** `PREROUTING_direct` 链,发现端口 3001 有 IP 白名单:
| 规则 | 来源 | 动作 |
|------|------|------|
| 1 | 123.139.40.30 | ACCEPT |
| 2 | 127.0.0.1 | ACCEPT |
| 3 | 172.0.0.0/8 (Docker) | ACCEPT |
| 4 | 所有其他 IP | DROP |
当前外网 IP `123.139.39.4` 不在白名单内,所有对 3001 端口的外部请求在 raw 表就被静默丢弃,根本走不到后续的 NAT/DNAT 环节。
> **raw 表是 iptables 处理流程的第一环**DROP 的包不会经过 conntrack、nat、filter 等后续处理。
## 修复
将当前外网 IP `123.139.39.4` 加入 raw 表 `PREROUTING_direct` 链的白名单。
## 注意事项
- raw 表规则很可能是主机安全软件(云镜/主机安全)自动配置的
- 服务器重启后可能被重置
- 如需永久生效,应在安全软件控制台添加 IP 白名单
## 经验教训
1. 排查外网无法访问问题时,如果 firewalld/iptables filter/NAT 都正确,一定要检查 **raw 表**
2. 对比工作端口3006和故障端口3001的差异可以缩小排查范围
3. `tcpdump` 看到 SYN 但无 SYN-ACK → 包被静默丢弃,检查 iptables 最前端