2017-03-08 280 views
1

我正在使用Linux VM(Ubuntu 15.10)啓動Postgres數據庫,據我所知,一切都應該配置正確。無法讓PostgreSQL 9.4偵聽端口5432

我的防火牆被禁用:

[email protected]:~$ sudo ufw status numbered Status: inactive 

但它只是在端口22上

[email protected]:~$ netstat -an | grep "LISTEN " 
tcp  0  0 0.0.0.0:22    0.0.0.0:*    LISTEN 
tcp6  0  0 :::22     :::*     LISTEN 

聽取如果我啓用防火牆,並告訴它來聽5432,它顯示了在規則:

[email protected]:~$ sudo ufw status verbose 
Status: active 
Logging: on (low) 
Default: deny (incoming), allow (outgoing), disabled (routed) 
New profiles: skip 

To       Action  From 
--       ------  ---- 
22       ALLOW IN Anywhere 
22/tcp      ALLOW IN Anywhere 
5432/tcp     ALLOW IN Anywhere 
5432      ALLOW IN Anywhere 
22 (v6)     ALLOW IN Anywhere (v6) 
22/tcp (v6)    ALLOW IN Anywhere (v6) 
5432/tcp (v6)    ALLOW IN Anywhere (v6) 
5432 (v6)     ALLOW IN Anywhere (v6) 

但是我得到了和上面的netstat相同的結果。

據我可以告訴從研究的問題,我有正確的價值觀在我的postgresql.conf文件:

#------------------------------------------------------------------------------ 
# CONNECTIONS AND AUTHENTICATION 
#------------------------------------------------------------------------------ 

# - Connection Settings - 

listen_addresses = '*'   # what IP address(es) to listen on; 
             # comma-separated list of addresses; 
             # defaults to 'localhost'; use '*' for all 
             # (change requires restart) 
port = 5432        # (change requires restart) 

,我都試過IP範圍和特定IP地址作爲pg_hba信任.conf文件。

# Database administrative login by Unix domain socket 
local all    postgres        ident sameuser 

# TYPE DATABASE  USER   ADDRESS     METHOD 

# "local" is for Unix domain socket connections only 
local all    all          md5 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 
#local replication  postgres        peer 
#host replication  postgres  127.0.0.1/32   md5 
#host replication  postgres  ::1/128    md5 

host all    all    10.0.0.0/255   trust 
host all    all    10.11.0.0/255   trust 
host all    all    0.0.0.0/0    trust 

最後,Postgres的運行過程中,每

[email protected]:~$ sudo service postgresql status 
● postgresql.service - PostgreSQL RDBMS 
    Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) 
    Active: active (exited) since Wed 2017-03-08 11:09:57 CST; 57min ago 
    Process: 787 ExecStart=/bin/true (code=exited, status=0/SUCCESS) 
Main PID: 787 (code=exited, status=0/SUCCESS) 
    CGroup: /system.slice/postgresql.service 

Mar 08 11:09:57 UBUNTUMACHINEsystemd[1]: Starting PostgreSQL RDBMS... 
Mar 08 11:09:57 UBUNTUMACHINEsystemd[1]: Started PostgreSQL RDBMS. 
Mar 08 11:32:21 UBUNTUMACHINEsystemd[1]: Started PostgreSQL RDBMS. 
Mar 08 11:32:26 UBUNTUMACHINEsystemd[1]: Started PostgreSQL RDBMS. 
+0

你能告訴我們錯誤信息嗎? –

+0

我不確定你在找什麼;按照我提交的第二個代碼塊,它不會顯示爲在端口5432上偵聽。 –

+0

'netstat -ltn'說什麼? – wildplasser

回答

1
  • 日誌告訴我無效CIDR掩碼地址10.0.0.0/255
  • :: 255可能會大於32

Postgres拒絕啓動,因爲它拒絕了網絡掩碼/255它大於可能的數目(32位)IP地址中的位。您可以認爲這對.hba解析器有點挑剔,但也可以考慮配置錯誤。

在任何情況下:通過一些合理的替代/255,像/24(或/16,因爲你有兩個這些條目)和:通過一些更安全的替代trust,這似乎工作崗位。