# 应对防火墙限制 (/zh-CN/realtime-media/rtc/build/setup-and-access/firewall)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<_PlatformTabsGroup>
<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="android" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理]

<DocsImage alt="声网云代理工作原理图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。
4. 调用 `setCloudProxy` 方法，将 `proxyType` 设为 `UDP_PTRANSPORT_TYPE_UDP_PROXYROXY`(1) 或 `TCPTRANSPORT_TYPE_TCP_PROXY_PROXY`(2) 来开启云代理。
5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `TRANSPORT_TYPE_NONE_PROXY`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(TRANSPORT_TYPE_NONE_PROXY)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项]

- `setCloudProxy` 需要在频道外调用，其设置在 `RtcEngine` 生命周期内有效。
- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `UDP_PTRANSPORT_TYPE_UDP_PROXYROXY`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="ios" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-1]

<DocsImage alt="声网云代理工作原理图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-1]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-1]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。
4. 调用 `setCloudProxy` 方法，将 `proxyType` 设为 `AgoraUdpProxyType`(1) 或 `TCP_PAgoraTcpProxyTypeROXY`(2) 来开启云代理。
5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `AgoraNoneProxyType`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(AgoraNoneProxyType)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-1]

- `setCloudProxy` 需要在频道外调用，其设置在 `AgoraRtcEngineKit` 生命周期内有效。
- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `AgoraUdpProxyType`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="macos" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-2]

<DocsImage alt="声网云代理工作原理图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-2]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-2]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。
4. 调用 `setCloudProxy` 方法，将 `proxyType` 设为 `AgoraUdpProxyType`(1) 或 `TCP_PAgoraTcpProxyTypeROXY`(2) 来开启云代理。
5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `AgoraNoneProxyType`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(AgoraNoneProxyType)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-2]

- `setCloudProxy` 需要在频道外调用，其设置在 `AgoraRtcEngineKit` 生命周期内有效。
- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `AgoraUdpProxyType`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="web" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网 Web SDK 提供两种解决方案：

- 声网云代理方案：你需要在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。
- 防火墙白名单方案：你需要添加域名白名单，开放相应端口且不对 IP 地址设限。

:::warning[注意]
如果你想通过 VPN 使用声网的服务，请确保已联系 VPN 运营商将对应端口添加到白名单中，否则可能会遇到通话失败等未定义行为。
:::

## 云代理方案 [#云代理方案]

使用云代理服务时，建议使用 Chrome、Firefox 和 Safari 浏览器的最新版本。

:::info[信息]
云代理服务暂不支持移动端。
:::

### 工作原理 [#工作原理]

声网云代理的工作原理如下：

![云代理](https://web-cdn.agora.io/docs-files/1673942497571)

1. 声网 SDK 在连接声网 SD-RTN™ 之前，向云代理发起请求。
2. 云代理发送相应代理信息。
3. 声网 SDK 向云代理发送数据，云代理将接收到的数据透传给声网 SD-RTN™。
4. 声网 SD-RTN™ 向云代理返回数据，云代理再将接收到的数据发送给声网 SDK。

### 实现方法 [#实现方法]

根据你使用的 Web SDK 版本，参考对应的实现方法使用云代理服务。

自 Web SDK v4.3.0 起，声网优化了云代理架构，进一步加强了有网络访问限制的环境中 SDK 的连通性，同时支持限定访问区域。声网推荐你升级到 v4.3.0 或以上版本。

<Tabs defaultValue="new" groupId="sdk-version" persist>
<TabsList>
  <TabsTrigger value="new">v4.3.0 或以上</TabsTrigger>
  <TabsTrigger value="old">v4.0.0 - v4.2.1</TabsTrigger>
</TabsList>

<TabsContent value="new">

#### 1. 申请开通云代理服务 [#1-申请开通云代理服务]

联系 [sales@shengwang.cn](mailto:sales@shengwang.cn) 或技术支持申请开通云代理服务，并提供以下信息：

- App ID
- 代理服务使用区域
- 并发规模
- 网络运营商

#### 2. 客户端开启云代理功能 [#2-客户端开启云代理功能]

成功开通后，在加入频道前调用 [`startProxyServer`](/zh-CN/api-reference/rtc/web/interfaces/iagorartcclient#startproxyserver) 方法打开云代理功能并设置 `mode` 参数：

- 设为 `3`：使用 UDP 协议的云代理，即 Force UDP 云代理模式。在该模式下，SDK 始终通过 UDP 协议传输数据。
- 设为 `5`：（自 v4.9.0 起支持）使用 TCP（加密）协议的云代理，即 Force TCP 云代理模式。在该模式下，SDK 始终通过 TLS 443 传输数据。

开启云代理后，测试是否能正常实现音视频通话或直播。SDK 提供 `client.on("is-using-cloud-proxy")` 事件，会在本地成功发布媒体流后触发该回调，提示当前媒体流是否经云代理服务转发。

```javascript
const client = AgoraRTC.createClient({mode: 'live',codec: 'vp8'});

// 开启云代理
client.startProxyServer(3);
// 加入频道
client.join("<YOUR TOKEN>", "<YOUR CHANNEL>").then(() => {
  /** ... **/
});
```

#### 3. 客户端关闭云代理功能 [#3-客户端关闭云代理功能]

如果需要关闭代理，请在离开频道后调用 [`stopProxyServer`](/zh-CN/api-reference/rtc/web/interfaces/iagorartcclient#stopproxyserver)。

```javascript
// 开启云代理并加入频道后
/** ... **/

// 离开频道
client.leave();

// 关闭云代理服务
client.stopProxyServer();

// 重新加入频道
client.join("<YOUR TOKEN>", "<YOUR CHANNEL>").then(() => {
  /** ... **/
});
```

</TabsContent>

<TabsContent value="old">

#### 1. 申请开通云代理服务 [#1-申请开通云代理服务-1]

联系 [sales@shengwang.cn](mailto:sales@shengwang.cn) 或技术支持申请开通云代理服务，并提供以下信息：

- App ID
- 代理服务使用区域
- 并发规模
- 网络运营商

#### 2. 添加防火墙白名单 [#2-添加防火墙白名单]

将以下测试 IP 及端口添加到企业防火墙的白名单。源地址为集成了 Web SDK 的客户端。

**国内测试**

| 协议 | 目标地址 | 端口 | 端口用途 |
| --- | --- | --- | --- |
| TCP | 150.138.153.78 | [firewall-javascript-markdown-0-1-2 details](#table-slot-firewall-javascript-markdown-0-1-2) | [firewall-javascript-markdown-0-1-3 details](#table-slot-firewall-javascript-markdown-0-1-3) |
| TCP | 47.74.211.17 | 443 | 边缘节点通信 |
| TCP | 52.80.192.229 | 443 | 边缘节点通信 |
| TCP | 52.52.84.170 | 443 | 边缘节点通信 |
| TCP | 47.96.234.219 | 443 | 边缘节点通信 |
| UDP | 150.138.153.78 | 3478 - 3500 | 媒体数据交换 |

<a id="table-slot-firewall-javascript-markdown-0-1-2"></a>

**firewall-javascript-markdown-0-1-2 details**

443, 4000
3433 - 3460

<a id="table-slot-firewall-javascript-markdown-0-1-3"></a>

**firewall-javascript-markdown-0-1-3 details**

消息数据传输
媒体数据交换

**国外测试**

| 协议 | 目标地址 | 端口 | 端口用途 |
| --- | --- | --- | --- |
| TCP | 23.236.115.138 | [firewall-javascript-markdown-1-1-2 details](#table-slot-firewall-javascript-markdown-1-1-2) | [firewall-javascript-markdown-1-1-3 details](#table-slot-firewall-javascript-markdown-1-1-3) |
| TCP | 148.153.66.218 | [firewall-javascript-markdown-1-2-2 details](#table-slot-firewall-javascript-markdown-1-2-2) | [firewall-javascript-markdown-1-2-3 details](#table-slot-firewall-javascript-markdown-1-2-3) |
| TCP | 47.74.211.17 | 443 | 边缘节点通信 |
| TCP | 52.80.192.229 | 443 | 边缘节点通信 |
| TCP | 52.52.84.170 | 443 | 边缘节点通信 |
| TCP | 47.96.234.219 | 443 | 边缘节点通信 |
| UDP | 23.236.115.138 | 3478 - 3500 | 媒体数据交换 |
| UDP | 148.153.66.218 | 3478 - 3500 | 媒体数据交换 |

<a id="table-slot-firewall-javascript-markdown-1-1-2"></a>

**firewall-javascript-markdown-1-1-2 details**

443, 4000
3433 - 3460

<a id="table-slot-firewall-javascript-markdown-1-1-3"></a>

**firewall-javascript-markdown-1-1-3 details**

消息数据传输
媒体数据交换

<a id="table-slot-firewall-javascript-markdown-1-2-2"></a>

**firewall-javascript-markdown-1-2-2 details**

443, 4000
3433 - 3460

<a id="table-slot-firewall-javascript-markdown-1-2-3"></a>

**firewall-javascript-markdown-1-2-3 details**

消息数据传输
媒体数据交换

:::info[信息]
以上 IP 仅供测试阶段调试使用，正式上线前需要向声网申请独立的云代理服务资源。
:::

#### 3. 客户端开启云代理功能 [#3-客户端开启云代理功能]

在加入频道前调用 [`startProxyServer`](/zh-CN/api-reference/rtc/web/interfaces/iagorartcclient#startproxyserver) 方法打开云代理功能，测试是否能正常实现音视频通话或直播。

```javascript
const client = AgoraRTC.createClient({mode: 'live',codec: 'vp8'});

// 开启云代理
client.startProxyServer();
// 加入频道
client.join("<YOUR TOKEN>", "<YOUR CHANNEL>").then(() => {
  /** ... **/
});
```

测试完成后，声网会为你部署云代理服务正式环境，并提供相应的 IP 和端口。你需要将声网提供的 IP 和端口添加到企业防火墙的白名单。

#### 4. 客户端关闭云代理功能 [#4-客户端关闭云代理功能]

如果需要关闭云代理，请在离开频道后调用 [`stopProxyServer`](/zh-CN/api-reference/rtc/web/interfaces/iagorartcclient#stopproxyserver)。

```javascript
// 开启云代理并加入频道后
/** ... **/

// 离开频道
client.leave();

// 关闭云代理服务
client.stopProxyServer();

// 重新加入频道
client.join("<YOUR TOKEN>", "<YOUR CHANNEL>").then(() => {
  /** ... **/
});
```

</TabsContent>
</Tabs>

### 开发注意事项 [#开发注意事项-3]

`startProxyServer` 必须在加入频道前调用，`stopProxyServer` 必须在离开频道后调用。

## 防火墙白名单方案 [#防火墙白名单方案]

根据你使用的 Web SDK 版本，将对应的目标域名和端口添加到防火墙白名单。

### 域名 [#域名]

<Tabs defaultValue="new1" groupId="sdk-version" persist>
<TabsList>
  <TabsTrigger value="new1">v4.24.5 或以上</TabsTrigger>
  <TabsTrigger value="old1">v4.4.0 - v4.24.4</TabsTrigger>
  <TabsTrigger value="old2">v4.4.0 - v4.0.0</TabsTrigger>
  <TabsTrigger value="old3">v4.0.0 之前</TabsTrigger>
</TabsList>

<TabsContent value="new1">

```shell
*.agora.io
*.edge.agora.io
*.sd-rtn.com
*.edge.sd-rtn.com
*.rtnsvc.com
*.edge.rtnsvc.com
*.rtesvc.com
*.edge.rtesvc.com
```

</TabsContent>

<TabsContent value="old1">

```shell
*.agora.io
*.edge.agora.io
*.sd-rtn.com
*.edge.sd-rtn.com
```

</TabsContent>

<TabsContent value="old2">

```shell
*.agora.io
*.edge.agora.io
*.agoraio.cn
*.edge.agoraio.cn
```

</TabsContent>

<TabsContent value="old3">

- 3.5.0 及之后版本

  ```shell
  *.agora.io
  *.edge.agora.io
  *.sd-rtn.com
  *.edge.sd-rtn.com
  ```

- 3.5.0 之前版本

  ```shell
  *.agora.io
  *.edge.agora.io
  *.agoraio.cn
  *.edge.agoraio.cn
  ```

</TabsContent>
</Tabs>

:::info[信息]
为提升公网访问质量，建议在防火墙白名单中添加上述域名。
:::

### 端口 [#端口]

| 目标端口 | 协议 | 操作 |
| -------------- | ----------------- | -------------|
|  80；443；3433；4700 - 5000；5668；5669；6080；6443；8667；9667；30011 - 30013（用于旁路推流）| TCP | 允许
|  3478；4700 - 5000（2.9.0 及以后版本）；10000 - 65535 （2.9.0 以前版本）| UDP | 允许 |
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="windows" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-3]

<DocsImage alt="声网云代理工作原理示意图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-3]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-3]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。

4. 调用 `setCloudProxy` 方法，将 `proxyType` 设为 `UDP_PROXY`(1) 或 `TCP_PROXY`(2) 来开启云代理。

5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `NONE_PROXY`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(NONE_PROXY)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-4]

- `setCloudProxy` 需要在频道外调用，其设置在 `RtcEngine` 生命周期内有效。

- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `UDP_PROXY`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="mini-program" />
## 功能描述 [#功能描述]

大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网微信小程序 SDK 提供防火墙白名单方案。

:::warning[注意]
- 如果你想通过 VPN 使用声网的服务，请确保已联系 VPN 运营商将对应端口添加到白名单中，否则可能会遇到通话失败等未定义行为。
- 如无特殊说明，源地址就是集成了声网 SDK 的客户端。
:::

## 设置企业防火墙 [#设置企业防火墙]

参考以下步骤设置防火墙，即可在网络受限的环境下使用声网的服务：

1. 根据你集成的小程序 SDK 版本，把对应域名添加到防火墙的白名单中：

   ```text tab="v2.5.3 及以上版本" tabGroup="mini-program-sdk-version"
   miniapp.agoraio.cn
   uap-ap-web-1.agora.io
   uap-ap-web-2.agoraio.cn
   uap-ap-web-3.agora.io
   uap-ap-web-4.agoraio.cn
   report-ad.agoralab.co
   rest-argus-ad.agoralab.co
   ```

   ```text tab="v2.4.6 及以下版本" tabGroup="mini-program-sdk-version"
   miniapp.agoraio.cn
   miniapp-1.agoraio.cn
   miniapp-2.agoraio.cn
   miniapp-3.agoraio.cn
   miniapp-4.agoraio.cn
   ```

2. 开放以下端口且不对 IP 地址设限：

   | 目标端口                                                     | 协议 | 操作 |
   | ------------------------------------------------------------ | ---- | ---- |
   | 80；443；3433；5668；5669；5866 - 5890；6080；6443；8667；9667 | TCP  | 允许 |
   | 3478；10000 - 65535                                          | UDP  | 允许 |
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="electron" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-4]

<DocsImage alt="声网云代理工作原理图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-4]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-4]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。
4. 调用 `SetCloudProxy` 方法，将 `proxyType` 设为 `UdpProxy`(1) 或 `TcpProxy`(2) 来开启云代理。
5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `SetCloudProxy`，并将 `proxyType` 设为 `NoneProxy`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `SetCloudProxy(NoneProxy)`，再重新调用 `SetCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-5]

- `SetCloudProxy` 需要在频道外调用，其设置在 `RtcEngine` 生命周期内有效。
- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `UdpProxy`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="unity" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-5]

<DocsImage alt="声网云代理工作原理示意图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-5]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-5]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。

4. 调用 `SetCloudProxy` 方法，将 `proxyType` 设为 `UDP_PROXY`(1) 或 `TCP_PROXY`(2) 来开启云代理。

5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `NONE_PROXY`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(NONE_PROXY)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-6]

- `SetCloudProxy` 需要在频道外调用，其设置在 `RtcEngine` 生命周期内有效。

- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `UDP_PROXY`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="flutter" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-6]

<DocsImage alt="声网云代理工作原理图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-6]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-6]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。
4. 调用 `setCloudProxy` 方法，将 `proxyType` 设为 `udpProxy`(1) 或 `tcpProxy`(2) 来开启云代理。
5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `noneProxy`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(noneProxy)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-7]

- `setCloudProxy` 需要在频道外调用，其设置在 `RtcEngine` 生命周期内有效。

- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `udpProxy`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="react-native" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-7]

<DocsImage alt="声网云代理工作原理图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-7]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-7]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。
4. 调用 `SetCloudProxy` 方法，将 `proxyType` 设为 `UdpProxy`(1) 或 `TcpProxy`(2) 来开启云代理。
5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `SetCloudProxy`，并将 `proxyType` 设为 `NoneProxy`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `SetCloudProxy(NoneProxy)`，再重新调用 `SetCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-8]

- `SetCloudProxy` 需要在频道外调用，其设置在 `RtcEngine` 生命周期内有效。
- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `UdpProxy`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="unreal" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-8]

<DocsImage alt="声网云代理工作原理示意图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-8]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-8]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。

5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `NONE_PROXY`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(NONE_PROXY)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-9]

- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `UDP_PROXY`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="blueprint" />
大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来，保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务，声网提供防火墙白名单和云代理服务。

为允许用户在有网络访问限制的环境中使用[声网 SDK](/zh-CN/realtime-media/rtc/reference/key-concept)，声网提供云代理服务。用户只需在防火墙上将特定的 IP 地址和端口加入白名单，并调用 API 配置声网云代理服务。

## 技术原理 [#技术原理-9]

<DocsImage alt="声网云代理工作原理示意图" src="https://web-cdn.agora.io/docs-files/1673942497571" displayWidth="80%" />

1. 声网 SDK 向声网云代理发起请求。
2. 声网云代理返回相应代理信息。
3. 声网 SDK 向声网云代理发送数据。声网云代理接收数据并将数据透传给[声网 SD-RTN™](/zh-CN/introduction/glossary#sd-rtn)（Software Defined Real-time Network）。
4. 声网 SD-RTN™ 向声网云代理返回数据。声网云代理接收数据并将数据发送给声网 SDK。

## 前提条件 [#前提条件-9]

1. 下载声网 RTC SDK。
2. 完成开发环境准备，详见[实现音视频互动](/zh-CN/realtime-media/rtc/get-started/quick-start)。

## 实现步骤 [#实现步骤-9]

1. 联系 sales@shengwang.cn，提供以下信息申请开通云代理服务。
   - App ID
   - 代理服务使用区域
   - 并发规模
   - 网络运营商等信息

2. 声网在收到申请后，会提供用于云代理的 IP 地址和端口。
3. 将声网提供的 IP 地址和端口添加到防火墙白名单。

5. 测试是否能正常实现音视频通话或直播。
6. 如需关闭已设置的云代理服务，调用 `setCloudProxy`，并将 `proxyType` 设为 `NONE_PROXY`(0)。
7. 如果你想更改已设置的云代理类型，请先调用 `setCloudProxy(NONE_PROXY)`，再重新调用 `setCloudProxy` 并设置云代理类型。

## 开发注意事项 [#开发注意事项-10]

- 如果用户处于内网防火墙环境下，使用 Force UDP 云代理（即 `UDP_PROXY`）时，旁路推流和跨频道媒体流转发功能不可用。
<_PlatformProcessedMarker close="true" />
</_PlatformTabsGroup>
