diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 82da1f6..413cf39 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -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" ] } \ No newline at end of file diff --git a/cloude连接腾讯云服务器.txt b/cloude连接腾讯云服务器.txt new file mode 100644 index 0000000..b01de21 --- /dev/null +++ b/cloude连接腾讯云服务器.txt @@ -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 paramiko,Python 的 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 客户端不支持命令行传密码的限制。 \ No newline at end of file diff --git a/docs/Obsidian笔记体系/Projects/claude code/claude连接腾讯云服务器.md b/docs/Obsidian笔记体系/Projects/claude code/claude连接腾讯云服务器.md new file mode 100644 index 0000000..b01de21 --- /dev/null +++ b/docs/Obsidian笔记体系/Projects/claude code/claude连接腾讯云服务器.md @@ -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 paramiko,Python 的 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 客户端不支持命令行传密码的限制。 \ No newline at end of file diff --git a/docs/Obsidian笔记体系/Projects/个人知库/项目资料.md b/docs/Obsidian笔记体系/Projects/个人知库/项目资料.md index 777f02e..a4d8302 100644 --- a/docs/Obsidian笔记体系/Projects/个人知库/项目资料.md +++ b/docs/Obsidian笔记体系/Projects/个人知库/项目资料.md @@ -2,3 +2,6 @@ 知库项目D:\zhiku\mkdocs\docs 上传到git + +知库项目D:\workspace\mkdocs\docs上传到git + diff --git a/docs/Obsidian笔记体系/Projects/命令工作台.md b/docs/Obsidian笔记体系/Projects/命令工作台.md new file mode 100644 index 0000000..13603ed --- /dev/null +++ b/docs/Obsidian笔记体系/Projects/命令工作台.md @@ -0,0 +1,8 @@ + + + + + + +将问题修复的记录 +将记录输出到D:\workspace\mkdocs\docs\Obsidian笔记体系\Projects\故障排除记录 \ No newline at end of file diff --git a/docs/Obsidian笔记体系/Projects/故障排除记录/2026-06-27-云服务器3001端口无法访问.md b/docs/Obsidian笔记体系/Projects/故障排除记录/2026-06-27-云服务器3001端口无法访问.md new file mode 100644 index 0000000..ac87a0c --- /dev/null +++ b/docs/Obsidian笔记体系/Projects/故障排除记录/2026-06-27-云服务器3001端口无法访问.md @@ -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 最前端