Назад | Перейти на главную страницу

Не удается подключиться к Postgres с удаленного адреса

Я не могу подключиться со своей машины к серверу, на котором работает Postgres. Думаю, я все правильно настроил. На сервере нет брандмауэра.

Я запускаю Postgres 9.1.9 на Ubuntu 12.04 LTS

Это из /etc/postgresql/9.1/main/pg_hba.conf

local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

local   all             all                                     peer
host    all             all             0.0.0.0/0               md5
host    all             all             ::1/128                 md5

у меня есть listen_addresses = '*' в /etc/postgresql/9.1/main/postgresql.conf

Я останавливал и запускал службу несколько раз.

netstat -tulnp:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      19312/mongod    
tcp        0      0 0.0.0.0:28017           0.0.0.0:*               LISTEN      19312/mongod    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      978/sshd        
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      30239/postgres  
tcp6       0      0 :::22                   :::*                    LISTEN      978/sshd        
tcp6       0      0 :::5432                 :::*                    LISTEN      30239/postgres 

Моя таблица IP пуста.

Когда я пытаюсь подключиться к серверу с

psql -U postgres -h <MY_IP>

Я получил:

psql: could not connect to server: Operation timed out
Is the server running on host "<MY_IP>" and accepting
TCP/IP connections on port 5432?

Любая помощь? Спасибо

tcpdump на порту 5432:

16:33:10.548507 7c:c3:a1:a2:d9:27 (oui Unknown) > 00:00:5e:00:01:01 (oui Unknown), ethertype IPv4 (0x0800), length 78: <MY_MAC> > <MY_SERVER>.postgresql: Flags [S], seq 95915852, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1189142453 ecr 0,sackOK,eol], length 0

Я могу подключиться к postgres на сервере (psql -U postgres -h localhost), но я не могу подключиться к 5432 через telnet со своей машины.

Похоже, ваш сетевой трафик блокируется брандмауэром. В вашем сообщении нет информации о сетях (клиент и сервер postgres), но похоже, что есть некоторые правила брандмауэра, которые блокируют трафик между клиентом и сервером.

Помните, что на машине, на которой запущен клиент, также могут быть установлены правила iptables, которые блокируют исходящую или входящую часть соединений.

вы используете ipv4 или ipv6.

потому что ваш образец tcpdump показывает соединение ipv6, и вы не включили соединение ipv6 в pg_hba.conf

:: 1/128 --------> loopback