1.3. 代理服务器

要能够通过代理服务器连接到 SGD,可能需要使用代理服务器的地址和端口号来配置客户端设备。还可能需要配置 SGD 以便向客户端提供有关服务器端代理服务器的信息。

本节包括以下主题:

1.3.1. 支持的代理服务器

Oracle Secure Global Desktop 发行版 4.7 平台支持和发行说明》(可从 http://www.oracle.com/technetwork/documentation/sgd-193668.html 获取)中列出了支持的代理服务器。

1.3.2. 配置客户端代理设置

要配置客户端代理设置,必须同时配置 HTTP 连接和 AIP 连接的代理设置。接下来的各节介绍了如何执行此操作。

1.3.2.1. HTTP 连接

HTTP 连接是用户的浏览器与 SGD Web 服务器之间的连接(例如,用于显示 Webtop)。这些连接始终使用为浏览器配置的代理设置。

1.3.2.2. AIP 连接

AIP 连接是 SGD 客户端与 SGD 服务器之间的连接,用于显示应用程序。对于这些连接,客户端配置文件中的设置可以控制 SGD 客户端是从浏览器确定代理设置,还是从客户端配置文件自身确定代理设置。

SGD 客户端始终将其最后使用的代理设置存储在客户端配置文件缓存中。有关详细信息,请参见第 6.2.5 节 “关于配置文件缓存”

注意

只能通过指定阵列路由来配置 AIP 连接的 SOCKS 代理;有关详细信息,请参见第 1.3.4 节 “配置服务器端代理服务器”

1.3.2.2.1. 从浏览器确定代理设置

如果在客户端配置文件中选中了 "Use Default Web Browser Settings"(使用默认 Web 浏览器设置)复选框,则从用户的默认浏览器确定代理服务器设置。SGD 客户端将代理设置存储在客户端设备上的配置文件缓存中,并在下一次启动时使用这些设置。

如果在客户端配置文件中选择了 "Establish Proxy Settings on Session Start"(会话启动时建立代理设置),则 SGD 客户端会在每次启动时从浏览器获取代理设置。在这种情况下,不会使用原来存储的代理设置。

要能够从浏览器确定代理设置,浏览器必须启用 Java 技术。如果 Java 技术不可用,或者已在浏览器中禁用,则必须在客户端配置文件中手动指定代理设置。

注意

如果在 Java Plug-in 工具的 Java 控制面板中定义了代理服务器设置,则将使用这些设置取代浏览器设置。

1.3.2.2.2. 在客户端配置文件中指定代理设置

如果在客户端配置文件中选中了 "Manual Proxy Settings"(手动代理设置)复选框,则可在客户端配置文件中自行指定 HTTP 或 SSL 代理服务器。

1.3.2.3. 使用代理服务器自动配置脚本

只要是从浏览器确定客户端代理服务器配置,就可以使用自动配置脚本来自动配置代理设置。

可以在浏览器的连接设置中指定配置脚本的 URL。自动配置脚本必须以 JavaScript 编程语言编写,并且有一个 .pac 文件扩展名或者没有文件扩展名。有关详细信息,请参见 Proxy Auto-Config File(代理自动配置文件)。

注意

将此格式用于 SGD 支持的所有浏览器。

1.3.2.4. 代理服务器例外列表

可以使用代理服务器例外列表来控制不使用代理的链接。只能在从浏览器确定代理设置时使用代理例外列表。不能在客户端配置文件中配置例外列表。可以在浏览器或 Java Plug-in 工具中配置例外列表。

例外列表是 DNS 主机名的列表。对于 Internet Explorer,该列表是以分号分隔的列表。对于基于 Mozilla 的浏览器,该列表是以逗号分隔的列表。例外列表可以包括 * 通配符。

在例外列表中,DNS 主机名与 IP 地址之间没有转换。例如,使用包含 *.example.com 的例外列表时,到 chicago.example.comdetroit.example.com 的连接不使用代理服务器,但使用这些主机的 IP 地址的连接却要使用代理服务器。

例外列表必须始终包括以下条目:

localhost; 127.0.0.1

1.3.3. 代理服务器超时

如果连接上没有活动,则代理服务器可能会在较短的一段时间后中断该连接。默认情况下,SGD 会每隔 100 秒发送一次 AIP 保持连接包以保持连接打开。

如果发现不久后应用程序消失,则可能需要提高 AIP 保持连接包发送的频率。

在管理控制台中,转到 "Global Settings"(全局设置)→ "Communication"(通信)选项卡,然后降低 "AIP Keepalive Frequency"(AIP 保持连接的频率)。或者,也可以使用以下命令:

$ tarantella config edit --sessions-aipkeepalive secs
注意

必须重新启动阵列中的每台 SGD 服务器,对此属性的更改才能生效。

1.3.4. 配置服务器端代理服务器

可以配置 SGD,使 SGD 客户端通过服务器端 SOCKS 版本 5 代理服务器进行连接。使用的实际代理服务器取决于客户端的 IP 地址。这种方式称为阵列路由

如果使用 SGD Gateway,则阵列路由仅用于不通过 SGD Gateway 路由的客户端连接。

配置阵列路由时,要设置一个或多个将客户端 IP 地址与服务器端代理服务器匹配的过滤器。每个过滤器都采用 Client-IP-Pattern:type:host:port 格式。

Client-IP-Pattern 可以是以下任意一种:

  • 匹配一个或多个客户端 IP 地址的正则表达式,例如 192.168.10.*

  • 以用于匹配一个或多个客户端 IP 地址的位数表示的子网掩码,例如 192.168.10.0/22

type 是连接类型。使用 CTSOCKS 进行 SOCKS 版本 5 连接。使用 CTDIRECT 进行直接连接,不使用代理服务器。

hostport 是要用于连接的代理服务器的 DNS 名称或 IP 地址以及端口。

可以为 SGD 配置多个过滤器。过滤器的顺序很重要,因为 SGD 使用第一个匹配的 Client-IP-Pattern

如果使用外部 SSL 加速器(而不是 SGD)来处理 SSL,请在阵列路由后附加 :ssl,请参见以下示例。这将指示 SGD 客户端在该连接上使用 SSL,然后再继续进行 SOCKS 连接。有关详细信息,请参见第 1.6.2 节 “使用外部 SSL 加速器”

小心

如果将 SGD 配置为进行防火墙转发,则无法使用多个阵列路由,因为 SGD 无法确定客户端设备的 IP 地址。可以配置单个阵列路由,例如 *:CTSOCKS:taurus.example.com:8080。请参见第 1.5.2 节 “防火墙穿越”

以下是阵列路由配置的一个示例:

"192.168.5.*:CTDIRECT" \
"192.168.10.*.*:CTSOCKS:taurus.example.com:8080" \
"*:CTSOCKS:draco.example.com:8080:ssl"

使用此配置时,遵循以下方式:

  • IP 地址以 192.168.5 开头的客户端使用直接连接。

  • IP 地址以 192.168.10 开头的客户端使用端口 8080 上的 SOCKS 代理服务器 taurus.example.com 进行连接。

  • 其他所有客户端使用端口 8080 上的 SOCKS 代理服务器 draco.example.com 进行连接。这些客户端在继续进行 SOCKS 连接之前,还使用 SSL 进行连接。

1.3.4.1. 如何配置阵列路由

只能通过命令行配置阵列路由。

确保没有用户登录到阵列中的 SGD 服务器,并且没有正在运行的应用程序会话(包括暂停的应用程序会话)。

  1. 配置阵列路由的过滤器。

    使用以下命令:

    $ tarantella config edit \
    --tarantella-config-array-netservice-proxy-routes routes
    

    用空格分隔每个过滤器,并放在双引号 (" ") 中。例如,"filter1" "filter2" "filter3"

    第 1.3.4 节 “配置服务器端代理服务器”中介绍了每个过滤器的格式。

    过滤器的顺序很重要。使用第一个匹配项。

  2. 重新启动阵列中的每个 SGD 服务器。

    必须重新启动阵列中的每个服务器,才能使阵列路由生效。