Skip to Content

Chia sẻ PostgreSQL Database qua mạng LAN

🌐 Chia sẻ PostgreSQL Database qua mạng LAN

Trong quá trình phát triển dự án, nhiều khi chúng ta cần cho các máy tính trong cùng một mạng LAN truy cập chung tới một PostgreSQL server. Việc này giúp team dễ dàng phát triển, kiểm thử và dùng chung cơ sở dữ liệu.

🔧 Các bước cấu hình

1. Cho phép PostgreSQL lắng nghe các kết nối từ xa

Mở file postgresql.conf và chỉnh:

listen_addresses = '*'

2. Cấp quyền trong pg_hba.conf

Thêm dòng:

host    all    all    192.168.1.0/24    md5

👉 Cho phép tất cả máy trong mạng LAN 192.168.1.x được kết nối bằng mật khẩu.

3. Mở port 5432 trên firewall

Windows (CMD Admin):

netsh advfirewall firewall add rule name="PostgreSQL" dir=in action=allow protocol=TCP localport=5432

Linux (UFW):

sudo ufw allow 5432/tcp

4. Restart PostgreSQL service

  • Windows:
    net stop postgresql-x64-17
    net start postgresql-x64-17
    
  • Linux:
    sudo systemctl restart postgresql
    

5. Kết nối từ máy client

psql -h 192.168.1.10 -U postgres -d ten_database -p 5432

Hoặc trong Python:

import psycopg2

conn = psycopg2.connect(
    host="192.168.1.10",
    port=5432,
    database="ten_database",
    user="postgres",
    password="matkhau"
)
print("✅ Kết nối thành công!")

📌 Lưu ý bảo mật

  • Chỉ mở cho dải IP LAN, tránh 0.0.0.0/0 khi không cần.
  • Nếu cần truy cập từ Internet, nên dùng VPN hoặc SSH tunnel.
  • Đặt mật khẩu mạnh, phân quyền user rõ ràng.

🖼️ Sơ đồ minh họa


/* Tối ưu font, khoảng cách và màu chủ đạo */ body { font-family: 'Inter', sans-serif; color: #2e3a59; } h1, h2, h3 { color: #2a7a4d; /* màu xanh giống Docusaurus */ font-weight: 700; } a { color: #2a7a4d; text-decoration: none; } a:hover { text-decoration: underline; } /* Bo tròn và đổ bóng cho khối nội dung */ .card, .oe_structure { border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); padding: 1.5rem; }