
Веб-приложению, работающему на CentOS 7 (сервер приложений) в частной локальной сети, необходимо устанавливать соединения с базой данных другого сервера CentOS 7 (сервера базы данных), работающего в той же частной локальной сети.
Когда я печатаю systemctl stop firewalld
на сервере приложений, соединения с базой данных на удаленном сервере баз данных работают отлично. Но когда я печатаю systemctl start firewalld
на том же сервере приложений, веб-приложение больше не может подключиться к удаленному серверу баз данных.
Это говорит мне, что мне нужно создать исходящее правило firewalld на сервере приложений. Но это потребует знания того, какой порт нужно использовать для исходящих соединений.
Какие конкретные команды можно использовать для определения того, какой порт используется на сервере приложений для удаленных подключений к серверу базы данных?
решение1
netstat
Чтобы увидеть все сетевые порты, которые прослушиваются программами, используйте:
sudo netstat -lpn4
- -l: Показывать только прослушивание
- -p: Показать названия программ
- -n: Всегда показывать номера портов
- -4: Показывать только сетевые подключения IPv4
Найдите свою программу в PID/Program name
столбце, а затем посмотрите, что Local Address
она использует.
О других вариантах вы можете прочитать в руководстве по использованию man netstat
.