Проверить, открыт ли порт 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 и вывести в лабл.
7473 / 4023 / 504
Регистрация: 13.03.2013
Сообщений: 14,752
Записей в блоге: 12
Сообщение от yagrus2
Если да, как его открыть?
iptables -I INPUT -p tcp --match multiport --dports 5432 -j ACCEPT
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
а зачем «мультипорт» для ОДНОГО порта?
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.
Как его открыть?
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. То бишь, греть ухо во все стороны, а не только локально. Это сервер БД так настроен. Надо переделать.
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
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
7473 / 4023 / 504
Регистрация: 13.03.2013
Сообщений: 14,752
Записей в блоге: 12
Сообщение от _sg2
только не nano, а vim
И то, и другое текстовые редакторы, поэтому тут как кому угодно (лично я за «nano»).
@ Kubuntovod
Сообщение от _sg2
всё правильно, только не nano, а vim
Та хоть mcedit 🙂 В vim не только лишь все могут распальцовывать.
Меню пользователя @ Kubuntovod |
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.
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
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. Порт подключения после создания базы данных крайне желательно поменять с целью безопасности ваших данных от взлома.
1. Проверка какой порт сейчас установлен.
По умолчанию база данных Postgresql использует порт подключения 5432. Мы можем в этом убедится воспользовавшись командой:
sql> SELECT name, setting FROM pg_settings WHERE name = ‘port’;
Еще один способ проверки воспользовавшись командой в Linux:
$. sudo netstat -plunt |grep postmaster
Как мы можем увидеть во всех результатах у нас показывает порт 5432.
2. Изменяем порт подключения.
Поменять порт подключения динамически не получится так как данная переменная является статической. Нам нужно поменять этот параметр в конфигурационном файле postgresql.conf который находится в той же директории где у вас установлена ваша база данных.
Меняем параметр port в файле postgresql.conf.
Сохраняем файл и обязательно перезапустите базу данных.
3. Проверка.
При подключении к базе данных теперь нам нужно дополнительно указывать порт подключения, либо добавить в bash_profile специальную переменную под названием PGPORT = 5444.
Процесс 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)