本页面介绍了何时必须配置防火墙规则以启用 NFS 文件锁定。
需要防火墙入站规则配置的条件
在以下情况下,您必须创建防火墙入站规则,以允许从 Filestore 实例到客户端的流量:
- 您在访问 Filestore 实例的应用中使用了 NFS 文件锁定。
您使用的 VPC 网络具有阻止 TCP 端口 111 或者
statd
或nlockmgr
守护程序使用的端口的防火墙规则。要确定statd
和nlockmgr
守护程序在客户端上使用的端口,请检查当前端口设置。如果未设置
statd
和nlockmgr
端口,并且您在任何时候认为可能需要配置防火墙规则,我们强烈建议在所有客户端虚拟机实例上一致地设置这些端口。如需了解详情,请参阅设置 NFS 端口。
需要防火墙出站规则配置的条件
在以下情况下,您必须创建防火墙出站规则,以允许从客户端到 Filestore 实例的流量:
- 您使用的 VPC 网络具有针对 Filestore 实例使用的 IP 地址范围设置的防火墙出站规则。
- 该防火墙出站规则会阻止流向 TCP 端口 111、2046、2049、2050 或 4045 的流量。
您可以从 Filestore 实例页面或通过运行 gcloud filestore instances describe
,获取任何 Filestore 实例的预留 IP 地址范围。如需了解详情,请参阅获取特定实例的相关信息。
要详细了解 VPC 网络防火墙规则,请参阅使用防火墙规则。
创建防火墙入站规则
使用以下过程创建防火墙规则,以实现流量流入 Filestore 实例。
在开始之前,请先验证以下内容:
Windows
确认客户端可以与 Filestore 实例通信,并且本地防火墙未阻止所需的端口。如需打开所有必需的 NFS 端口,请在 PowerShell 中运行以下命令:
'111','2046','2049','2050','4045' | % { C:\Windows\system32\netsh.exe advfirewall firewall add rule name="NFS Shares allow TCP/UDP port $($_)" dir=IN action=ALLOW protocol=TCP,UDP localport=$($_) }
检查当前端口设置以确定
statd
和nlockmgr
守护程序在客户端上使用的端口。记下这些信息,以备日后使用。
Linux
无需任何前提条件即可完成此任务。
MacOS
无需任何前提条件即可完成此任务。
前往 Google Cloud 控制台中的防火墙页面。
转到“防火墙”页面点击创建防火墙规则。
输入防火墙规则的名称。 该名称在项目中必须是唯一的。
指定要实行防火墙规则的网络。
指定规则的优先级。
如果此规则不与任何其他规则冲突,则可以保留默认值
1000
。如果现有入站规则已针对同一 IP 地址范围、协议和端口设置对匹配项执行的操作:拒绝,则设置低于现有入站规则的优先级。选择入站作为流量方向。
对于对匹配项执行的操作,选择允许。
对于目标,请执行以下操作之一:
- 如果要允许从 Filestore 实例到网络中所有客户端的流量,请选择网络中的所有实例。
- 如果要允许来自 Filestore 实例的特定客户端的流量,请选择指定的目标标记。在目标标记中输入客户端的实例名称。
保留来源过滤条件的 IP 地址范围的默认值。
在来源 IP 地址范围部分,以 CIDR 表示法输入要允许作为访问来源的 Filestore 实例的 IP 地址范围。您可以输入 Filestore 实例所用的内部 IP 地址范围以允许所有 Filestore 流量。您还可以输入特定 Filestore 实例的 IP 地址。
保留次要来源过滤条件的默认值无。
对于协议和端口,请选择指定的协议和端口,然后:
- 选中 tcp 复选框并在关联字段中输入
111,STATDOPTS,nlm_tcpport
,其中:- STATDOPTS 是
statd
守护程序在客户端上使用的端口。 - nlm_tcpport 是
nlockmgr
守护程序在客户端上使用的tcp
端口。
- STATDOPTS 是
- 选中 udp 复选框,然后输入值
nlm_udpport
,即nlockmgr
使用的udp
端口。请注意,这些规范仅适用于以下服务层级:- 可用区级
- 区域
- 企业
- 选中 tcp 复选框并在关联字段中输入
选择创建。
创建防火墙出站规则
使用以下过程创建防火墙规则,以实现流量流入 Filestore 实例。
在开始之前,请先验证以下内容:
Windows
确认客户端可以与 Filestore 实例通信,并且本地防火墙未阻止所需的端口。如需打开所有必需的 NFS 端口,请在 PowerShell 中运行以下命令:
'111','2046','2049','2050','4045' | % { C:\Windows\system32\netsh.exe advfirewall firewall add rule name="NFS Shares allow TCP/UDP port $($_)" dir=OUT action=ALLOW protocol=TCP,UDP localport=$($_) }
Linux
无需任何前提条件即可完成此任务。
MacOS
无需任何前提条件即可完成此任务。
前往 Google Cloud 控制台中的防火墙页面。
转到“防火墙”页面点击创建防火墙规则。
输入防火墙规则的名称。 该名称在项目中必须是唯一的。
指定要实行防火墙规则的网络。
指定规则的优先级。
如果此规则不与任何其他规则冲突,则可以保留默认值
1000
。如果现有出站规则为同一 IP 地址范围、协议和端口设置了对匹配项执行的操作:拒绝,则设置低于现有入站规则的优先级。选择出站作为流量方向。
对于对匹配项执行的操作,选择允许。
对于目标,请执行以下操作之一:
- 如果要允许从网络中所有客户端到 Filestore 实例的流量,请选择网络中的所有实例。
- 如果要允许从特定客户端到 Filestore 实例的流量通过,请选择指定的目标标记。在目标标记中输入客户端的实例名称。
在目标 IP 地址范围部分,以 CIDR 表示法输入要允许作为访问目标的 Filestore 实例的 IP 地址范围。您可以输入 Filestore 实例所用的内部 IP 地址范围,以允许流向所有 Filestore 实例的流量通过。您还可以输入特定 Filestore 实例的 IP 地址。
对于协议和端口,请选择指定的协议和端口。然后,选中 tcp 复选框并在关联字段中输入
111,2046,2049,2050,4045
。选择创建。
验证 NFS 端口
建议您检查 NFS 端口是否已正确打开。如需了解详情,请参阅在客户端虚拟机上配置 NFS 端口。