使用 SOCKS5 代理连接到 MongoDB
Overview
在本指南中,您可以了解如何使用 SOCKS5 代理连接到 MongoDB。SOCKS5 是一种标准化协议,用于通过代理服务器与网络服务通信。
提示
要了解有关 SOCKS5 协议的更多信息,请参阅有关 SOCKS 的 维基百科条目。
SOCKS5 代理设置
代理设置指定 SOCKS 5代理服务器解决和您的身份验证凭证。 您可以在 MongoClientSettings实例或连接string中指定您的设置。
重要
如果满足以下任一条件,驱动程序将忽略代理设置:
Unix 域套接字处理通信。 有关更多信息,请参阅 UnixServerAddress 文档。
TransportSettings
已配置。 有关更多信息,请参阅 TransportSettings 文档。
下表描述了 SOCKS5 客户端选项:
名称 | 接受的值 | 说明 |
---|---|---|
proxyHost | 字符串 | 指定 SOCKS5 代理 IPv4 地址、IPv6 地址或主机名。必须提供此值才能连接到 SOCKS5 代理。 |
代理端口 | 非负整数 | 指定 SOCKS5 代理服务器的 TCP 端口号。当您设置 proxyHost 时,此选项默认为 1080 。 |
proxyUsername | 字符串 | 指定用于向 SOCKS5 代理服务器进行身份验证的用户名。驱动程序忽略此设置的 null 和空字符串值。驱动程序要求您同时传递 proxyUsername 和 proxyPassword 的值,或者省略这两个值。 |
proxyPassword | 字符串 | 指定用于向 SOCKS5 代理服务器进行身份验证的密码。驱动程序会忽略此设置的 null 和空字符串值。驱动程序要求您同时传递 proxyUsername 和 proxyPassword 的值,或者省略这两个值。 |
示例
以下示例演示如何使用 SOCKS5 代理实例化连接到 MongoDB 的 MongoClient
。代理设置可以在 MongoClientSettings
实例或连接字符串中指定。这些示例使用 SOCKS5 代理设置部分中说明的占位符值。请用您的代理设置替换占位符。
在 MongoClientSettings 中指定代理设置
以下代码示例显示如何使用 MongoClientSettings
构建器指定 SOCKS5 代理设置:
MongoClient mongoClient = MongoClients.create( MongoClientSettings.builder() .applyConnectionString( new ConnectionString("mongodb+srv://myDatabaseUser:myPassword@example.org/")) .applyToSocketSettings(builder -> builder.applyToProxySettings(proxyBuilder -> proxyBuilder .host("<proxyHost>") .port(<proxyPort>) .username("<proxyUsername>") .password("<proxyPassword>") ) ).build());
在连接字符串中指定代理设置
下面的代码示例展示了如何在连接字符串中指定 SOCKS5 代理设置:
String connectionString = "mongodb+srv://myDatabaseUser:myPassword@example.org/" + "?proxyHost=<proxyHost>" + "&proxyPort=<proxyPort>" + "&proxyUsername=<proxyUsername>" + "&proxyPassword=<proxyPassword>"; MongoClient mongoClient = MongoClients.create(connectionString);
API 文档
要进一步了解本指南所讨论的方法和类型,请参阅以下 API 文档: