首先在Ubuntu服务器上安装PostgreSQL数据库和pgAdmin管理工具:
sudo apt update
sudo apt install postgresql pgadmin4
安装完成后,PostgreSQL服务会自动启动;若未启动,可通过sudo systemctl start postgresql手动启动。
要允许远程访问,需修改PostgreSQL的两个核心配置文件:
postgresql.conf(开启远程监听)找到配置文件路径(版本号可能不同,如/etc/postgresql/14/main/postgresql.conf),编辑文件:
sudo nano /etc/postgresql/<版本号>/main/postgresql.conf
找到#listen_addresses = 'localhost',将其修改为:
listen_addresses = '*' # 允许所有IP连接;如需限制特定IP,可替换为服务器IP(如192.168.1.100)
保存并退出(Ctrl+O→Enter→Ctrl+X)。
pg_hba.conf(配置访问权限)编辑pg_hba.conf文件(路径同上):
sudo nano /etc/postgresql/<版本号>/main/pg_hba.conf
在文件末尾添加以下行,允许指定IP段(如0.0.0.0/0为所有IP,建议替换为客户端实际IP)通过密码验证连接:
host all all 0.0.0.0/0 md5
保存并退出。
使配置生效:
sudo systemctl restart postgresql
PostgreSQL默认使用5432端口,需确保防火墙放行该端口:
ufw(Ubuntu默认防火墙)sudo ufw allow 5432/tcp
sudo ufw reload
iptables(传统防火墙)sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
sudo service iptables save # 保存规则(部分系统可能需要)
firewalld(较少见于Ubuntu)sudo firewall-cmd --zone public --add-port 5432/tcp --permanent
sudo firewall-cmd --reload
在Ubuntu本地(或远程客户端)启动pgAdmin,步骤如下:
pgadmin4);5432(默认端口);postgres(默认数据库);postgres);pg_hba.conf中的0.0.0.0/0替换为客户端实际IP(如192.168.1.100/32),避免暴露给所有网络;postgresql.conf中的ssl = on和证书,加密远程连接数据。完成以上步骤后,pgAdmin即可远程连接至Ubuntu服务器上的PostgreSQL数据库。若连接失败,需检查配置文件语法、防火墙规则及网络连通性(如ping服务器IP、telnet端口5432)。