> ## 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 反向隧道接收安全连接。

export const companyName = "知行软件";

export const siteNameShort = "知行之桥";

export const siteName = "知行之桥";

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

<Note>该特性目前只在 .NET 版本的 {siteNameShort} 中适用，且需使用应用程序内含的内置 web 服务器。</Note>

## 网关是如何工作的

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

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

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

## 设置网关

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

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

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

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

   <img src="https://mintcdn.com/qiao/U-KEZ9JbQY4Wqs1D/public/images/CloudGateway.png?fit=max&auto=format&n=U-KEZ9JbQY4Wqs1D&q=85&s=7e2bce9ac4ae73567a8bcbaf7476f556" alt="Cloud Gateway configuration tab" width="500" data-path="public/images/CloudGateway.png" />

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

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

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

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

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

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

### 额外的转发端口

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

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

要转发其他端口，请将以下四行添加到应用数据目录中的 `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。</Note>

## 维护网关

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