目录
问题描述
解决方案
原因刨析
问题描述
我在云服务上部署了neo4j,并且设置了neo4j配置以及服务器的安全组,以便本地电脑可以访问。但是当我进入neo4j网页(http://<我的服务器IP>:7474)时,却无法访问。
解决方案
我先检查了一下防火墙
sudo firewall-cmd --list-ports
得到的信息是:防火墙没有运行。按理说,我防火墙都没打开,其他电脑的访问应该不会被拦截。但是我记得之前配置的时候,是开启了防火墙并且专门配置了neo4j的两个端口允许开放(当时配置后,本地电脑是可以访问的)。
抱着试一试的心态,我允许了防火墙,并重新配置了了neo4j的两个端口允许开放
sudo firewall-cmd --permanent --add-port=7474/tcp
sudo firewall-cmd --permanent --add-port=7687/tcp
sudo firewall-cmd --reload
保险起见,又重启了neo4j
systemctl restart neo4j
结果网页版就能打开了
原因刨析
通过查阅资料,我找了原因:
firewalld
关闭后,系统不会主动应用firewalld
之前的规则,而是回退到默认的 iptables 规则,这些默认规则可能不会开放 7474 和 7687 端口,导致外部访问失败。firewalld
主要是iptables
的一个管理工具,当firewalld
关闭时,它管理的规则不会生效。- 默认情况下,大多数 Linux 发行版的 iptables 规则是封闭的,不允许外部访问非标准端口(比如 7474 和 7687)。