设置由 MobiLink 服务器用来监听同步请求的网络协议选项。
mlsrv16 -c "connection-string" -x protocol[protocol-options] [ -x protocol[protocol-options] ... ] ...
protocol : tcpip | tls | http | https | oe
protocol-options : ( option=value; ... )
必须为正在使用的每个协议指定 -x 选项。例如,如需为 TCP/IP 和 HTTP 同时使用 MobiLink 监听,则需指定下列内容:
mlsrv16 -x tcpip(port=1234) -x http(port=2222) |
缺省协议是 TCPIP,端口为 2439。
协议的允许值如下所示:
tcpip 通过 TCP/IP 接受连接。
tls 通过 TCP/IP 和传送层安全性 (TLS) 接受连接。
http 通过标准 HTTP Web 协议接受连接。
https 使用处理安全事务的 HTTP 的变异版本接受连接。使用 RSA 加密,HTTPS 协议通过 SSL/TLS 实现 HTTP。
oe 使用中继服务器时使用集成出站启动器。无法在服务器命令行中包括多个 -x oe 协议。
您还可以指定以下网络协议选项,形式为 option=value。必须用分号分隔多个选项。
TCP/IP 选项 如果指定了 tcpip 协议,则还可以有选择地指定以下协议选项(这些选项区分大小写):
TCP/IP 协议选项 | 说明 |
---|---|
collect_network_data={ yes | no } | 启用同步脚本以从每个同步中读取网络信息。请参见NetworkData 接口 [MobiLink 服务器 Java]和NetworkData 接口 [MobiLink 服务器 .NET]。 |
host=hostname | MobiLink 服务器监听的主机名或 IP 地址。缺省值为 localhost。 |
ignore=hostname | 进行连接时 MobiLink 服务器所忽略的主机名或 IP 地址。此选项使您可以忽略来自最低可能级别的负载平衡器的请求,从而防止 MobiLink 服务器日志和 MobiLink 分析器输出文件中出现过多的输出。可以指定多个需要忽略的主机,例如
-x tcpip(ignore=lb1;ignore=123.45.67.89) 。如果在命令行上指定多个 -x 实例,将在所有实例上忽略相应的主机;例如,如果指定 -x tcpip(ignore=1.1.1.1) -x http ,则在 TCP/IP 和 HTTP 流上均忽略 1.1.1.1 的连接。
|
port=portnumber | MobiLink 服务器监听的套接字端口号。缺省端口为 2439,这是用于 MobiLink 服务器的 IANA 注册端口号。 |
用于具有传送层安全性的 TCP/IP 的选项 如果指定 tls 协议(该协议是具有传送层安全的 TCP/IP 协议),则可选择指定以下协议选项(这些选项区分大小写):
TLS 协议选项 | 说明 |
---|---|
collect_network_data={ yes | no } | 启用同步脚本以从每个同步中读取网络信息。请参见NetworkData 接口 [MobiLink 服务器 Java]和NetworkData 接口 [MobiLink 服务器 .NET]。 |
e2ee_private_key=file |
包含 RSA 专用密钥的 PEM 或 DER 编码文件。若要使端对端加密生效,则需要使用此选项。 可使用 createkey 实用程序创建 PEM 和 DER 编码文件。 请参见密钥对生成器实用程序 (createkey)。 |
e2ee_private_key_password=password |
专用密钥文件的口令。若要使端对端加密生效,则需要使用此选项。 如果指定此选项,则必须也指定 e2ee_private_key 参数。 为防止在 MobiLink 服务器命令行中出现此口令,请使用 dbfhide 实用程序。 请参见文件隐藏实用程序 (dbfhide)。 |
fips={yes|no} | 如果使用具有 RSA 加密的 TLS 协议,可以指定 fips=yes 以便使用 TCP/IP 协议和 FIPS 认证的加密算法接受连接。FIPS 认证的连接使用单独的 FIPS 140-2 认证软件。使用没有 FIPS 认证加密的 RSA 加密的服务器可与使用已启用 fips 选项的 RSA 的客户端兼容。使用已启用 fips 选项的 RSA 的服务器可与使用未启用 fips 选项的 RSA 的客户端兼容。 |
host=hostname | MobiLink 服务器监听的主机名或 IP 地址。缺省值为 localhost。 |
identity=identity-file | 要用于服务器验证的标识文件的路径和文件名。 |
identity_password=password |
用于为标识文件指定口令的可选参数。 如果指定此选项,则必须也指定标识选项。 请参见传送层安全。 为防止在 MobiLink 服务器命令行中出现此口令,使用 dbfhide 实用程序。 请参见文件隐藏实用程序 (dbfhide)。 |
ignore=hostname | 进行连接时 MobiLink 服务器所忽略的主机名或 IP 地址。此选项使您可以忽略来自最低可能级别的负载平衡器的请求,从而防止 MobiLink 服务器日志和 MobiLink 分析器输出文件中出现过多的输出。可以指定多个需要忽略的主机,例如
-x tcpip(ignore=lb1;ignore=123.45.67.89) 。
|
port=portnumber | MobiLink 服务器监听的套接字端口号。缺省端口为 2439,这是用于 MobiLink 服务器的 IANA 注册端口号。 |
trusted_certificates=certificate_file |
使用此选项确保客户端证书有效,然后使用 NetworkData.ClientCertificates API 进一步验证 authenticate_user 脚本中的证书。 请参见NetworkData 接口 [MobiLink 服务器 Java]和NetworkData 接口 [MobiLink 服务器 .NET]。 |
HTTP 选项 如果指定了 http 协议,则还可以有选择地指定以下协议选项(这些选项区分大小写):
HTTP 选项 | 说明 |
---|---|
buffer_size=number | 自 MobiLink 服务器发送的 HTTP 消息的最大主体大小,单位为字节。更改此选项会减小或增大为发送 HTTP 消息而分配的内存大小。缺省值为 65536 个字节。 |
collect_network_data={ yes | no } | 启用同步脚本以从每个同步中读取网络信息。请参见NetworkData 接口 [MobiLink 服务器 Java]和NetworkData 接口 [MobiLink 服务器 .NET]。 |
header_limit=number | 一个 HTTP 请求中可以发送的最大标头数据量。如果请求超出指定值,服务器将返回 HTTP 错误代码并中止请求。例如,-x http(header_limit=200000) 将限制增加到 200000 字节。缺省值是 64000 个字节。
|
host=hostname | MobiLink 服务器监听的主机名或 IP 地址。缺省值为 localhost。 |
log_bad_request={ yes | no } | 当设置为 yes 时,MobiLink 服务器会在接收到不完整的或意外的 HTTP 请求时显示错误。这些错误类似于由 -vf 选项显示的错误。缺省值是 no。 请参见-v mlsrv16 选项。 |
port=portnumber | MobiLink 服务器监听的套接字端口号。缺省端口是 80。 |
version=http-version | MobiLink 服务器自动检测客户端使用的 HTTP 版本。该参数是一个字符串,它用于在服务器无法检测到客户端使用的版本时指定缺省的 HTTP 版本。可以选择 1.0 或 1.1。缺省值是 1.1。 |
HTTPS 选项 HTTPS 协议使用 RSA 数字证书以实现传送层安全性。如果指定 FIPS 加密,则协议将使用单独的、与 HTTPS 兼容的 FIPS 140-2 认证软件。
有关详细信息,请参见启动支持传送层安全的 MobiLink 服务器。
如果指定了 https 协议,则还可以有选择地指定以下协议选项(这些选项区分大小写):
HTTPS 选项 | 说明 |
---|---|
buffer_size=number | 自 MobiLink 服务器发送的 HTTPS 消息的最大主体大小,单位为字节。更改此选项会减小或增大为发送 HTTPS 消息而分配的内存大小。缺省值为 65536 个字节。 |
collect_network_data={ yes | no } | 启用同步脚本以从每个同步中读取网络信息。请参见NetworkData 接口 [MobiLink 服务器 Java]和NetworkData 接口 [MobiLink 服务器 .NET]。 |
e2ee_private_key=file |
包含 RSA 专用密钥的 PEM 或 DER 编码文件。若要使端对端加密生效,则需要使用此选项。 可使用 createkey 实用程序创建 PEM 和 DER 编码文件。 请参见密钥对生成器实用程序 (createkey)。 |
e2ee_private_key_password=password |
专用密钥文件的口令。若要使端对端加密生效,则需要使用此选项。 如果指定此选项,则必须也指定 e2ee_private_key 选项。 为防止在 MobiLink 服务器命令行中出现此口令,请使用 dbfhide 实用程序。 请参见文件隐藏实用程序 (dbfhide)。 |
fips={yes|no} | 如果使用具有 RSA 加密的 TLS 协议,可以指定 fips=yes 以便使用 TCP/IP 协议和 FIPS 认证的加密算法接受连接。FIPS 认证的连接使用单独的 FIPS 140-2 认证软件。使用没有 FIPS 认证加密的 RSA 加密的服务器可与使用已启用 fips 选项的 RSA 的客户端兼容。使用已启用 fips 选项的 RSA 的服务器可与使用未启用 fips 选项的 RSA 的客户端兼容。 |
header_limit=number | 一个 HTTPS 请求中可以发送的最大标头数据量。如果请求超出指定值,服务器将返回错误代码并中止请求。例如,-x https(header_limit=200000) 将限制增加到 200000 字节。缺省值是 64000 个字节。
|
host= hostname | MobiLink 服务器监听的主机名或 IP 地址。缺省值为 localhost。 |
identity=server-identity | 要用于服务器验证的标识文件的路径和文件名。 |
identity_password=password |
用于为标识文件指定口令的可选参数。 如果指定此选项,则必须也指定标识选项。 请参见传送层安全。 为防止在 MobiLink 服务器命令行中出现此口令,请使用 dbfhide 实用程序。 请参见文件隐藏实用程序 (dbfhide)。 |
log_bad_request={ yes | no } | 当设置为 yes 时,MobiLink 服务器会在接收到不完整的或意外的 HTTP 请求时显示错误。这些错误类似于由 -vf 选项显示的错误。缺省值是 no。 请参见-v mlsrv16 选项。 |
port=portnumber | MobiLink 服务器监听的套接字端口号。端口号必须与 MobiLink 服务器所监控端口相匹配。缺省端口是 443。 |
trusted_certificates=certificate_file |
使用此选项确保客户端证书有效,然后使用 NetworkData.ClientCertificates API 进一步验证 authenticate_user 脚本中的证书。 请参见NetworkData 接口 [MobiLink 服务器 Java]和NetworkData 接口 [MobiLink 服务器 .NET]。 |
version=http-version | MobiLink 服务器自动检测客户端使用的 HTTP 版本。该参数是一个字符串,它用于在服务器无法检测到客户端使用的版本时指定缺省的 HTTP 版本。可以选择 1.0 或 1.1。缺省值是 1.1。 |
OE 选项 如果指定了 oe 协议,则还可以有选择地指定以下协议选项(这些选项区分大小写):
OE 协议选项 | 说明 |
---|---|
buffer_size=number |
自 MobiLink 服务器发送的 HTTP 消息的最大主体大小,单位为字节。更改此选项会减小或增大为发送 HTTP 消息而分配的内存大小。缺省值为 65536 个字节。 |
config=file |
出站启动器配置文件。它的格式与独立出站启动器的配置文件一样,唯一的区别是你不应在文件内指定 -cs 选项。 必须指定一个配置文件。 |
header_limit=number | 一个 OE 请求中可以发送的最大标头数据量。如果请求超出指定值,服务器将返回错误代码并中止请求。例如,-x oe(header_limit=200000) 将限制增加到 200000 字节。缺省值是 64000 个字节。
|
log_bad_request={yes|no} | 当设置为 yes 时,MobiLink 服务器会在接收到不完整的或意外的 HTTP 请求时显示错误。这些错误类似于由 -vf 选项显示的错误。缺省值是 no。 请参见-v mlsrv16 选项。 |
version=http-version |
MobiLink 服务器自动检测客户端使用的 HTTP 版本。该参数是一个字符串,它用于在服务器无法检测到客户端使用的方法时指定缺省的 HTTP 版本。可以选择 1.0 或 1.1。缺省值是 1.1。 |
以下命令行将 TCP/IP 端口设置为 12345:
mlsrv16 -c "DSN=SQL Anywhere 16 CustDB;UID=DBA;PWD=sql" -x tcpip(port=12345) |
下面的示例指定了安全类型 (RSA)、服务器标识文件和保护服务器专用密钥的标识口令:
mlsrv16 -c "DSN=my_cons" -x tls(identity=c:\test\serv_rsa1.crt;identity_password=pwd) |
以下示例与前面的示例相似,不同之处在于本例的标识文件名中包含空格:
mlsrv16 -c "DSN=my_cons" -x "tls(identity=c:\Program Files\test\serv_rsa1.crt;identity_password=pwd)" |
以下示例显示如何通过 HTTPS 协议使用端对端加密:
mlsrv16 -c "DSN=my_cons" -x https(identity=my_identity.crt; identity_password=my_id_pwd;e2ee_private_key=my_pk.pem; e2ee_private_key_password=my_pk_pwd) |
以下示例显示集成出站启动器的使用:
mlsrv16 -c "DSN=my_cons" -x oe(config=oeconfig.txt) |
在以上示例中,oeconfig.txt 文件包含以下内容:
-f farm.name -id servername -t a18b2e37dbc296322ec5a6eded6ba896 -cr "host=relayserver.sybase.com;https=0;port=80" |
以下示例显示了如何使用 NetworkData 接口从安全同步中检索证书信息。
public class OrderProcessor { DBConnectionContext _cc; public OrderProcessor( DBConnectionContext cc ) { _cc = cc; } // The method used for the authenticate_user event. public void AuthUser() { NetworkData nd = _cc.getNetworkData(); if( nd != null ) { if( nd.isTLS() ) { CertPath certs = nd.getCertificateChain(); if( certs != null ) { System.out.println( " client-side cert:" ); int n = 1; for( Certificate c : certs.getCertificates() ) { System.out.println( " cert " + n++ ); X509Certificate c509 = (X509Certificate) c; System.out.println( " Subject: " + c509.getSubjectX500Principal().getName() ); System.out.println( " Issuer: " + c509.getIssuerX500Principal().getName() ); } } else { System.out.println( " no client cert" ); } } } } } |
执行以下 SQL 语句注册 Java 方法。
ml_add_java_connection_script( <version>, 'authenticate_user', 'OrderProcessor.AuthUser' ) |
以下两个示例显示了要向 MobiLink 命令行中添加的选项。第一个示例适用于 HTTPS,第二个示例适用于 TLS。
mlsrv16 -c <connection_string> -x https(collect_network_data=1;trusted_certificates=<certificate_file>) -sl java |
mlsrv16 -c <connection_string> -x tls(collect_network_data=1;trusted_certificates=<certificate_file>) -sl java |
以下示例显示了如何使用 NetworkData 接口从安全同步中检索证书信息。
public class OrderProcessor { DBConnectionContext _cc; public OrderProcessor( DBConnectionContext cc ) { _cc = cc; } public void AuthUser() { NetworkData nd = _cc.NetworkData; if( nd != null ) { if( nd.IsTLS ) { X509Certificate2Collection certs = nd.ClientCertificates; if( certs != null ) { PrintLn( " client-side cert:" ); int n = 1; foreach( X509Certificate2 x509 in certs ) { PrintLn( " cert " + n++ ); PrintLn( " Subject: " + x509.SubjectName.Name ); PrintLn( " Issuer: " + x509.IssuerName.Name ); } } } } } } |
执行以下 SQL 语句注册 .NET 方法。
ml_add_dnet_connection_script( <version>, 'authenticate_user', 'OrderProcessor.AuthUser' ) |
以下两个示例显示了要向 MobiLink 命令行中添加的选项。第一个示例适用于 HTTPS,第二个示例适用于 TLS。
mlsrv16 -c <connection_string> -x https(collect_network_data=1;trusted_certificates=<certificate_file>) -sl dnet |
mlsrv16 -c <connection_string> -x tls(collect_network_data=1;trusted_certificates=<certificate_file>) -sl dnet |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |