解决 连接 远程 Neo4j

解决 连接 远程 Neo4j_第1张图片
image.png

公司给了一台机器M ,128G 10T , 单单内存就 非常棒了,当然 不白给,就是为了 整 neo4j + spark 的反欺诈尝试。

我自己在本地 搭建了 neo4j 和spark 全套,测试都已经没有问题,然后开始在 M 上 搭建开发环境,又要从零开始,说实话不是运维,再次做的时候还是有点不耐烦,顺便还帮同事在她本机配置了环境,一天时间都在整理。老大说,你应该整个脚本,让大家可以自动化 安装配置这些环境,其实不是很难,但是我个人认为还是有点 繁琐

neo4j 使用的 Linux 企业版 3.3.3,这个 商业版 按道理是收费的,不过我们可以几乎免费使用真爽。快 稳 狠

不过启动 Neo4j 尝试 本地去连接 M 上的 Neo4j 发现 连接被拒绝了。悲剧了。

开始找原因,第一 当然怀疑 是不是 Neo4j 没有完全启动成功,检验了一番,Neo4j 没有报错,log 也无错误
第二 开始怀疑是不是防火墙,按道理运维给你的机器,防火墙一般都是 最严格的,只有ssh 22 端口给你留着

首先 先查看 M 是否安装 了 iptables
发现有
然后看 防火墙规则
iiptables -L
发现 基本没有定义
然后 nc telnet 测试 端口 连接
在 M 机器 启动端口连接 监听

nc  -l  7687

本地则启动 telnet 尝试连接

telnet  123.23.43.23  7687

发现 根本没有反应,说明 端口真的没有打开。7474 尝试也是这样

然后 在 M 把 Neo4j 的 7474 7687 两个 端口 打开 ,保存 并 重启防火墙, 要格外注意 dport 前方是两个 【-】,

iptables -A INPUT -p udp --dport 7687 -j ACCEPT
iptables -A INPUT -p tcp  --dport 7687 -j ACCEPT
 iptables -A INPUT -p tcp  --dport 7474 -j ACCEPT
 iptables -A INPUT -p udp  --dport 7474 -j ACCEPT

保存 并重启防火墙 查看 配置规则是否生效

//保存规则
service iptables save

//重启下iptables

service iptables restart

iptables  -L

然后 nc telnet 测试 这两个端口 ,发现可以连接了 !!!!

但是 尝试连接 Neo4j还是没有成功,一度陷入僵局 ,难道 还有防火墙之外的墙,百度发现 原来 Neo4j 的配置文件也需要做一些
修改 ,并不像 neo4j console 提示的那样 ,本身 neo4j 并没有开启远程访问
然后修改 Neo4j 根目录下的 $NEO4J_HOME/conf/neo4j.conf
找到四项被注释掉的,去掉 【#】 打开 生效就可以

dbms.connectors.default_listen_address=0.0.0.0
dbms.connector.bolt.enabled=true
dbms.connector.bolt.listen_address=:7687
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
dbms.connector.https.enabled=true
dbms.connector.https.listen_address=:7473

修改完后 保存并退出,重启 Neo4j ,再次本地 连接M上的Neo4j 发现连上了。 而且M的 7474 web 也可以在本地访问了

参考:
Neo远程无法连接
http://neo4j.com.cn/topic/58e60893412d3d2c19c32de9

centos防火墙 修改
https://www.jianshu.com/p/c56ff12df648

你可能感兴趣的:(解决 连接 远程 Neo4j)