Java套接字权限被拒绝:连接

时间:2012-06-26 15:15:11

标签: java sockets mongodb networking redis

我遇到网络连接问题。

情况就是这样。

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

在fisrt环境中,

  • 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

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

2 个答案:

答案 0 :(得分:1)

自的答案。 这是与JDK7和VPN相关的问题。 http://www.java.net/node/703177

答案 1 :(得分:0)

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