1

我有网络连接问题。

这是情况。

Java 应用程序(JSP 或控制台)应连接到 MongoDB 和 Redis。

在第一个环境中,

  • Java -> 本地 mongodb :好的
  • Java -> 远程 mongodb:好的
  • Java->远程redis:好的

在有问题的第二种环境中(更安全),

  • Java -> 本地 mongodb :好的
  • Java -> 远程 mongodb:异常
  • Java->远程redis:异常

有趣的是 mongo.exe (控制台)连接到远程 mongodb 没有问题。(我没有在redis测试过)

我已经升级了最新版本的java。将 JSP 版本转换为 java 控制台进行测试。并更改了一些代码。没有任何效果。

m = new MongoDB( ADDRESS, PORT );
m.setReadPreference( ReadPreference.SECONDARY );
DB db = m.getDB("test");
db.authenticate( ID, PASS.toCharArray() ); //!< exception

MongoDB 异常消息

DBPortPool gotError
Warning: emptying DBPortPool to [ADDRESS...]:27017 b/c of error
java.io.IOException: couldn't connect to [/[ADDRESS...]:27017]     bc:java.net.SocketException: Permission denied: connect

Redis 异常消息

JedisConnectionException: java.net.SocketException: Permission denied: connect

我认为这涉及一些安全问题。第二台电脑处于非常严格的安全网络中。(我通过 VPN 使用它们)

4

2 回答 2

1

Self-answer. This is an issue related to JDK7 and VPN. http://www.java.net/node/703177

于 2012-07-04T13:23:57.043 回答
0

您是否能够远程登录到远程主机和侦听端口(前提是远程计算机没有完全阻止远程登录尝试)?我假设您确定远程 IP 地址/端口号,因为您提到您的 mongo 控制台能够从第一台计算机连接到第二台计算机。如果您确实需要向某人表明这是一个网络问题,您可以查看在两台计算机上使用wireshark 等 - 您将能够看到数据包离开第一台计算机但被第二台计算机拒绝。

于 2012-06-26T15:53:03.303 回答