2015-06-23 39 views
1

我的Neo4j数据库服务器位于AWS中。在AWS数据库服务器上拒绝Neo4j远程shell连接

我从我的Mac该命令使用:

$ ./bin/neo4j-shell -host xx.xxx.xxx.xxx -port 1337 -name shell 

端口1337的AWS Neo4j的数据库服务器已启用。

我有这些线路中的文件neo4j.properties未注释:

remote_shell_enabled=true 
remote_shell_host=127.0.0.1 
remote_shell_port=1337 

我收到错误:连接被拒绝

具有细节:

java.rmi.ConnectException: Connection refused to host: xx.xxx.xxx.xxx; nested exception is: 
    java.net.ConnectException: Connection refused 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619) 
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216) 
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202) 
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:341) 
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 
    at java.rmi.Naming.lookup(Naming.java:101) 
    at org.neo4j.shell.impl.RmiLocation.getBoundObject(RmiLocation.java:261) 
    at org.neo4j.shell.impl.RemoteClient.findRemoteServer(RemoteClient.java:69) 
    at org.neo4j.shell.impl.RemoteClient.<init>(RemoteClient.java:62) 
    at org.neo4j.shell.impl.RemoteClient.<init>(RemoteClient.java:45) 
    at org.neo4j.shell.ShellLobby.newClient(ShellLobby.java:178) 
    at org.neo4j.shell.StartClient.startRemote(StartClient.java:302) 
    at org.neo4j.shell.StartClient.start(StartClient.java:179) 
    at org.neo4j.shell.StartClient.main(StartClient.java:124) 
Caused by: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at java.net.Socket.connect(Socket.java:528) 
    at java.net.Socket.<init>(Socket.java:425) 
    at java.net.Socket.<init>(Socket.java:208) 
    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40) 
    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:147) 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613) 
    ... 13 more 

不知道如何解决它。

回答

1

我想你不得不在你的服务器上打开不少端口,除了1337和1099也是RMI端口的端口范围。

例如What port is used by Java RMI connection?

你也可以使用的Neo4j通过HTTP(例如,在与/ WebAdmin的浏览器),或者通过这个脚本:https://gist.github.com/jexp/a9bf4cd3a16eb6c5997b

+0

我能够使用http:// ...:7474/browser /和http:// ...:7474/admin /但我不知道要检查哪个参数来查看RMI正在使用哪个端口。 – LDB

+0

此外,我可以通过RoR应用程序从我的开发环境连接。 – LDB

+0

使用端口7474时,脚本neo-http-shell.sh工作。不与端口1337一起工作。 – LDB

0

这关键remote_shell_host=127.0.0.1,使您能够通过只回送连接。您必须指定您将通过哪个网络适配器接收连接。您也可以为任何网络接口指定0.0.0.0

+0

0.0.0.0不适用于我。当我使用0.0.0.0而不是127.0.0.1时,服务器未启动。 – LDB

+0

我能够使0.0.0.0工作,我能够重新启动服务器。但是,尝试此命令时:./bin/neo4j-shell -host xx.xxx.xxx.xxx -port 1337 -name shell我仍然收到错误消息“连接被拒绝”。我可以ping通这个IP地址。 – LDB