【问题标题】:Neo4j remote shell connection refused on AWS database serverAWS 数据库服务器上的 Neo4j 远程 shell 连接被拒绝
【发布时间】:2015-06-23 17:04:07
【问题描述】:

我的 Neo4j 数据库服务器托管在 AWS 中。

我在我的 Mac 上使用这个命令:

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

在 AWS Neo4j 数据库服务器中启用了 1337 端口。

我在文件 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

不知道怎么解决。

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    我认为您必须在服务器上打开相当多的端口,除了 1337 和 1099 之外,还有一个 RMI 端口的端口范围。

    例如What port is used by Java RMI connection?

    您也可以通过 http 使用 neo4j(例如在浏览器中使用 /webadmin)或通过以下脚本:https://gist.github.com/jexp/a9bf4cd3a16eb6c5997b

    【讨论】:

    • 我可以使用 http://...:7474/browser/ 和 http://...:7474/admin/ 但我不知道要查看哪个参数RMI 正在使用哪个端口。
    • 我还可以通过 RoR 应用从我的开发环境连接。
    • 脚本 neo-http-shell.sh 在使用端口 7474 时有效。不适用于端口 1337。
    • 是的,这就是目的。
    • 但是开头描述的命令仍然不起作用。
    【解决方案2】:

    此密钥remote_shell_host=127.0.0.1 使您可以通过环回连接。您必须指定接收连接的网络适配器。您还可以为任何网络接口指定0.0.0.0

    【讨论】:

    • 0.0.0.0 对我不起作用。当我使用 0.0.0.0 而不是 127.0.0.1 时,服务器没有启动。
    • 我能够使 0.0.0.0 工作,我能够重新启动服务器。但是,在尝试此命令时: ./bin/neo4j-shell -host xx.xxx.xxx.xxx -port 1337 -name shell 我仍然收到错误消息“连接被拒绝”。我可以ping通这个IP地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    相关资源
    最近更新 更多