Truy cập Môi Trường Phát Triển Cục Bộ ServBay Qua Mạng LAN
Đối với các nhóm phát triển nhỏ hoặc lập trình viên cá nhân cần kiểm thử đa thiết bị, khả năng truy cập môi trường phát triển cục bộ ServBay từ các thiết bị khác trong mạng LAN là nhu cầu thường gặp và quan trọng. ServBay hỗ trợ truy cập qua LAN cho hầu hết các dịch vụ cốt lõi, tuy nhiên một số dịch vụ cần cấu hình thêm để đảm bảo an toàn và sẵn sàng sử dụng.
Bài viết này sẽ hướng dẫn chi tiết cách cấu hình và truy cập các dịch vụ website và cơ sở dữ liệu trên ServBay qua mạng LAN.
Yêu Cầu Trước Khi Thực Hiện
Trước khi thử truy cập các dịch vụ ServBay qua mạng LAN, hãy đảm bảo các điều kiện sau:
- Kết nối mạng: Máy tính cung cấp dịch vụ ServBay (gọi là “máy chủ”) và máy tính truy cập (gọi là “máy khách”) đều nằm chung một mạng LAN.
- Địa chỉ IP của máy chủ: Biết địa chỉ IP nội bộ của máy chủ trên mạng LAN. Bạn có thể tìm địa chỉ này trong phần cài đặt mạng của máy chủ.
- Cấu hình tường lửa: Nếu hệ điều hành của máy chủ bật tường lửa, cần cho phép các kết nối bên ngoài truy cập vào các cổng mạng mà ServBay sử dụng (VD: HTTP thường là 80, HTTPS là 443, MySQL là 3306, PostgreSQL là 5432, Redis là 6379…). Hãy mở các cổng cần thiết trong tường lửa và cấu hình danh sách kiểm soát truy cập (ACL) để giới hạn phạm vi IP được phép truy cập (nếu cần).
Website
Các website cục bộ cấu hình trên ServBay, theo mặc định thường lắng nghe trên tất cả giao diện mạng của máy chủ (0.0.0.0
hoặc *
), do đó các thiết bị khác trong mạng LAN sẽ tự động truy cập được. ServBay dùng Caddy hoặc Nginx làm web server, cũng được thiết lập mặc định như vậy.
Tuy nhiên, để truy cập website qua tên miền từ trình duyệt của máy khách, người dùng cần cấu hình phân giải DNS cho tên miền này trên hệ thống của họ. Ngoài ra, nếu website cục bộ sử dụng chứng chỉ SSL do ServBay tạo (rất nên sử dụng), người truy cập cần cài đặt chứng chỉ gốc của ServBay để tránh cảnh báo bảo mật trên trình duyệt.
Ví dụ về cấu hình như sau:
- Địa chỉ IP mạng LAN của máy chủ:
10.0.0.3
- Tên miền website ServBay:
servbay.demo
- Thư mục gốc website:
/Applications/ServBay/www/servbay.demo
Cấu Hình Phân Giải Tên Miền (DNS)
Máy khách cần biết tên miền servbay.demo
sẽ trỏ về địa chỉ IP 10.0.0.3
của máy chủ. Có hai cách phổ biến để cấu hình:
Sửa file Hosts trên máy khách: Cách trực tiếp và đơn giản, phù hợp với số lượng máy truy cập ít.
- Trên máy khách, tìm file Hosts.
- macOS/Linux:
/etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
- macOS/Linux:
- Mở file Hosts với quyền quản trị và thêm dòng cuối cùng:
10.0.0.3 servbay.demo
1 - Lưu file lại. Từ giờ máy khách truy cập
servbay.demo
sẽ trỏ về10.0.0.3
.
- Trên máy khách, tìm file Hosts.
Cấu hình trên máy chủ DNS trong LAN: Nếu mạng LAN có máy chủ DNS riêng (VD: router có chức năng DNS, hoặc một dịch vụ DNS chuyên biệt), bạn có thể tạo bản ghi A cho
servbay.demo
trỏ về IP máy chủ10.0.0.3
. Như vậy, tất cả thiết bị trong LAN sử dụng DNS này đều truy cập được tên miền.
Phân Phối và Cài Đặt Chứng Chỉ Gốc ServBay (SSL)
Vì ServBay cung cấp chức năng PKI mạnh mẽ, bao gồm tạo chứng chỉ gốc của riêng mình (ServBay User CA) để ký SSL cho các website cục bộ, nên các máy khách cần tin tưởng chứng chỉ này khi truy cập các website HTTPS sử dụng nó, để tránh cảnh báo an ninh.
Bạn cần xuất chứng chỉ ServBay User CA và gửi cho các thành viên trong LAN, hướng dẫn họ cài đặt và tin tưởng chứng chỉ này trên hệ điều hành hoặc trình duyệt của mình.
Các bước chi tiết xuất và cài đặt chứng chỉ, vui lòng xem trong tài liệu ServBay về quản lý chứng chỉ SSL, đặc biệt phần xuất chứng chỉ và cài đặt trên hệ điều hành/trình duyệt.
Cơ Sở Dữ Liệu
ServBay hỗ trợ nhiều loại dịch vụ cơ sở dữ liệu như MySQL, MariaDB, PostgreSQL, MongoDB, và các cơ sở dữ liệu nhớ như Redis, Memcached. Mỗi dịch vụ có mặc định lắng nghe mạng và quản lý quyền truy cập khác nhau.
MySQL / MariaDB
Dịch vụ MySQL và MariaDB trên ServBay mặc định lắng nghe tất cả giao diện mạng (0.0.0.0
), tức là cho phép truy cập từ LAN.
Tuy nhiên, MySQL/MariaDB có cơ chế xác thực người dùng nghiêm ngặt. Dù cho phép kết nối mạng, người truy cập vẫn cần tài khoản và mật khẩu đã được cấp phép từ địa chỉ IP đó.
Tài khoản root
mặc định chỉ cho phép kết nối từ 127.0.0.1
hoặc localhost
. Để chấp nhận kết nối từ LAN, bạn cần tạo tài khoản mới hoặc cấu hình phân quyền cho phép tài khoản truy cập từ dải IP LAN hoặc bất kỳ địa chỉ nào (%
).
Ví dụ, tạo tài khoản servbay-demo
và cho phép kết nối từ mọi IP trong LAN (%
), đồng thời cấp mọi quyền cho một cơ sở dữ liệu nhất định:
-- Giả sử bạn đã đăng nhập với tài khoản root hoặc có đủ quyền
CREATE USER 'servbay-demo'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON `your_database_name`.* TO 'servbay-demo'@'%';
FLUSH PRIVILEGES;
2
3
4
Hãy thay 'your_strong_password'
và your_database_name
theo thực tế của bạn.
Lưu ý quan trọng: Cấp quyền kết nối từ bất kỳ IP nào (%
) và quyền mở rộng sẽ đi kèm rủi ro bảo mật. Trong môi trường sản xuất hoặc LAN không hoàn toàn tin cậy, nên giới hạn quyền truy cập chỉ từ các IP cụ thể (VD: 'servbay-demo'@'10.0.0.5'
), hoặc sử dụng VPN nếu cần kết nối an toàn hơn.
ServBay hỗ trợ đặt lại mật khẩu root
cho MySQL/MariaDB. Nếu cần thao tác quản lý người dùng, bạn có thể dùng chức năng này hoặc sử dụng các công cụ quản lý cơ sở dữ liệu.
Redis
Redis trên ServBay mặc định chỉ lắng nghe địa chỉ vòng lặp nội bộ (127.0.0.1
), tức là không chấp nhận kết nối từ mạng LAN. Đây là biện pháp bảo mật, vì Redis mặc định không bật xác thực mật khẩu.
Muốn cho phép truy cập Redis từ mạng LAN, bạn cần sửa file cấu hình redis.conf
.
Có hai cách thực hiện:
1. Qua giao diện ServBay
- Mở ServBay, chọn
Cơ sở dữ liệu
-Redis
trong menu bên trái - Trong phần cài đặt bên phải, bật
Require Password
và nhập mật khẩu vào ô phía bên - Nhấn
Lưu
2. Sửa thủ công file redis.conf
(không khuyến nghị)
- Tìm đường dẫn file cấu hình Redis trong thư mục cài đặt ServBay (ví dụ:
/Applications/ServBay/etc/redis/redis.conf
). - Mở file
redis.conf
bằng trình soạn thảo văn bản. - Tìm dòng
bind 127.0.0.1
. - Chuyển thành
bind 0.0.0.0
hoặc chú thích dòng này đi (# bind 127.0.0.1
), để Redis lắng nghe trên tất cả giao diện. - 【Cực kỳ quan trọng】 Tìm dòng
requirepass
(có thể bị chú thích). Bỏ chú thích và đặt mật khẩu mạnh:Tuyệt đối không để Redis truy cập LAN hoặc Internet mà không đặt mật khẩu – cực kỳ nguy hiểm cho an toàn!requirepass your_very_strong_redis_password
1 - Lưu lại file
redis.conf
. - Khởi động lại dịch vụ Redis trên ứng dụng ServBay để cập nhật cấu hình.
Giờ đây máy khách trong LAN có thể kết nối Redis bằng IP máy chủ và mật khẩu bạn vừa thiết lập.
PostgreSQL
PostgreSQL trên ServBay cũng mặc định chỉ lắng nghe trên 127.0.0.1
, tức là không cho truy cập qua LAN.
Muốn bật truy cập PostgreSQL từ LAN, bạn cần chỉnh hai file cấu hình: postgresql.conf
và pg_hba.conf
.
Tìm đường dẫn các file cấu hình PostgreSQL trong thư mục cài đặt ServBay (ví dụ:
/Applications/ServBay/etc/postgresql/postgresql.conf
và/Applications/ServBay/etc/postgresql/pg_hba.conf
).Sửa file
postgresql.conf
:- Mở file
postgresql.conf
bằng trình soạn thảo văn bản. - Tìm dòng
listen_addresses
(có thể bị chú thích). - Bỏ chú thích và sửa thành
'*'
để PostgreSQL lắng nghe trên mọi giao diện mạng:listen_addresses = '*'
1 - Lưu file lại.
- Mở file
Sửa file
pg_hba.conf
:- Mở
pg_hba.conf
. File này quyết định host, user nào được truy cập cơ sở dữ liệu nào và dùng phương thức xác thực nào. - Thêm dòng cho phép kết nối từ dải mạng LAN. Ví dụ, cho phép mọi user kết nối mọi database bằng mật khẩu từ mạng
10.0.0.0/24
:# TYPE DATABASE USER ADDRESS METHOD host all all 10.0.0.0/24 md5
1
2TYPE
:host
là kết nối qua TCP/IP.DATABASE
:all
cho phép mọi database, có thể chỉ định tên database cụ thể.USER
:all
cho mọi user, có thể chỉ định tên user cụ thể.ADDRESS
:10.0.0.0/24
là dải IP từ10.0.0.1
đến10.0.0.254
. Có thể dùng IP riêng lẻ hoặc0.0.0.0/0
(không khuyến nghị).METHOD
:md5
yêu cầu xác thực mật khẩu mã hóa MD5 – phương pháp đề nghị cho truy cập từ xa. Không nên dùngtrust
hoặcpassword
(mật khẩu dạng thô).
- Lưu lại file.
- Mở
Khởi động lại PostgreSQL trên ServBay để cấu hình có hiệu lực.
Máy khách trong LAN giờ đã có thể kết nối PostgreSQL bằng IP máy chủ, user và mật khẩu hợp lệ.
ServBay hỗ trợ đặt lại mật khẩu root
(postgres) cho PostgreSQL. Nếu cần quản lý tài khoản, bạn có thể dùng tính năng này hoặc các công cụ khách.
Memcached
Memcached là hệ thống cache bộ nhớ phân tán hiệu năng cao, được thiết kế tối giản và không có cơ chế xác thực hoặc phân quyền nội bộ.
Do đó, không khuyến nghị để Memcached lộ ra mạng LAN hay Internet, trừ khi đã có giải pháp bảo mật bổ sung (chỉ cho phép các server tin cậy truy cập và kiểm soát nghiêm ngặt bằng tường lửa).
Bạn có thể cấu hình Memcached trên ServBay lắng nghe IP mạng LAN, nhưng cần hiểu rõ và chấp nhận rủi ro bảo mật này. Mặc định, nó chỉ lắng nghe trên địa chỉ vòng lặp. Việc thay đổi địa chỉ lắng nghe tương tự Redis, nhưng lưu ý rằng không có mật khẩu bảo vệ cho dịch vụ này.
Lưu Ý An Toàn
Mở các dịch vụ môi trường phát triển ra mạng LAN rất tiện cho làm việc nhóm và kiểm thử, nhưng cũng làm tăng nguy cơ bảo mật. Hãy lưu ý:
- Tường lửa: Luôn dùng tường lửa để giới hạn truy cập các cổng dịch vụ trên máy chủ ServBay, chỉ cho phép các IP tin cậy trong LAN.
- Mật khẩu mạnh: Đặt mật khẩu mạnh cho các cơ sở dữ liệu (MySQL/MariaDB/PostgreSQL) và Redis. Thường xuyên thay đổi mật khẩu.
- Phân quyền tối thiểu: Cấp quyền tối thiểu cần thiết cho tài khoản cơ sở dữ liệu. Tránh dùng
root
hoặcpostgres
cho truy cập từ xa thường xuyên. - An toàn với Memcached: Nhắc lại, vì Memcached không có bảo mật nội bộ nên cần đặc biệt cảnh giác khi bật dịch vụ này qua LAN. Nên dùng SSH tunnel hoặc các kết nối bảo mật khác nếu cần truy cập từ xa.
- Cập nhật hệ thống: Luôn cập nhật hệ điều hành, ServBay và các phần mềm liên quan lên phiên bản mới nhất để có các bản vá bảo mật.
Làm theo những bước hướng dẫn và lưu ý trên, bạn sẽ an toàn và hiệu quả hơn khi chia sẻ cũng như truy cập môi trường phát triển cục bộ ServBay qua mạng LAN.