# L3 节点与 L4 服务

<p class="doc-summary">L3 适合访问一台 Node 或一段 LAN；L4 Service 适合只开放一个确定协议与端口。默认优先选择更小的 L4 资源。</p>

<div class="guide-overview">
  <div><strong>L3 Node</strong><span>需要 ICMP、多个端口或系统管理时使用。</span></div>
  <div><strong>L4 Service</strong><span>只开放一个应用端口，范围更小、审计更清晰。</span></div>
  <div><strong>L3 Subnet</strong><span>通过发布路由的 Node 访问一个真实局域网网段。</span></div>
</div>

## L3：访问 Node 或子网

L3 授权允许主体按 IP 协议访问 Node，或访问由 Node 发布/绑定的 LAN 子网。适合 ping、SSH、数据库、自定义协议和整网段路由。授权整个 Node 后，成员应看到完成访问所需的 Node IP/DNS；未授权 Node 不可见。

### 配置与验证

1. 确认来源和目标 Node 位于预期 Network，目标在线且主机端口可用。
2. 在 **访问授权**选择用户、用户组或来源 Node，再选择准确 Node 或 Subnet 资源。
3. 连接当前 Space，执行 `ns status --probe`，再使用目标 Node IP/DNS 或 LAN 地址完成真实协议请求。
4. 使用未授权账号或来源 Node 做反向测试；授权方向相反时也应失败。

ICMP 可能被主机防火墙禁用，ping 失败不等于 NetSeed 路径一定失败，应同时检查一个明确开放的 TCP/UDP 端口。

## L4：访问 Service

L4 Service 把 `协议 + 本机地址 + 端口` 作为受管理资源发布。它比整 Node 授权更小，适合只开放一个 Web、数据库或 UDP 服务。完整链路需要：Node 在线、Service 正确发布、目录对主体可见、访问授权启用、客户端已连接、目标本机端口可达。

### 配置与验证

1. 先按 [`services.toml`](/infrastructure/services-file.md) 从承载 Node 发布 Service。
2. 在 NSD **服务**核对协议、端口和上报 Node，再在 **访问授权**选择该 Service。
3. 从获授权设备访问 Service 地址；不要用 Node IP 直接访问来替代 L4 验证。
4. 验证同一 Node 的其他端口仍不可达，并用未授权设备验证该 Service 不可见且不可达。

## 如何选择

| 需求               | 推荐资源       |
| ---------------- | ---------- |
| 只访问一个确定应用端口      | L4 Service |
| 需要多端口、ICMP 或系统管理 | L3 Node    |
| 访问一个站点 LAN       | L3 Subnet  |
| 访问固定外部 SaaS/API  | 指定服务出网     |
| 把一般互联网流量走网关      | 互联网出口      |

服务列表可在断开时通过控制面刷新，因此“看得到”不等于“连得通”。同理，Node 在线也不等于用户已授权。

## 常见选错

- 为了访问一个 Web 端口授权整个 Node，导致 SSH、数据库或未来新增端口也进入授权范围；
- 只验证 Service 在目录可见，没有建立真实数据连接；
- 将子网路由误认为 NSGW 能力，忽略承载 Node 的本地接口 binding；
- 使用错误 Space 中同名 Node/Service，或只记录显示名称而不核对稳定 ID。
