Chia sẻ PostgreSQL Database qua mạng LAN
Khi làm việc trong nhóm hoặc trong môi trường nội bộ doanh nghiệp, bạn thường cần cho nhiều máy trong mạng LAN cùng truy cập vào một PostgreSQL server. Bài viết này hướng dẫn cách cấu hình PostgreSQL để các máy khác trong LAN có thể kết nối an toàn và ổn định.
1. Kiểm tra địa chỉ IP của máy cài PostgreSQL
Bạn cần biết IP nội bộ của máy chủ PostgreSQL để các máy khác trong LAN kết nối.
Mở Command Prompt → nhập:
ipconfig
Tìm mục IPv4 Address . Ví dụ:
IPv4 Address. . . . . . . . . . . : 192.168.1.10
Đây sẽ là địa chỉ để các máy khác truy cập.
2. Chỉnh sửa file postgresql.conf để mở cổng LAN
File cấu hình nằm tại:
Windows: C:\Program Files\PostgreSQL\<version>\data\postgresql.conf
Ubuntu: /etc/postgresql/<version>/main/postgresql.conf
Mở file và tìm dòng:
#listen_addresses = 'localhost'
Sửa thành:
listen_addresses = '*'
Hoặc giới hạn trong LAN, ví dụ:
listen_addresses = '192.168.1.10'
3. Chỉnh sửa file pg_hba.conf để cho phép máy khác kết nối
File này nằm cùng thư mục với postgresql.conf.
Thêm dòng sau để cho phép toàn bộ LAN truy cập:
host all all 192.168.1.0/24 md5
Giải thích:
192.168.1.0/24 là toàn bộ dải LAN.
Có thể thay đổi theo dải IP bạn sử dụng.
md5 là yêu cầu xác thực bằng mật khẩu.
4. Mở cổng tường lửa (Firewall)
PostgreSQL mặc định chạy port 5432 , cần mở để máy khác truy cập.
Trên Windows
Command Prompt (Run as Administrator):
netsh advfirewall firewall add rule name="PostgreSQL" dir=in action=allow protocol=TCP localport=5432
Trên Ubuntu
sudo ufw allow 5432/tcp
5. Khởi động lại PostgreSQL
Windows:
services.msc
Chọn PostgreSQL → Restart.
Ubuntu:
sudo systemctl restart postgresql
6. Kết nối từ máy khác trong LAN
Từ máy client, mở DBeaver / PgAdmin và kết nối:
Host: 192.168.1.10
Port: 5432
User: user PostgreSQL của bạn
Database: tên database
7. Lưu ý bảo mật
Không mở toàn mạng Internet, chỉ LAN.
Sử dụng mật khẩu mạnh.
Có thể cấu hình SSL nếu muốn kết nối an toàn hơn.
8. Tóm tắt nhanh
Bước Nội dung 1 Lấy IP LAN của server (ipconfig / ifconfig) 2 Sửa postgresql.conf → listen_addresses='*' 3 Sửa pg_hba.conf → cho phép LAN 192.168.1.0/24 4 Mở firewall port 5432 5 Restart PostgreSQL 6 Client kết nối qua IP LAN