更新 README.md

This commit is contained in:
guoqiancheng 2026-06-29 17:13:16 +08:00
parent 6a3c6db404
commit 7f3ae64de5

View File

@ -450,105 +450,8 @@ iptables -L FORWARD -n -v --line-numbers
--- ---
## 10. 常见问题说明
### 10.1 为什么 127.0.0.1:18101 测不通? ## 当前状态总结
例如:
```bash
curl -I http://127.0.0.1:18101
```
失败是正常的。
原因是当前使用的是 `iptables PREROUTING` 转发规则,该规则主要处理外部进入本机的流量。
本机访问 `127.0.0.1` 属于回环流量,不经过 `PREROUTING` 链。
正确测试方式应该是从外部访问设备 A 的远程入口地址,或者从同网段其他设备访问设备 A 的对应端口。
---
### 10.2 为什么设备 B、C 的摄像头不能在设备 A 上直接转到 10.20.1.11
因为设备 A、B、C 三台设备的本地摄像头网段都使用了相同 IP
```text
10.20.1.11
10.20.1.12
```
对于设备 A 来说,访问 `10.20.1.11` 默认会走设备 A 自己的 `eth1`,访问到设备 A 本地摄像头。
设备 A 无法仅通过目标 IP 区分这是 A、B、C 哪一台设备下面的摄像头。
所以必须通过中转端口区分:
```text
B 摄像头:设备 A -> 10.16.140.112:28011/28012 -> B 本地摄像头
C 摄像头:设备 A -> 10.16.140.113:28011/28012 -> C 本地摄像头
```
---
### 10.3 18003 当前为什么无法访问?
当前已经确认:
```text
设备 C 的 10.16.140.113:80 服务未开启。
```
因此远程访问:
```text
http://设备A访问地址:18003
```
无法打开属于正常现象。
需要先在设备 C 上启动对应的业务管理服务,并确认设备 A 可以访问:
```bash
curl -I http://10.16.140.113
```
如果返回 HTTP 响应,再测试远程 `18003` 访问。
---
## 11. 临时规则与持久化说明
当前通过 `iptables` 手动添加的规则属于临时规则。
设备重启后,这些规则可能会丢失。
后续如果确认全部链路稳定,需要将以下内容持久化:
1. `/proc/sys/net/ipv4/ip_forward=1`
2. 设备 A 上的所有 DNAT、MASQUERADE、FORWARD 规则
3. 设备 B 上的本地摄像头中转规则
4. 设备 C 上的本地摄像头中转规则
可以考虑使用以下方式之一持久化:
```text
方式 1写入 systemd 启动脚本
方式 2使用 iptables-save / iptables-restore
方式 3安装 iptables-persistent
```
推荐后续根据现场系统情况,整理成独立脚本,例如:
```text
设备 A/usr/local/bin/setup-forward-a.sh
设备 B/usr/local/bin/setup-forward-b.sh
设备 C/usr/local/bin/setup-forward-c.sh
```
并配置 systemd 开机自动执行。
---
## 12. 当前状态总结
当前已确认: 当前已确认: