> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DMZ 网关

> 如何配置知行之桥以通过 DMZ 网关使用 SSH 反向隧道接收安全连接。

知行之桥 可以通过隔离区 (DMZ) 网关接收安全的连接。通过将所有外部连接尝试集中到 DMZ，可以保护公司防火墙并维护网络安全。

> [!NOTE]
>
> 该特性目前只在 .NET 版本的 知行之桥 中适用，且需使用应用程序内含的内置 web 服务器。

## 网关是如何工作的

知行之桥 支持通过建立 SSH 反向隧道接收发送到 DMZ 的数据。它是这样工作的：

* SSH 服务器位于 DMZ 中，在 知行之桥 和外部交易伙伴之间传输数据。
* 知行之桥 与这个 SSH 服务器连接并在任一开放端口上打开 SSH 反向隧道（例如，端口 7777）。
* 一旦隧道被打开，SSH 服务器将会直接转发从 7777 端口接收到的流量给 知行之桥。
* 交易伙伴连接到 SSH 服务器并将用于 知行之桥 的所有数据发送到 7777 端口。
* 为了传输安全，使用 SSH 标准将数据从 SSH 服务器转发到 知行之桥。

因此，交易伙伴可在仅访问 DMZ 中的 SSH 服务器时将任意业务数据发送到 知行之桥。

## 设置网关

启用 DMZ 网关支持需要一些简单的步骤：

1. 在 DMZ 中安装一个 SSH 服务器，或选择已安装 SSH 服务器的 DMZ——例如，预装有 SSH 服务器的 Amazon 机器实例 (AMI)，或安装在 DMZ 计算机上的免费 OpenSSH 服务器实现。

2. 在 SSH 服务器上开启端口转发。为此，打开服务器的 `sshd_config` 文件，并设置 `GatewayPorts` 为 **yes**。

3. 右键单击系统任务栏中的 知行之桥 图标，选择 **服务器选项**，并导航到 **云网关** 选项卡。

   ![Cloud Gateway configuration tab](https://mintcdn.com/qiao/Aa29RQkYomm0Fubg/26.4/images/CloudGateway.png?fit=max\&auto=format\&n=Aa29RQkYomm0Fubg\&q=85\&s=5200429479111fbe050409173c7d56c2)

4. 选择 **启用云网关**。

5. 在 **服务器** 部分，为位于 DMZ 中的 SSH 服务器配置连接设置。

6. 在 **转发端口** 部分，将 **转发端口** 设置为 SSH 服务器上向 知行之桥 转发数据时使用的端口。还可以转发另外两个端口以为 SFTP 和 OFTP 端口建立隧道。有关详细信息，请参阅 [额外的转发端口](#额外的转发端口)。

7. 单击 **测试连接** 按钮以验证连接是否成功。

8. 重新启动 知行之桥 内置 web 服务器，以在指定端口上自动打开 SSH 反向隧道。

完成以上步骤后，向交易伙伴提供到 DMZ 中 SSH 服务器的连接详细信息。指示他们在 **转发端口** 指定的端口（而不是默认端口 22）将数据发送到此 SSH 服务器。

### 额外的转发端口

配置 **转发端口** 允许为 知行之桥 中使用的 HTTP 流量转发流量。还可以转发其他两个端口来为 SFTP 和 OFTP 端口建立隧道。

> [!NOTE]
>
> DMZ 网关总共支持三个转发端口用于流量传输，其中一个是用于访问基于 HTTP 或 HTTPS 的服务端点的 HTTP 或 HTTPS 端口。虽然您可以将 OFTP 和 SFTP 端口用于机器上的任何其他监听服务，但 FTP Server 连接需要在命令通道之外额外的端口范围。这意味着不支持 FTP Server 连接。

要转发其他端口，请将以下四行添加到应用数据目录中的 `CData.Arc.xml` 配置文件（默认路径：`C:\ProgramData\CData\Arc\CData.Arc.xml`）：

```xml theme={null}
<OFTPPort>6619</OFTPPort>
<OFTPRemotePort>6619</OFTPRemotePort>
<SFTPPort>22</SFTPPort>
<SFTPRemotePort>2022</SFTPRemotePort>
```

`<type>Port` 是流量转发到的端口，`<type>RemotePort` 是要在 SSH 服务器上打开的端口。

> [!NOTE]
>
> 不能转发已用于 SSH 服务的端口。例如，如果 SSH 服务器正在侦听端口 22，则 `SFTPRemotePort` 也不能是端口 22。

## 维护网关

知行之桥 在服务器启动（重启）时自动打开网关。如果连接因任何原因断开，知行之桥 还会重新与 SSH 服务器建立连接。无需用户维护即可保持网关运行。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.