---
schema_version: "1"
id: 3c3a6923b409ff83cacd1437a2a067759be71842dab2d46b45c7cbcc87e631ba
title: 配置本地防火墙
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/server-linux/config_firewall_linux.md
canonical_url: https://help.tableau.com/current/server-linux/zh-cn/config_firewall_linux.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 805d090d448c415b46d7f819c5521f742fa391658de84c4a5e0a9cce9248b537
description: Configure the local firewall on Linux computers running Tableau Server in single or multi-node setups.
---
[跳转到主要内容](#main-content)

# 配置本地防火墙

本主题说明如何在运行 Tableau Server 的计算机上配置防火墙。

应在操作系统上启用本地防火墙，以在单节点和多节点部署中保护 Tableau Server。在 Tableau Server 的分布式（多节点）安装中，节点之间的通信未使用安全通信。因此，您应该在托管 Tableau Server 的计算机上启用防火墙。

我们建议您配置防火墙，以便外部流量只能访问以下两个端口：`gateway` 端口和 `tabadmincontroller` 端口。默认情况下，这两个端口分别是 80 和 8850。此外，如果在分布式部署中运行，则您需要打开端口范围 27000-27009，以便许可能够跨节点通信。

`gateway` 端口用于 Tableau Server 的 HTTP 连接。我们建议您对 `gateway` 端口使用 SSL。如果将使用 SSL，则该端口必须为 `443`，因为 Tableau Server 对 SSL 不支持其他端口。以下过程介绍如何针对 `gateway` 端口配置防火墙。将 Tableau Server 网关（[配置初始节点设置](https://help.tableau.com/current/server-linux/zh-cn/config_general.htm)）配置为与您在此处设置的端口匹配。

以下示例介绍如何在 RHEL/CentOS 发行版上运行的 Tableau Server 单节点和多节点部署上配置防火墙。这些示例使用 [Firewalld](http://www.firewalld.org/)，它是 CentOS 上的默认防火墙。

## 单节点配置

1. 打开一个 bash shell 并运行以下 TSM 命令来检索 `tabadmincontroller` 端口的端口号：
    
    `tsm topology list-ports`
    
    记下 `tabadmincontroller` 端口。默认情况下，此端口为 `8850`。
2. 启动 firewalld：
    
    `sudo systemctl start firewalld`
3. 验证默认区域是否是高安全性区域，如 `public`。如果不是，建议将其更改为高安全性区域。
    
    `sudo firewall-cmd --get-default-zone`
    
    `sudo firewall-cmd --set-default-zone=public`
4. 针对 `gateway` 端口和 `tabadmincontroller` 端口添加端口。在以下示例中，我们使用默认端口（`80` 和 `8850`）。
    
    `sudo firewall-cmd --permanent --add-port=80/tcp`
    
    `sudo firewall-cmd --permanent --add-port=8850/tcp`
5. 重新加载防火墙并验证设置。
    
    `sudo firewall-cmd --reload`
    
    `sudo firewall-cmd --list-all`

## 单节点群集配置

除了启用端口之外，在多节点群集上配置防火墙还需要执行其他步骤来确保节点能够相互通信。

### 开始之前

您将需要群集中每个节点的 IP 地址。此处的示例将 `<node1IP>` 用作初始节点 IP 地址的占位符，将 `<node2IP>` 和 `<node3IP>` 用作两个其他节点的 IP 地址的占位符。

### 步骤 1：配置初始节点。

1. 打开一个 bash shell 并运行以下 TSM 命令来检索 `tabadmincontroller` 端口的端口号：
    
    `tsm topology list-ports`
    
    记下 `tabadmincontroller` 端口。默认情况下，此端口为 `8850`。
2. 运行以下命令来确定 TSM 可以动态选择的端口号的范围。您将在本过程的后面指定此范围。记下此端口范围。
    
    `tsm configuration get -k ports.range.min`
    
    `tsm configuration get -k ports.range.max`
    
    典型的范围为 `8000` 至 `9000`。
3. 启动 firewalld：
    
    `sudo systemctl start firewalld`
4. 验证默认区域是否是高安全性区域，如 `public`。如果不是，建议将其更改为高安全性区域。
    
    `firewall-cmd --get-default-zone`
    
    `sudo firewall-cmd --set-default-zone=public`
5. 针对 `gateway` 端口和 `tabadmincontroller` 端口添加端口。在以下示例中，我们使用默认端口（`80` 和 `8850`）。您还必须添加端口范围 (`27000-27010`)，使许可能够在节点之间通信。
    
    `sudo firewall-cmd --permanent --add-port=80/tcp`
    
    `sudo firewall-cmd --permanent --add-port=8850/tcp`
    
    `sudo firewall-cmd --permanent --add-port=27000-27010/tcp`
6. 将防火墙配置为允许群集中其他节点的所有流量。对于端口选项，请指定在步骤 2 中记下的范围。为群集中的每个附加节点运行此命令。例如：
    
    `sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node2IP>/32 port port=8000-9000 protocol=tcp accept'`
    
    `sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node3IP>/32 port port=8000-9000 protocol=tcp accept'`
7. 重新加载防火墙并验证设置。
    
    `sudo firewall-cmd --reload`
    
    `firewall-cmd --list-all`

### 步骤 2：配置其他节点

群集中的每个节点都必须能够与初始节点和其他节点进行通信。

在群集中的每个其他节点上运行此过程。在本示例中，IP 地址为 `<node2IP>` 的节点与 IP 地址为 `<node1IP>` 的初始节点和 IP 地址为 `<node3IP>` 的第三个节点进行通信。

1. 启动 firewalld：
    
    `sudo systemctl start firewalld`
2. 验证默认区域是否是高安全性区域，如 `public`。如果不是，建议将其更改为高安全性区域。
    
    `firewall-cmd --get-default-zone`
    
    `sudo firewall-cmd --set-default-zone=public`
3. 将防火墙配置为允许从群集中的其他节点访问 `gateway` 和 `tabadmincontroller`。例如：
    
    `sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node1IP>/32 port port=80 protocol=tcp accept'`
    
    `sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node1IP>/32 port port=8000-9000 protocol=tcp accept'`
    
    `sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node3IP>/32 port port=80 protocol=tcp accept'`
    
    `sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=<node3IP>/32 port port=8000-9000 protocol=tcp accept'`
    
    在本示例中，由于 `tabadmincontroller` 端口 (`8850`) 包含在端口范围内，所以命令中没有明确指定该端口。
4. 重新加载防火墙并验证设置。
    
    `sudo firewall-cmd --reload`
    
    `firewall-cmd --list-all`