# 指定服务出网与互联网出口

<p class="doc-summary">网关在线是基础连接能力；指定服务出网和互联网出口是两项独立扩展能力。先由 NSGW 上报，再单独授权，互联网出口还需要客户端主动选择。</p>

<div class="guide-overview">
  <div><strong>基础能力</strong><span>直连优先、必要时中继；在线不代表扩展能力已经配置。</span></div>
  <div><strong>指定服务出网</strong><span>只把准确外部主机与端口经网关访问，不接管默认路由。</span></div>
  <div><strong>互联网出口</strong><span>让用户设备主动选择已授权网关承载一般互联网流量。</span></div>
</div>

<figure class="product-figure">
  <a href="/screenshots/nsd-gateways-exit.jpg" target="_blank" rel="noopener"><img src="/screenshots/nsd-gateways-exit.jpg" alt="NSD 当前网关与出口页面尚无网关时的中文空状态" /></a>
  <figcaption>网关接入后，可在这里查看在线状态、出站服务和互联网出口等能力。点击图片查看原图。</figcaption>
</figure>

<a id="gateway-egress"></a>

## 指定服务出网

让主体通过 NSGW 访问一个管理员定义的外部目标，例如数据库、合作方 API 或固定 SaaS 地址。它只转发被配置和授权的目标，不接管设备默认路由。资源必须由当前可见网关真实上报，再在 **访问授权** 选择用户/用户组与对应资源。

### 配置与验证

1. 由 NSGW 本地配置并上报准确外部目标、协议和端口。
2. 在 **网关与出口 → 网关出站服务**核对承载网关、目标与状态。
3. 在 **访问授权**把准确用户、用户组或来源 Node 绑定到该资源。
4. 从获授权设备访问目标端口；同时验证其他外部目标仍不会被该规则放行。

<a id="internet-exit"></a>

## 互联网出口

互联网出口把选定路由（可含默认路由）经 NSGW 送往 Internet。管理员先确认网关上报 Exit 能力并创建授权；用户在 App **出口** 页面或 `ns exit set` 主动选择。未选择出口时点击开关仅提示 **请先选择出口**，开关保持关闭。

### 配置与验证

1. NSGW 上报互联网出口能力，并确认预期出口公网 IP 和 DNS 行为。
2. 在 **网关与出口 → 互联网出口**核对网关、可用传输和状态。
3. 在 **访问授权**把准确主体绑定到该出口。
4. 用户在 App **出口**或 CLI 中选择该出口，再重新连接。
5. 同时检查公网 IP、DNS、私网访问和关闭出口后的恢复；不能只测试一个网页能否打开。

## 四种状态不要混为一谈

| 状态     | 说明                         |
| ------ | -------------------------- |
| 网关在线   | NSGW 控制连接存在，只证明基础直连/中继设施可见 |
| 能力已上报  | 该网关声明了指定服务出网或互联网出口配置       |
| 已授权    | 当前用户、用户组或 Node 命中对应访问授权    |
| 客户端已选择 | 设备主动选择并连接某个已授权出口；只对互联网出口适用 |

页面把“设备直连与中继”作为基础能力，把互联网出口和网关出站服务作为扩展能力。子网路由不在这里：它由普通 Node 本地发布，在 **节点 → 子网路由** 查看和授权。

撤销授权后新连接不得继续使用；网关离线时客户端应明确失败或安全回退，不能静默把预期受控流量直接送往本地 Internet。

<div class="validation-grid">
  <div><strong>配置</strong>能力、目标、承载网关和当前 Network 完全匹配。</div>
  <div><strong>授权</strong>只有命中访问授权的主体能发现并使用对应资源。</div>
  <div><strong>数据面</strong>真实 IP、DNS、端口与断开/故障行为符合预期。</div>
</div>
