问题排查报告:zhinengAI jdxb 服务和 100.66.1.X 网段
报告时间: $(date '+%Y-%m-%d %H:%M:%S')
🚨 问题描述
- zhinengAI 的 jdxb 服务没有启动
- 100.66.1.X 网段不通
📋 问题1:jdxb 服务未启动
服务信息
| 项目 | 配置 |
|---|---|
| 服务名称 | jdxb (owjdxb) |
| 容器名称 | owjdxb |
| 镜像名称 | ionewu/owjdxb:latest |
| 镜像大小 | 73.8MB |
| 网络模式 | host |
| 监听端口 | 9118 |
| 访问地址 | http://192.168.2.1:9118 |
| 状态 | ❌ 未启动(文档显示运行中,但用户报告未启动) |
服务详情
根据文档,该服务是一个独立的 Docker 容器,用于 IEPOSE 相关功能。
镜像下载地址: https://cdn.ionewu.com/upgrade/jdxb/x64/owjdxb_x64.img.tgz
排查步骤
1. 检查容器状态
# 查看容器状态
docker ps -a | grep owjdxb
# 如果容器不存在,需要重新拉取镜像并运行
docker pull ionewu/owjdxb:latest
# 运行容器
docker run -d \
--name owjdxb \
--network host \
ionewu/owjdxb:latest
# 或者使用 host 网络模式
docker run -d \
--name owjdxb \
--net host \
ionewu/owjdxb:latest
2. 检查容器日志
# 查看容器日志
docker logs owjdxb
# 查看最近的50行日志
docker logs --tail 50 owjdxb
# 实时查看日志
docker logs -f owjdxb
3. 重启容器
4. 检查端口占用
5. 访问服务
可能的问题和解决方案
问题1: 容器不存在
原因: 容器被删除或从未创建
解决方案:
# 拉取镜像
docker pull ionewu/owjdxb:latest
# 运行容器
docker run -d \
--name owjdxb \
--net host \
ionewu/owjdxb:latest
# 验证容器状态
docker ps | grep owjdxb
问题2: 容器启动失败
原因: 配置错误、依赖问题或镜像问题
解决方案:
# 查看容器日志
docker logs owjdxb
# 如果容器存在但未运行,删除并重新创建
docker rm -f owjdxb
docker run -d \
--name owjdxb \
--net host \
ionewu/owjdxb:latest
问题3: 端口冲突
原因: 9118 端口被其他服务占用
解决方案:
# 查找占用9118端口的进程
sudo lsof -i :9118
# 如果有其他进程占用,停止该进程或更换端口
# 或者使用不同的端口运行容器
docker run -d \
--name owjdxb \
-p 9119:9118 \
ionewu/owjdxb:latest
问题4: 镜像拉取失败
原因: 网络问题、镜像仓库问题或认证问题
解决方案:
# 检查网络连接
ping cdn.ionewu.com
# 手动下载镜像
wget https://cdn.ionewu.com/upgrade/jdxb/x64/owjdxb_x64.img.tgz
# 解压镜像
tar -xzf owjdxb_x64.img.tgz
# 加载镜像
docker load < owjdxb_x64.img
# 运行容器
docker run -d \
--name owjdxb \
--net host \
ionewu/owjdxb:latest
自动启动配置
为了确保容器在系统重启后自动启动,可以使用以下命令:
# 设置容器自动重启
docker update --restart=unless-stopped owjdxb
# 验证配置
docker inspect owjdxb | grep -A 10 RestartPolicy
Docker Compose 配置(可选)
如果希望将 jdxb 服务纳入 Docker Compose 管理,可以创建一个独立的 docker-compose.jdxb.yml 文件:
version: '3.8'
services:
jdxb:
image: ionewu/owjdxb:latest
container_name: owjdxb
network_mode: host
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9118"]
interval: 30s
timeout: 10s
retries: 3
使用方法:
# 启动服务
docker-compose -f docker-compose.jdxb.yml up -d
# 查看状态
docker-compose -f docker-compose.jdxb.yml ps
# 查看日志
docker-compose -f docker-compose.jdxb.yml logs -f
# 停止服务
docker-compose -f docker-compose.jdxb.yml down
🌐 问题2:100.66.1.X 网段不通
网络拓扑
192.168.2.0/24 (本地局域网)
├─ 主节点: 192.168.2.1 (ZboxEN1070K)
├─ 次节点: 192.168.2.10 (备用Zbox)
└─ 存储服务器: 192.168.2.1 (EN51660T-C)
100.66.1.0/24 (远程网段) - Dell R730
└─ 远程备份节点: 100.66.1.7
10.0.0.0/24 (虚拟内网) - WireGuard VPN
├─ 主节点: 10.0.0.1 (ZboxEN1070K)
├─ 次节点: 10.0.0.2 (备用Zbox)
└─ 远程备份节点: 10.0.0.3 (Dell R730)
连接信息
| 项目 | 配置 |
|---|---|
| 远程IP | 100.66.1.7 |
| 虚拟IP | 10.0.0.3 |
| SSH端口 | 2222 |
| SSH用户 | adminliuqing / ai |
| SSH密钥 | ~/.ssh/id_rsa_dell |
排查步骤
1. 检查本地网络连接
2. 检查VPN连接
# 检查WireGuard接口
ip link show wg0
# 检查WireGuard状态
sudo wg show
# 如果接口不存在,启动WireGuard
sudo wg-quick up wg0
# 检查VPN连接
ping 10.0.0.3
3. 测试远程连接
# 测试SSH连接
ssh -p 2222 -i ~/.ssh/id_rsa_dell ai@100.66.1.7 "echo 'Connection successful'"
# 测试SSH连接(使用虚拟IP)
ssh -i ~/.ssh/id_rsa_dell ai@10.0.0.3 "echo 'Connection successful'"
4. 检查防火墙规则
# 检查iptables规则
sudo iptables -L -n -v
# 检查ufw状态(如果使用)
sudo ufw status
# 检查WireGuard相关的防火墙规则
sudo iptables -L FORWARD -n -v | grep wg0
5. 检查DNS解析
可能的问题和解决方案
问题1: VPN未建立
原因: WireGuard 服务未启动、配置错误或网络问题
解决方案:
# 检查WireGuard配置文件
sudo cat /etc/wireguard/wg0.conf
# 启动WireGuard
sudo wg-quick up wg0
# 设置开机自启动
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
# 检查状态
sudo wg show
# 测试连接
ping 10.0.0.3
问题2: 静态路由未配置
原因: 没有配置到100.66.1.0/24的静态路由
解决方案:
# 添加静态路由
sudo ip route add 100.66.1.0/24 via 192.168.2.1
# 临时添加(重启后失效)
sudo route add -net 100.66.1.0/24 gw 192.168.2.1
# 永久添加(Ubuntu/Debian)
echo "100.66.1.0/24 via 192.168.2.1" | sudo tee -a /etc/network/interfaces.d/static-routes
# 永久添加(使用netplan)
sudo nano /etc/netplan/01-static-routes.yaml
添加以下内容:
应用配置:
问题3: 防火墙阻止连接
原因: 防火墙规则阻止了到100.66.1.X网段的连接
解决方案:
# 临时关闭防火墙(仅用于测试)
sudo ufw disable
# 或添加防火墙规则允许连接
sudo ufw allow from 100.66.1.0/24 to any
sudo ufw allow to 100.66.1.0/24 from any
# 重新启用防火墙
sudo ufw enable
# 或者使用iptables直接添加规则
sudo iptables -A INPUT -s 100.66.1.0/24 -j ACCEPT
sudo iptables -A OUTPUT -d 100.66.1.0/24 -j ACCEPT
问题4: 远程服务器未启动
原因: Dell R730 服务器未启动或网络问题
解决方案:
# 检查远程服务器是否在线
ping 100.66.1.7
# 如果ping不通,需要检查:
# 1. 远程服务器是否启动
# 2. 远程服务器的网络连接
# 3. 中间路由器/防火墙的配置
# 4. ISP连接状态
# 联系远程服务器管理员确认服务器状态
问题5: SSH密钥问题
原因: SSH密钥未正确配置或权限问题
解决方案:
# 检查SSH密钥权限
ls -la ~/.ssh/id_rsa_dell*
# 修复权限
chmod 600 ~/.ssh/id_rsa_dell
chmod 644 ~/.ssh/id_rsa_dell.pub
# 测试SSH连接
ssh -p 2222 -i ~/.ssh/id_rsa_dell -v ai@100.66.1.7
# 如果密钥不存在,生成新的SSH密钥
ssh-keygen -t ed25519 -f ~/.ssh/id_rsa_dell -C "ai@zhineng"
# 复制公钥到远程服务器
ssh-copy-id -i ~/.ssh/id_rsa_dell.pub -p 2222 ai@100.66.1.7
VPN配置参考
主节点 (ZboxEN1070K) - WireGuard Server
# /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <主节点私钥>
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# Dell R730
PublicKey = <Dell公钥>
AllowedIPs = 10.0.0.3/32,100.66.1.0/24
Endpoint = 100.66.1.7:51820
PersistentKeepalive = 25
远程备份节点 (Dell R730) - WireGuard Client
# /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <Dell私钥>
Address = 10.0.0.3/24
DNS = 8.8.8.8
[Peer]
# 主节点
PublicKey = <主节点公钥>
AllowedIPs = 10.0.0.0/24,192.168.2.0/24
Endpoint = <主节点公网IP>:51820
PersistentKeepalive = 25
监控服务访问
如果网络连接正常,可以访问以下监控服务:
| 服务 | 实际IP | 虚拟IP |
|---|---|---|
| Prometheus | http://100.66.1.7:9090 | http://10.0.0.3:9090 |
| Grafana | http://100.66.1.7:3000 | http://10.0.0.3:3000 |
| Alertmanager | http://100.66.1.7:9093 | http://10.0.0.3:9093 |
快速修复脚本
创建一个快速修复脚本:
#!/bin/bash
# quick_fix_jdxb_and_network.sh
echo "=========================================="
echo "快速修复 jdxb 服务和网络问题"
echo "=========================================="
# 1. 修复 jdxb 服务
echo "Step 1: 修复 jdxb 服务..."
if ! docker ps | grep -q owjdxb; then
echo "容器不存在,正在启动..."
docker run -d \
--name owjdxb \
--net host \
--restart=unless-stopped \
ionewu/owjdxb:latest
echo "✅ jdxb 服务已启动"
else
echo "✅ jdxb 服务正在运行"
fi
# 2. 检查 VPN 连接
echo "Step 2: 检查 VPN 连接..."
if ! ip link show | grep -q wg0; then
echo "VPN 接口不存在,正在启动..."
sudo wg-quick up wg0
echo "✅ VPN 已启动"
else
echo "✅ VPN 正在运行"
fi
# 3. 检查静态路由
echo "Step 3: 检查静态路由..."
if ! ip route show | grep -q "100.66.1.0/24"; then
echo "添加静态路由..."
sudo ip route add 100.66.1.0/24 via 192.168.2.1
echo "✅ 静态路由已添加"
else
echo "✅ 静态路由已存在"
fi
# 4. 测试连接
echo "Step 4: 测试连接..."
if ping -c 1 10.0.0.3 > /dev/null 2>&1; then
echo "✅ VPN 连接正常"
else
echo "❌ VPN 连接失败"
fi
if ping -c 1 100.66.1.7 > /dev/null 2>&1; then
echo "✅ 远程服务器连接正常"
else
echo "❌ 远程服务器连接失败"
fi
echo "=========================================="
echo "修复完成"
echo "=========================================="
使用方法:
📝 总结
问题1:jdxb 服务未启动
原因: 可能是容器被删除、启动失败或配置错误
解决方案:
1. 检查容器状态:docker ps -a | grep owjdxb
2. 查看容器日志:docker logs owjdxb
3. 重启容器:docker restart owjdxb
4. 如果容器不存在,重新拉取镜像并运行
5. 配置自动重启:docker update --restart=unless-stopped owjdxb
问题2:100.66.1.X 网段不通
原因: 可能是 VPN 未建立、静态路由未配置、防火墙阻止或远程服务器问题
解决方案:
1. 检查 VPN 连接:sudo wg show
2. 启动 VPN:sudo wg-quick up wg0
3. 添加静态路由:sudo ip route add 100.66.1.0/24 via 192.168.2.1
4. 测试连接:ping 100.66.1.7 或 ping 10.0.0.3
5. 测试 SSH 连接:ssh -p 2222 -i ~/.ssh/id_rsa_dell ai@100.66.1.7
建议的排查顺序
- 首先修复 jdxb 服务(本地问题,更容易解决)
- 然后排查网络连接(涉及多个组件,需要逐个检查)
- 使用快速修复脚本进行批量修复
- 如果问题仍然存在,检查日志和配置文件
- 联系远程服务器管理员确认服务器状态
报告生成者: AI Server
报告日期: $(date '+%Y-%m-%d %H:%M:%S')
下次检查: 建议定期检查服务状态和网络连接