Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Ubuntu中的开放端口_Postgresql_Ubuntu_Port - Fatal编程技术网

Postgresql Ubuntu中的开放端口

Postgresql Ubuntu中的开放端口,postgresql,ubuntu,port,Postgresql,Ubuntu,Port,所以我正在使用AWS和EC2,并试图为Postgresql打开一个端口。在AWS中,我已经打开了它: TCP Port (Service) Source Action 0 - 65535 sg-92aadda2 (default) Delete 22 (SSH) 0.0.0.0/0 Delete 80 (HTTP) 0.0.0.0/0

所以我正在使用AWS和EC2,并试图为Postgresql打开一个端口。在AWS中,我已经打开了它:

TCP
Port (Service)      Source                  Action
0 - 65535           sg-92aadda2 (default)   Delete
22 (SSH)            0.0.0.0/0               Delete
80 (HTTP)           0.0.0.0/0               Delete
5432                0.0.0.0/0               Delete
执行netstat时,端口似乎正在侦听:

# netstat -an | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN
执行localhost nmap时,我会得到以下结果:

 Nmap scan report for localhost (127.0.0.1)
 Host is up (0.000010s latency).
 Not shown: 997 closed ports
 PORT      STATE SERVICE
 22/tcp    open  ssh
 80/tcp    open  http
 5432/tcp  open  postgresql
PORT      STATE  SERVICE
22/tcp    open   ssh
80/tcp    open   http
5432/tcp  closed postgresql
这就是乐趣的开始。当我从备用主机执行nmap时,会得到以下结果:

 Nmap scan report for localhost (127.0.0.1)
 Host is up (0.000010s latency).
 Not shown: 997 closed ports
 PORT      STATE SERVICE
 22/tcp    open  ssh
 80/tcp    open  http
 5432/tcp  open  postgresql
PORT      STATE  SERVICE
22/tcp    open   ssh
80/tcp    open   http
5432/tcp  closed postgresql
我还查看了我的iptables,看看我是否遗漏了什么,但是iptables看起来是空的(这应该意味着它们实际上做的不多)

我是不是因为不知道如何访问ip而遗漏了什么。无论何时尝试,都会出现以下错误:

Is the server running on host "xx.xx.xx.xx" and accepting TCP/IP connections on port 5432?
我怎样才能打开端口,让外部服务器可以访问它?提前感谢=)如果您需要任何其他数据,请告诉我

编辑:如下所述,我测试了telnet,并且能够将telnet连接到本地主机,但是当从外部尝试时,我得到:

$ telnet xx.xx.xx.xx 5432
Trying xx.xx.xx.xx...
telnet: Unable to connect to remote host: Connection refused
另外,我仔细检查了一下,并且能够正确地将telnet连接到ssh:

$ telnet xx.xx.xx.xx 22
Trying xx.xx.xx.xx...
Connected to xx.xx.xx.xx.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1

编辑
/etc/postgresql//main/postgresql.conf
并将
侦听地址设置为传出接口或所有接口。重新启动postgresql:
sudo服务postgresql重新启动

最后一种方法对我有效(thks Julio):

编辑:postgresql.conf

sudo nano/etc/postgresql/9.3/main/postgresql.conf

启用或添加:

listen\u addresses='*'

重新启动数据库引擎:

sudo服务postgresql重启


此外,您可以检查文件:pg_hba.conf

sudo nano/etc/postgresql/9.3/main/pg_hba.conf

并添加您的网络或主机地址:


托管所有192.168.1.0/24 md5

如果您编辑了postgresql.confmain/pg_hba.conf但仍有问题,请尝试

sudo ufw allow 5432/tcp

要解锁psql端口

如果您使用docker连接到主机的postgresql,您必须使用主机的ip,您可以通过运行
ip addr show docker0
获得该ip,希望它能帮助他人。

您遗漏了一个实际问题,因此不完全清楚您希望我们回答什么。此外,“每当我尝试时,我都会得到以下错误:“你在尝试什么,导致了这个错误?”?您是否尝试将telnet连接到服务器?此外,iptables中没有太多内容,但是如果您启用了默认的拒绝,那么除了您的iptables中指定允许的内容之外,没有任何内容进入该框iptables@RussellUhl对不起,我以为我已经问过了,但显然没有。我在最后加上了这个问题。我没有尝试远程登录服务器。我现在就试试,别担心。我在上面编辑了我的评论,以便在您的iptables中包含一些内容。你也一定要检查一下。对不起,恐怕我不知所措。确保您将防火墙关闭回原来的位置,直到找到solution@Aram看起来我们的速度和上面的评论一样:)这对我也有帮助:这只是对任何做这件事的人的评论:
listen\u addresses
IP address参数就是posgresql正在监听的参数(输入目标在
iptables
语法中),而不是它正在侦听的IP(输入源)。