← 返回知识库
# 隧道与跳板(内网节点接入 5号)
> 更新:2026-09-17 · 适用:8号 NAS、Windows 本机等无公网节点接入 5号
## 一、现有隧道
| 5号端口 | 绑定 | 来源 | 目标 | 状态 |
|:--|:--|:--|:--|:--|
| 18644 | 127.0.0.1 | 117.147.34.248(家宽带 root 会话) | 8号 HTTP 服务 | ✅ 通(路径 `/gen/` 反代待修) |
| 8456 | 127.0.0.1 | Windows 本机 | 第二大脑知识库 API(31045 文档) | 时断时续 |
## 二、8号 SSH 跳板(方案 B · 进行中)
### 5号 侧(已完成 ✅)
```bash
# sshd 已开启 GatewayPorts clientspecified(允许隧道绑定公网地址)
grep GatewayPorts /etc/ssh/sshd_config # → GatewayPorts clientspecified
# 备份:/etc/ssh/sshd_config.bak-0917
# 预留端口 18443(已放行 + 实测公网可达)
```
### 8号 侧(待执行)
在**能访问 8号 NAS 的内网设备**上执行(如 Mac / devbox):
```bash
# 基础版
ssh -N -R 0.0.0.0:18443:192.168.35.36:22 root@43.173.99.179
# 推荐:autossh 常连(断线自动重连)
autossh -M 0 -N -o ServerAliveInterval=30 -o ServerAliveCountMax=3 \
-R 0.0.0.0:18443:192.168.35.36:22 root@43.173.99.179
# 若设备本身就在 8号 上
ssh -N -R 0.0.0.0:18443:localhost:22 root@43.173.99.179
```
> **关键**:`0.0.0.0:` 前缀必须写(依赖 5号 的 GatewayPorts clientspecified),否则只绑 5号 本地。
### 外部访问(任意位置)
```bash
ssh -p 18443 <8号用户名>@43.173.99.179
```
Mac 上更省事的写法(`~/.ssh/config`):
```
Host 8hao
HostName 43.173.99.179
Port 18443
User <8号用户名>
ServerAliveInterval 30
Host 5hao
HostName 43.173.99.179
User jump8
```
之后直接 `ssh 8hao` 就进 8号。
## 三、通用模式:内网节点接入 5号
```
① 5号 侧准备:GatewayPorts clientspecified(已全局开启,无需重复)
② 选一个已放行端口(见 5号_开放端口.md §四)
③ 内网节点执行:ssh -N -R 0.0.0.0:<端口>:<目标>:<目标端口> root@43.173.99.179
④ 外部访问:<5号IP>:<端口> 即达内网目标
```
## 四、验证命令
```bash
# 5号 上检查隧道是否建立
ss -tlnp | grep <端口>
# 测 SSH 跳板(从外部)
ssh -p 18443 -o ConnectTimeout=8 -o StrictHostKeyChecking=no test@43.173.99.179 2>&1 | head -3
# 期望看到 SSH banner 或认证提示(不是 Connection refused)
# 测 HTTP 隧道
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:18644/
```
## 五、故障排查
| 现象 | 原因 | 处理 |
|:--|:--|:--|
| 5号 `ss` 看不到端口 | 内网设备隧道未建/已断 | 检查内网设备的 ssh 进程;换 autossh |
| 端口只监听 127.0.0.1 | 忘记 `0.0.0.0:` 前缀 | 重建隧道加前缀 |
| 外部连接被拒 | 安全组未放行 | 腾讯云控制台放行 |
| 外部连接超时 | 安全组拦截 | 同上 |
| 隧道建立但访问失败 | 目标服务未启动 | 在内网设备上测 `curl localhost:<目标端口>` |