我们在Centos 7上安装了couchdb,我们遇到了从Amazon Centos Image上的内部IP地址或公共IP地址连接到它的问题。我得到的这条消息:
curl: (7) Failed connect to <public_ip>:5984; Connection refused
curl: (7) Failed connect to <internal_ip>:5984; Connection refused
但如果我在本地点击它就没问题了:
curl 0.0.0.0:5984
Response: {"couchdb":"Welcome","uuid":"b320fd3c83007007ce2a620ef8930df4","version":"1.6.1","vendor":{"name":"The Apache Software Foundation","version":"1.6.1"}}
因此,我确信无论是网络问题还是防火墙问题。
这就是我所做的: Centos 7(AMI:ami-96a818fe)
安装了erlang和couchdb
yum update
设置防火墙:
sudo yum install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewall-cmd --get-active-zones (made sure we have public available)
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --permanent --zone=public --add-port=5984/tcp
实施变更:
sudo firewall-cmd --reload
确保它在那里:
sudo firewall-cmd --permanent --list-all
创建了向全世界开放的安全组:
Type Protocol Port Range Source
All TCP TCP 0 - 65535 0.0.0.0/0
我还缺少什么?看起来亚马逊已经全部设定,但为什么我无法从公共IP上为此端口或机器上的内部IP命中此端口?
由于
答案 0 :(得分:0)
我认为由于--add-*
选项,您的--perm
命令不会立即生效。 --reload
可能不会引发永久性更改。不用--perm
再试一次,看看端口是否实际打开:
sudo firewall-cmd --zone=public --add-port=5984/tcp
您通常希望尝试使用这样的命令,然后只有在知道它们按预期工作时才添加--permanent
。