Как узнать порт postgresql linux
Перейти к содержимому

Как узнать порт postgresql linux

  • автор:

Проверить, открыт ли порт 5432 для Postgresql с помощью Telnet

Правильно, что порт 5432 закрыт на самой Ubuntu?
Если да, как его открыть?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Postgre не может использовать порт 5432. PostgreSQL на Docker
Не получается работать с контейнером. Постоянно падает. Вот логи: The files belonging to this.

проверить открыт ли порт
С помощью какой команды проверит открыт ли порт на моем ПК к примеру 25 Добавлено через 10 минут.

Socket UDP проверить открыт ли порт
Есть ли возможность сначала проверить открыт ли порт на удаленном сервере, и если открыт, отправить.

Как проверить открыт\закрыт порт по внешнему IP
Собственно вопрос в теме. Как сделать проверку порта по моему внешнему IP и вывести в лабл.

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

7473 / 4023 / 504
Регистрация: 13.03.2013
Сообщений: 14,752
Записей в блоге: 12

ЦитатаСообщение от yagrus2 Посмотреть сообщение

Если да, как его открыть?

iptables -I INPUT -p tcp --match multiport --dports 5432 -j ACCEPT

Эксперт по компьютерным сетямЭксперт NIX

12935 / 7340 / 785
Регистрация: 09.09.2009
Сообщений: 28,711

ЦитатаСообщение от yagrus2 Посмотреть сообщение

Правильно, что порт 5432 закрыт на самой Ubuntu?

  • порт либо ОТКРЫТ, либо НЕ ЗАКРЫТ в файерволе
  • на компьютере запущено приложение, которое «слушает» указанный порт (ожидает на нем подключений)
sudo iptables -L -n -v

проверка запущенных приложений с номерами портов, которые они слушают:

sudo netstat -anp | grep -i listen

(для того, чтобы в система была програма возможно потребуется установить пакет net-tools

Добавлено через 48 секунд

ЦитатаСообщение от Maks Посмотреть сообщение

—match multiport
а зачем «мультипорт» для ОДНОГО порта?

Эксперт NIX

2944 / 832 / 188
Регистрация: 14.01.2013
Сообщений: 3,958

ЦитатаСообщение от yagrus2 Посмотреть сообщение

Команда telnet для порта 5432 — не проходит, а для протра 80 проходит

С большой долей вероятности, файер тут не при чём. Порт 5432 кто слушает?

Посмотреть прослушиваемые порты можно и так:

ss -tln

А проверить порт так:

nmap -Pn -p5432 192.168.21.140

Регистрация: 30.05.2022
Сообщений: 31
Попробовал предложенные команды.
Получил такой результат
Регистрация: 30.05.2022
Сообщений: 31
Kubuntovod , вот результат ваших команд.
Порт закрыт.
Регистрация: 30.05.2022
Сообщений: 31
Dmitry, Maks предложил команду с мультипортом.

iptables -I INPUT -p tcp --match multiport --dports 5432 -j ACCEPT

Почему не стоит так делать?

Добавлено через 2 минуты
То есть. 5432 -закрыт. Его слушает postgres.

Как его открыть?

Эксперт NIX

2944 / 832 / 188
Регистрация: 14.01.2013
Сообщений: 3,958

ЦитатаСообщение от yagrus2 Посмотреть сообщение

iptables -I INPUT -p tcp —dports 5432 -j ACCEPT

Так достаточно будет. Мультипорт, это когда несколько портов, в одном правиле, насколько я помню.

Но иптабля говорит, что там всё разрешено.

Добавлено через 3 минуты
А точно такой адрес? Покажите ещё вывод

ip r

Добавлено через 3 минуты
А, кстати! Порт слушается на 127.0.0.1 . А должно быть типа такого 0.0.0.0:5432. То бишь, греть ухо во все стороны, а не только локально. Это сервер БД так настроен. Надо переделать.

Эксперт по компьютерным сетямЭксперт NIX

12935 / 7340 / 785
Регистрация: 09.09.2009
Сообщений: 28,711

ЦитатаСообщение от yagrus2 Посмотреть сообщение

То есть. 5432 -закрыт. Его слушает postgres.
Как его открыть?

с портами у вас итак все хорошо — по всем трем цепочкам стоит «политика» «принимать». Так что, можете смело считать, что ФАЙЕРВОЛА У ВАС СЕЙЧАС НЕТ.
а причину вам написал Kubuntovod, ваш постгрес слушает только на локалхосте (127.0.0.х), и достучаться к нему С ЛЮБОЙ «наружи» просто не возможно. Это кстати, один из «стандартных» методов защиты серверов баз данных

Регистрация: 30.05.2022
Сообщений: 31
Kubuntovod, вот

user@v02-dev-airflow-001:~$ ip r default via 192.168.20.254 dev ens32 proto static metric 20100 169.254.0.0/16 dev ens32 scope link metric 1000 192.168.20.0/22 dev ens32 proto kernel scope link src 192.168.21.140 metric 100 192.168.20.254 dev ens32 proto static scope link metric 20100 192.168.21.0/24 dev ens32 proto kernel scope link src 192.168.21.140 metric 100

Эксперт NIX

2944 / 832 / 188
Регистрация: 14.01.2013
Сообщений: 3,958

ЦитатаСообщение от yagrus2 Посмотреть сообщение

169.254.0.0/16 dev ens32 scope link metric 1000

Надо проверить, есть ли смысл в этом маршруте. Если нет, вынести нафиг.

1 2 3
user@v02-dev-airflow-001:~$ ip r default via 192.168.20.254 dev ens32 proto static metric 100 192.168.20.0/22 dev ens32 proto kernel scope link src 192.168.21.140 metric 100

ИМХА, вот к такому виду надо привести. Хоть постгресу это не поможет, зато порядок будет. А в настройках сервера БД надо изменить адресацию, на которой он будет слушать порт. Если нужен доступ отовсюду, то чего-то-там-листен-адрес = «*»

Регистрация: 30.05.2022
Сообщений: 31

Лучший ответ

Сообщение было отмечено Maks как решение

Решение

Спасибо всем за помощь!

Изначально задача была в том, чтобы суметь достучаться до бызы Postgres по порту 5432 из вне (внутри локальной сети).

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

1. Находим расположение первого конфигурационного файла postgresql.conf

su - postgres -c "psql -c 'SHOW config_file;'"

2. С помощь текстового редактора nano открываем этот файл

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

3. Находим блок настрок

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

4. Изменяем значение параметра listen_addresses на ‘*’. По умолчанию данный параметр имеет значение ‘localhost’

listen_addresses = '*'

5. Сохраняем изменения

Нажимаем сочетание клавиш Ctrl+X, а далее Y. То есть выходим из файла с сохранением

6. рестарт postgres

sudo service postgresql restart

7. Нахождение второго конфигурационного файла pg_hba.conf. Специальной команды я не нашел, поэтому последовательно использовал команды: cd и ls
cd — перейти в папку , ls — посмотреть содержимое папки

cd etc

чтобы узнать ее подпапки.

Таким образом я добрался до нужного мне файла
/etc/postgresql/13/main/pg_hba.conf

8. Открываем в текстовом редакторе nano для редактирования pg_hba.conf

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

9. Добавляем в конце файла новую строку вида:

host dbyagrtest uyagr 192.168.20.81/22 password

dbyagrtest — имя базы
uyagr — имя пользователя
192.168.20.81/22 — хост с которого будут идти запросы к postgres

10. Сохраняем изменения

Нажимаем сочетание клавиш Ctrl+X, а далее Y. То есть выходим из файла с сохранением

11. рестарт postgres

sudo service postgresql restart

638 / 240 / 52
Регистрация: 30.08.2017
Сообщений: 1,551

всё правильно, только не nano, а vim
не папки и подпапки, а каталоги и подкаталоги или директории и поддиректории
и не service, а systectl

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

7473 / 4023 / 504
Регистрация: 13.03.2013
Сообщений: 14,752
Записей в блоге: 12

ЦитатаСообщение от _sg2 Посмотреть сообщение

только не nano, а vim
И то, и другое текстовые редакторы, поэтому тут как кому угодно (лично я за «nano»).
@ Kubuntovod

ЦитатаСообщение от _sg2 Посмотреть сообщение

всё правильно, только не nano, а vim
Та хоть mcedit 🙂 В vim не только лишь все могут распальцовывать.

Меню пользователя @ Kubuntovod

Эксперт по компьютерным сетямЭксперт NIX

12935 / 7340 / 785
Регистрация: 09.09.2009
Сообщений: 28,711

ЦитатаСообщение от _sg2 Посмотреть сообщение

и не service, а systectl

не вмер Данило, болячка задавила

ЦитатаСообщение от yagrus2 Посмотреть сообщение

192.168.20.81/22 — хост с которого будут идти запросы к postgres
. зачем маска, если указан конкретный айпишник?
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как проверить открыт порт или закрыт
Привет! Подскажите как проверить на АРМ открыт порт или закрыт например (110), желательно ч/з cmd?

Как проверить, открыт или закрыт порт по внешнему IP?
Доброго утрица всем. Собственно вопрос в шапке. Нужно проверить порт(закрыт он или открыт) по.

Изменить порт 5432 на 5433
Нужно изменить порт 5432 на 5433 Как это можно сделать? Пытался изменить параметр в файле.

Возникает ошибка HostNotFoundError [SequelizeHostNotFoundError]: getaddrinfo ENOTFOUND 5432 при подключении к PostgreSQL
Здравствуйте! Нужно присоединиться к базе PostgreSQL через NodeJS. Файл index.js: .

Как открыть порт для telnet?
Добрый день, изучил тему по iptables, пока новичок в этом деле. На сервере 2 сетевые карты: lan.

Find the host name and port using PSQL commands

I have PSQL running, and am trying to get a perl application connecting to the database. Is there a command to find the current port and host that the database is running on?

1,976 4 4 gold badges 19 19 silver badges 35 35 bronze badges
asked Apr 8, 2011 at 17:13
7,310 14 14 gold badges 37 37 silver badges 54 54 bronze badges

20 Answers 20

SELECT * FROM pg_settings WHERE name = 'port'; 

23k 10 10 gold badges 68 68 silver badges 88 88 bronze badges
answered Apr 8, 2011 at 17:21
user330315 user330315
This doesn’t work if you have multiple servers in the same cluster, unfortunately.
Mar 1, 2013 at 22:57
This actually gives you the port number not the server host.
May 8, 2013 at 18:12
@hd1: And? The question was (also) how to get the port number. And that is what the query returns.
– user330315
May 8, 2013 at 22:26
yes, but if you can’t connect to the database, you can’t execute that 😛
May 5, 2020 at 16:08

This command will give you postgres port number

 \conninfo 

If Postgres is running on a Linux server, you can also use the following command

sudo netstat -plunt |grep postgres 

OR (if it comes as postmaster)

sudo netstat -plunt |grep postmaster 

and you will see something similar as this

tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 140/postgres tcp6 0 0 ::1:5432 . * LISTEN 140/postgres 

In this case, the port number is 5432 which is also the default port number

answered Jun 24, 2016 at 10:36
3,834 1 1 gold badge 28 28 silver badges 36 36 bronze badges
it is coming as postmaster for 5432.
Feb 18, 2017 at 0:27
this is the right answer. the chosen answer is true but not related to the question.
Apr 20, 2018 at 5:52

The default PostgreSQL port is 5432 . The host that the database is operating on should have been provided by your hosting provider; I’d guess it would be the same host as the web server if one wasn’t specified. Typically this would be configured as localhost, assuming your web server and database server are on the same host.

148k 96 96 gold badges 419 419 silver badges 335 335 bronze badges
answered Apr 8, 2011 at 17:18
19.4k 19 19 gold badges 111 111 silver badges 137 137 bronze badges
I encountered this problem too, and trying 5433 port, and this is working
Aug 7, 2018 at 12:10
This doesn’t actually answer the question.
Apr 17, 2020 at 5:53

@s.k Read the context. The OP didn’t know the host and port for their postgres database. They can connect with a basic psql command, so that implies localhost:5432 . Unless someone got clever with env vars/aliases/etc. I don’t love my answer a decade later, but solving the x instead of y is perfectly fine and in this case has helped hundreds of people.

Apr 17, 2020 at 12:43

I agree with @s.k I’m on a remote server where the database is hosted so of course can connect locally there via localhost, but I wish for an external application on a different server to access the database where of course the database doesn’t exist locally, and hence knowing the answer to the original question would be useful for me

Mar 11, 2021 at 5:09
I have the solution. But thinking how can I push this in the context.
Mar 14, 2022 at 14:11

select inet_server_addr(); gives you the ip address of the server.

answered Sep 17, 2012 at 7:05
3,958 1 1 gold badge 18 18 silver badges 16 16 bronze badges

regrettably this does not give the «live» hostname if you’re connecting via ssh proxy — I keep getting «127.0.0.1»

Jan 5, 2015 at 18:28

I did not get anything: $postgres=# select inet_server_addr(); inet_server_addr —————— (1 row)

Apr 14, 2017 at 5:37
Did not give the host name
Jul 9, 2018 at 16:13

This is non-sql method. Instructions are given on the image itself. Select the server that you want to find the info about and then follow the steps.

enter image description here

answered Jun 5, 2014 at 15:43
14.3k 1 1 gold badge 48 48 silver badges 91 91 bronze badges

select inet_server_addr( ), inet_server_port( ); 

answered Jun 2, 2016 at 19:34
5,841 47 47 silver badges 39 39 bronze badges
How is this any different from Kaarel Kitsemets’s answer and Andromida’s answer?
Jun 2, 2016 at 19:53
It answers the question that was asked as a single copy and paste solution.
Jun 3, 2016 at 11:41

select inet_server_port(); gives you the port of the server.

answered Apr 10, 2014 at 11:20
1,095 1 1 gold badge 11 11 silver badges 28 28 bronze badges

On bluehost this query returns a blank field when in reality the port was 5432. This query does not always return the port number.

Apr 6, 2015 at 21:14

From the terminal you can simply do a «postgres list clusters»:

pg_lsclusters 

It will return Postgres version number, cluster names, ports, status, owner, and the location of your data directories and log file.

answered Jan 31, 2021 at 7:14
mrwonderfulness mrwonderfulness
371 2 2 silver badges 7 7 bronze badges

The postgresql port is defined in your postgresql.conf file.

For me in Ubuntu 14.04 it is: /etc/postgresql/9.3/main/postgresql.conf

Inside there is a line:

port = 5432 

Changing the number there requires restart of postgresql for it to take effect.

answered Apr 6, 2015 at 21:11
Eric Leschinski Eric Leschinski
148k 96 96 gold badges 419 419 silver badges 335 335 bronze badges

This is a way better answer than all of the above. Additionally, it is possible to show the current path by using sudo -u postgres psql -c ‘SHOW config_file’ and also the path is nowadays 14 of course.

Feb 3 at 15:10

From the terminal you can do:

I would suggest reading a documentation on their exhaustive list of all commands using:

answered Nov 7, 2019 at 6:39
Vinayak Mishra Vinayak Mishra
341 4 4 silver badges 11 11 bronze badges

You can use the command in psql \conninfo you will get You are connected to database «your_database» as user «user_name» on host «host_name» at port «port_number».

answered Jul 26, 2019 at 12:35
177 1 1 gold badge 2 2 silver badges 7 7 bronze badges

To find the port number you can run this command (assuming you are on localhost)

select setting from pg_settings where name='port'; 

answered Aug 26, 2021 at 21:02
A-Sharabiani A-Sharabiani
18k 17 17 gold badges 117 117 silver badges 128 128 bronze badges

SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port; 

This uses psql’s built in HOST variable, documented here

And postgres System Information Functions, documented here

answered Mar 28, 2018 at 10:52
professorcolm professorcolm
125 5 5 bronze badges

If you’re connecting locally, HOST will be the directory in which your UNIX domain socket resides, eg /tmp .

Sep 10, 2019 at 17:29

service postgresql status 

returns: 10/main (port 5432): online

I’m running Ubuntu 18.04

answered Apr 29, 2019 at 16:55
Marcos Galigarcia Marcos Galigarcia
219 3 3 silver badges 7 7 bronze badges

An addition to the @a_horse_with_no_name answer. To get the hostname:

SELECT boot_val,reset_val FROM pg_settings WHERE name='listen_addresses';; 

answered Aug 17, 2022 at 15:48
352 1 1 gold badge 5 5 silver badges 9 9 bronze badges

go to the «Terminal» and just type

service postgres status 

Running postgres details

In the results you can get the port details

In my case it’s running on port «5432» (default).
I’m using CentOS 7.Hope this helps.

answered Nov 8, 2017 at 7:43
Rahal Kanishka Rahal Kanishka
722 13 13 silver badges 27 27 bronze badges

Because you said you (yourself) have postgresql running, I’ll assume:

  • you’re on Linux,
  • have at least one account with superuser privileges and/or can access the postgres role, and
  • (just for fun) you need to access both values within a single transaction from within the database itself
CREATE TEMP TABLE tmp ( hostname text, port bigint ) ON COMMIT DROP; COPY tmp FROM PROGRAM $pgm$ printf "$HOSTNAME\t$(i=1 && until [[ "$(psql -U postgres -p $i -qt -c "SELECT 'true'" 2>/dev/null | sed -e '$d' | xargs | tr -d "\n")" == "true" ]]; do i=$(($i+1)) && if [ $i == "65535" ]; then break ; fi ; done && echo $i)"$pgm$ ( format 'text', delimiter '\t' ); SELECT host, port FROM tmp; 

will give you both, executing the $pgm$-delimited code as a shell script and returning the values to the server-side COPY API’s stdin. Unfortunately, this method needs a table target to invoke the server-side shell.

If you need to be able to call without a temp table, i.e. as a function invocation, try implementing the above shell in the plsh language.

POSTGRESQL ИЗМЕНИТЬ ПОРТ ПОДКЛЮЧЕНИЯ 5432

PostgreSQL изменить порт подключения 5432

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

1. Проверка какой порт сейчас установлен.

По умолчанию база данных Postgresql использует порт подключения 5432. Мы можем в этом убедится воспользовавшись командой:

sql> SELECT name, setting FROM pg_settings WHERE name = ‘port’;

postgresql_change_port

Еще один способ проверки воспользовавшись командой в Linux:

$. sudo netstat -plunt |grep postmaster

postgresql_change_port

Как мы можем увидеть во всех результатах у нас показывает порт 5432.

2. Изменяем порт подключения.

Поменять порт подключения динамически не получится так как данная переменная является статической. Нам нужно поменять этот параметр в конфигурационном файле postgresql.conf который находится в той же директории где у вас установлена ваша база данных.

Меняем параметр port в файле postgresql.conf.

postgresql_change_port

Сохраняем файл и обязательно перезапустите базу данных.

3. Проверка.

postgresql_change_port

При подключении к базе данных теперь нам нужно дополнительно указывать порт подключения, либо добавить в bash_profile специальную переменную под названием PGPORT = 5444.

postgresql_change_port

Процесс postmaster теперь у нас тоже слушается на порту 5444 вместо 5432.

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

Последнее обновление: 20 Июня 2023 г.

Как открыть доступ к БД Postgres из вне?

По дефолту PostgreSQL доступна с локального хоста и, конечно, это правильно. Но для разработки бывает удобно подключить каким-нибудь DBeaver снаружи.

Чтобы такой доступ, требуется два действия.

1) В файле postgresql.conf надо установить:

2) В файле pg_hba.conf надо изменить настройки на:

host all all 0.0.0.0/0 md5
host all all ::/0 md5

Если у вас активен фаервол, то надо ещё открыть порт 5432 (или иногда бывает 5433 для Postgres).

Прокомментируйте:

Архивы

  • Август 2022 (1)
  • Март 2021 (1)
  • Январь 2021 (1)
  • Ноябрь 2019 (1)
  • Июль 2017 (1)
  • Май 2017 (2)
  • Январь 2017 (1)
  • Декабрь 2016 (1)
  • Ноябрь 2016 (1)
  • Октябрь 2016 (1)
  • Июнь 2016 (1)
  • Апрель 2016 (2)
  • Март 2016 (1)
  • Февраль 2016 (2)
  • Январь 2016 (1)
  • Май 2015 (1)
  • Апрель 2015 (2)
  • Март 2015 (8)
  • Январь 2015 (2)
  • Февраль 2010 (1)
  • Сентябрь 2009 (1)
  • Август 2009 (2)
  • Июль 2009 (1)
  • Май 2009 (1)
  • Апрель 2009 (2)
  • Март 2009 (1)
  • Февраль 2009 (1)
  • Январь 2009 (3)
  • Ноябрь 2008 (3)
  • Октябрь 2008 (5)
  • Сентябрь 2008 (4)
  • Август 2008 (15)
  • Июль 2008 (11)
  • Июнь 2008 (19)
  • Май 2008 (16)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *