一、安装PostgreSQL与pgAdmin
在Ubuntu终端执行以下命令,安装PostgreSQL数据库及pgAdmin管理工具:
sudo apt update
sudo apt install postgresql pgadmin4
安装完成后,PostgreSQL服务会自动启动;若未启动,可通过sudo systemctl start postgresql
手动开启。
二、配置PostgreSQL允许远程连接
要实现远程访问,需修改PostgreSQL的两项核心配置:
postgresql.conf
(开启远程监听)使用文本编辑器打开配置文件(路径随PostgreSQL版本变化,如/etc/postgresql/14/main/postgresql.conf
),找到listen_addresses
参数,将其修改为允许所有IP连接或指定服务器IP:
listen_addresses = '*' # 允许所有IP;若需限制特定IP,替换为具体地址(如'192.168.1.100')
保存并关闭文件。
pg_hba.conf
(配置访问权限)打开pg_hba.conf
文件(通常位于/etc/postgresql/<version>/main/
目录下),在文件末尾添加以下行,允许远程客户端通过密码验证连接:
host all all 0.0.0.0/0 md5 # 允许所有IP(IPv4);若需支持IPv6,添加“::/0”
注意:md5
表示使用密码加密验证,如需更高安全性,可替换为scram-sha-256
(需PostgreSQL 10及以上版本)。
保存文件后,重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql
三、配置防火墙允许PostgreSQL端口
PostgreSQL默认使用5432端口,需确保防火墙放行该端口:
ufw
防火墙(Ubuntu默认)sudo ufw allow 5432/tcp # 允许TCP协议的5432端口
sudo ufw reload # 重新加载防火墙规则
iptables
防火墙sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT # 添加允许规则
sudo service iptables save # 保存规则(部分系统可能需要)
firewalld
防火墙sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent # 永久添加端口
sudo firewall-cmd --reload # 重新加载防火墙
四、配置pgAdmin连接远程数据库
pgadmin4
。123.45.67.89
);5432
,若修改过需填写新端口);postgres
,PostgreSQL默认创建的系统数据库);postgres
,默认超级用户);ALTER USER
命令设置的密码一致)。五、安全注意事项
0.0.0.0/0
(允许所有IP),建议替换为实际客户端的IP段(如192.168.1.0/24
),降低被攻击风险;postgresql.conf
中启用SSL(ssl = on
),并在pgAdmin连接时配置SSL证书。