当客户端应用程序在防火墙的一边,而服务器在另一边时,连接会受到限制。防火墙软件按照网络端口过滤网络数据包。而且,通常不允许 UDP 数据包穿过防火墙。
在穿过防火墙进行连接时,您必须在应用程序连接字符串的 CommLinks (LINKS) 连接参数中使用一组协议选项。
Host 将此参数设置为运行数据库服务器的主机名。可以使用其简写形式 IP。
ServerPort 如果数据库服务器未使用缺省端口 2638,则必须指定它所使用的端口。可以使用其简写形式 Port。
ClientPort 将此参数设置为供客户端应用程序使用的某一范围的允许值。您可以使用此参数的简写形式 CPort。此选项取决于防火墙的配置,可能并不需要。
DoBroadcast=NONE 设置此参数可防止在连接服务器时使用 UDP。
必须对防火墙进行配置,使其允许在 SQL Anywhere 服务器地址与所有 SQL Anywhere 客户端地址之间进行 TCP/IP 通信。SQL Anywhere 服务器的地址由运行 SQL Anywhere 服务器的计算机的 IP 地址(HOST 参数)和 SQL Anywhere 服务器的 IP 端口号(ServerPort 协议选项,缺省值为 2638)组成。每个 SQL Anywhere 客户端的地址都是由客户端计算机的 IP 地址和客户端 IP 端口范围(ClientPort 协议选项)组成。在最简单的配置中,允许开放所有客户端端口。如果只允许开放特定客户端端口,则请指定一个端口数超过每个客户端计算机最大并发连接数的端口范围,因为几分钟超时过后才可以再次使用客户端端口。
以下连接字符串片段将客户端应用程序限制为只能使用端口 5050 到 5060,并通过服务器端口 2020 连接到地址为 myhost 的计算机上正在运行的名为 myeng 的服务器。由于 DoBroadcast 选项的设置,不执行 UDP 广播。
ENG=myeng;LINKS=tcpip(ClientPort=5050-5060;HOST=myhost;PORT=2020;DoBroadcast=NONE) |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |