网络位置
在 Citrix Cloud 中,您可以根据公共 IP 地址配置网络位置。这些网络位置可用于以下目的:
- Citrix Workspace 使用网络位置来确定是指示客户端直接连接到 VDA 还是通过 Citrix Gateway 连接。有关详细信息,请参阅通过直接工作负载连接优化工作区连接。
- 当用户从网络位置连接时,Citrix Workspace 可以添加智能访问标记,您可以将其用作 Studio 中访问策略的输入。有关详细信息,请参阅基于用户网络位置的自适应访问。此功能仅在启用自适应访问时可用。
- 您可以根据用户的网络位置选择用户身份验证方式。有关详细信息,请参阅条件身份验证。
通常,您会为每个办公地点创建一个网络位置。
查看网络位置
要查看已配置的网络位置:
- 登录到 Citrix Cloud。
- 打开主菜单。
-
从主菜单中选择网络位置。
-
网络位置屏幕加载。
添加网络位置
-
在“网络位置”屏幕上,按添加网络位置
仅当启用自适应访问时,位置标记和连接类型选项才可用。
-
输入位置名称。
-
以 CIDR 格式输入公共 IP 地址范围。
-
如果启用了自适应访问,您可以选择输入一个或多个位置标记的名称。使用逗号分隔多个标记。智能访问标记是通过添加后缀
LOCATION_TAG_
生成的。例如,如果您输入位置标记BranchOffice
,则会生成一个名为LOCATION_TAG_BranchOffice
的智能访问标记,您可以在 Studio 中使用它。 -
如果启用了自适应访问,您可以选择该位置是内部还是外部。对于所有内部位置,会生成一个名为
LOCATION_internal
的智能访问标记。对于所有外部位置,会生成一个名为LOCATION_external
的智能访问标记。如果客户端的 IP 地址与网络位置不匹配,则该网络位置被视为未定义。如果禁用自适应访问,则此选项将隐藏。所有已配置的网络位置都被视为内部位置,并且不会创建任何智能访问标记。
-
按保存。
编辑网络位置
- 导航到“网络位置”屏幕
- 在要编辑的行上,按 … 打开菜单,然后选择编辑。
- 进行所需的更改。
- 按保存。
删除网络位置
- 导航到“网络位置”屏幕
- 在要编辑的行上,按 … 打开菜单,然后选择删除。
- 在确认屏幕上,按是,删除。
使用 PowerShell 管理网络位置
除了使用 Citrix Cloud 管理控制台界面之外,您还可以使用 PowerShell 脚本配置直接工作负载连接。使用 PowerShell 配置直接工作负载连接涉及以下步骤:
- 下载 PowerShell 模块。
- 在 Citrix Cloud 中创建安全 API 客户端,并记下客户端 ID 和密钥。
- 导入 PowerShell 模块并使用您的 API 客户端详细信息连接到网络位置服务 (NLS)。
- 使用 PowerShell cmdlet 为您的每个位置创建网络位置。
下载 PowerShell 模块
在设置网络位置之前,请从 Citrix GitHub 存储库下载 Citrix 提供的 PowerShell 模块 (nls.psm1
)。使用此模块,您可以根据需要为 VDA 设置任意数量的网络位置。
- 在 Web 浏览器中,转到 https://github.com/citrix/sample-scripts/blob/master/workspace/NLS2.psm1。
- 按原始。
- 按 Ctrl+S 并选择一个位置来保存文件。
创建安全客户端
- 在
https://citrix.cloud.com
登录到 Citrix Cloud。 - 从 Citrix Cloud 菜单中,选择身份和访问管理,然后选择API 访问。
-
在安全客户端选项卡上,记下您的客户 ID。
- 输入客户端名称,然后选择创建客户端。
-
复制客户端 ID 和客户端密钥。
配置网络位置
- 打开 PowerShell 命令窗口,导航到保存 PowerShell 模块的同一目录。
- 导入模块:
Import-Module .\nls.psm1 -Force
- 使用创建安全客户端中的安全客户端信息设置所需变量:
$clientId = "YourSecureClientID"
$customer = "YourCustomerID"
$clientSecret = "YourSecureClientSecret"
-
使用您的安全客户端凭据连接到网络位置服务:
Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer <!--NeedCopy-->
-
创建网络位置,将参数值替换为与内部用户直接连接的内部网络相对应的值:
New-NLSSite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @("PublicIpsOfYourNetworkSites") -longitude 12.3456 -latitude 12.3456 -internal $True <!--NeedCopy-->
要指定单个 IP 地址而不是范围,请在 IP 地址末尾添加 /32。例如:
New-NLSSite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @("PublicIpOfYourNetworkSite/32") -longitude 12.3456 -latitude 12.3456 -internal $True <!--NeedCopy-->
重要提示:
使用
New-NLSSite
命令时,请为每个参数至少包含一个值。如果运行此命令时没有任何命令行参数,PowerShell 会提示您一次输入一个参数的相应值。internal
属性是一个强制性布尔属性,可能的值为:$True
或$False
,它通过 PowerShell 映射到 UI。例如,(UI) Network Internal -> (PowerShell) –internal=$True
。 成功创建网络位置后,命令窗口将显示网络位置的详细信息。 - 对所有用户连接的网络位置重复步骤 5。
- 运行命令
Get-NLSSite
以返回您使用 NLS 配置的所有站点的列表,并验证其详细信息是否正确。
修改网络位置
要更改现有网络位置:
- 在 PowerShell 命令窗口中,列出所有现有网络位置:
Get-NLSSite
-
要修改特定网络位置的 IP 范围,请键入
(Get-NLSSite)[N] | Set-NLSSite -ipv4Ranges @("1.2.3.4/32","4.3.2.1/32") <!--NeedCopy-->
其中
[N]
是列表中位置对应的数字(从零开始),"1.2.3.4/32","4.3.2.1/32"
是您要使用的逗号分隔的 IP 范围。例如,要修改第一个列出的位置,请键入以下命令:(Get-NLSSite)[0] | Set-NLSSite -ipv4Ranges @("98.0.0.1/32","141.43.0.0/24") <!--NeedCopy-->
删除网络位置
要删除不再使用的网络位置:
- 在 PowerShell 命令窗口中,列出所有现有网络位置:
Get-NLSSite
- 要删除所有网络位置,请键入
Get-NLSSite | Remove-NLSSite
- 要删除特定的网络位置,请键入
(Get-NLSSite)[N] | Remove-NLSSite
,其中[N]
是列表中位置对应的数字。例如,要删除第一个列出的位置,请键入(Get-NLSSite)[0] | Remove-NLSSite
。
示例脚本
示例脚本包含您可能需要添加、修改和删除分支位置的公共 IP 地址范围的所有命令。但是,您无需运行所有命令即可执行任何单个功能。要运行脚本,请始终包含前 10 行,从 Import-Module 到 Connect-NLS。之后,您只需包含要执行功能的命令即可。
Import-Module .\nls.psm1 -Force
$clientId = "XXXX" #替换为您的客户端 ID
$clientSecret = "YYY" #替换为您的客户端密钥
$customer = "CCCCCC" #替换为您的客户 ID
# 连接到网络位置服务
Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer
# 创建新的网络位置服务站点(替换为与您的分支位置对应的详细信息)
New-NLSSite -name "New York" -tags @("EastCoast") -ipv4Ranges @("1.2.3.0/24") -longitude 40.7128 -latitude -74.0060 -internal $True
# 获取现有网络位置服务站点(可选)
Get-NLSSite
# 更新第一个网络位置服务站点的 IP 地址范围(可选)
$s = (Get-NLSSite)[0]
$s.ipv4Ranges = @("1.2.3.4/32","4.3.2.1/32")
$s | Set-NLSSite
# 删除所有网络位置服务站点(可选)
Get-NLSSite | Remove-NLSSite
# 删除您的第三个站点(可选)
(Get-NLSSite)[2] | Remove-NLSSite
<!--NeedCopy-->