要能够通过代理服务器连接到 SGD,可能需要使用代理服务器的地址和端口号来配置客户端设备。还可能需要配置 SGD 以便向客户端提供有关服务器端代理服务器的信息。
本节包括以下主题:
《Oracle Secure Global Desktop 发行版 4.7 平台支持和发行说明》(可从 http://www.oracle.com/technetwork/documentation/sgd-193668.html 获取)中列出了支持的代理服务器。
要配置客户端代理设置,必须同时配置 HTTP 连接和 AIP 连接的代理设置。接下来的各节介绍了如何执行此操作。
AIP 连接是 SGD 客户端与 SGD 服务器之间的连接,用于显示应用程序。对于这些连接,客户端配置文件中的设置可以控制 SGD 客户端是从浏览器确定代理设置,还是从客户端配置文件自身确定代理设置。
SGD 客户端始终将其最后使用的代理设置存储在客户端配置文件缓存中。有关详细信息,请参见第 6.2.5 节 “关于配置文件缓存”。
只能通过指定阵列路由来配置 AIP 连接的 SOCKS 代理;有关详细信息,请参见第 1.3.4 节 “配置服务器端代理服务器”。
如果在客户端配置文件中选中了 "Use Default Web Browser Settings"(使用默认 Web 浏览器设置)复选框,则从用户的默认浏览器确定代理服务器设置。SGD 客户端将代理设置存储在客户端设备上的配置文件缓存中,并在下一次启动时使用这些设置。
如果在客户端配置文件中选择了 "Establish Proxy Settings on Session Start"(会话启动时建立代理设置),则 SGD 客户端会在每次启动时从浏览器获取代理设置。在这种情况下,不会使用原来存储的代理设置。
要能够从浏览器确定代理设置,浏览器必须启用 Java 技术。如果 Java 技术不可用,或者已在浏览器中禁用,则必须在客户端配置文件中手动指定代理设置。
如果在 Java Plug-in 工具的 Java 控制面板中定义了代理服务器设置,则将使用这些设置取代浏览器设置。
只要是从浏览器确定客户端代理服务器配置,就可以使用自动配置脚本来自动配置代理设置。
可以在浏览器的连接设置中指定配置脚本的 URL。自动配置脚本必须以 JavaScript 编程语言编写,并且有一个 .pac
文件扩展名或者没有文件扩展名。有关详细信息,请参见 Proxy Auto-Config File(代理自动配置文件)。
将此格式用于 SGD 支持的所有浏览器。
可以使用代理服务器例外列表来控制不使用代理的链接。只能在从浏览器确定代理设置时使用代理例外列表。不能在客户端配置文件中配置例外列表。可以在浏览器或 Java Plug-in 工具中配置例外列表。
例外列表是 DNS 主机名的列表。对于 Internet Explorer,该列表是以分号分隔的列表。对于基于 Mozilla 的浏览器,该列表是以逗号分隔的列表。例外列表可以包括 * 通配符。
在例外列表中,DNS 主机名与 IP 地址之间没有转换。例如,使用包含 *.example.com
的例外列表时,到 chicago.example.com
和 detroit.example.com
的连接不使用代理服务器,但使用这些主机的 IP 地址的连接却要使用代理服务器。
例外列表必须始终包括以下条目:
localhost; 127.0.0.1
如果连接上没有活动,则代理服务器可能会在较短的一段时间后中断该连接。默认情况下,SGD 会每隔 100 秒发送一次 AIP 保持连接包以保持连接打开。
如果发现不久后应用程序消失,则可能需要提高 AIP 保持连接包发送的频率。
在管理控制台中,转到 "Global Settings"(全局设置)→ "Communication"(通信)选项卡,然后降低 "AIP Keepalive Frequency"(AIP 保持连接的频率)。或者,也可以使用以下命令:
$ tarantella config edit --sessions-aipkeepalive secs
必须重新启动阵列中的每台 SGD 服务器,对此属性的更改才能生效。
可以配置 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
进行直接连接,不使用代理服务器。
host
和 port
是要用于连接的代理服务器的 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 进行连接。
只能通过命令行配置阵列路由。
确保没有用户登录到阵列中的 SGD 服务器,并且没有正在运行的应用程序会话(包括暂停的应用程序会话)。
配置阵列路由的过滤器。
使用以下命令:
$ tarantella config edit \
--tarantella-config-array-netservice-proxy-routes routes
用空格分隔每个过滤器,并放在双引号 ("
"
) 中。例如,"filter1" "filter2" "filter3"
。
第 1.3.4 节 “配置服务器端代理服务器”中介绍了每个过滤器的格式。
过滤器的顺序很重要。使用第一个匹配项。
重新启动阵列中的每个 SGD 服务器。
必须重新启动阵列中的每个服务器,才能使阵列路由生效。